

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立和管理以節點為基礎的 ElastiCache 叢集
<a name="designing-elasticache-cluster"></a>

如果您需要精細控制 ElastiCache 叢集，您可以建立節點型叢集。ElastiCache 可讓您在叢集的AWS可用區域之間選擇節點類型、節點數量和節點放置，以操作節點型叢集。由於 ElastiCache 是一項全受管服務，因此可自動管理叢集的硬體佈建、監控、節點替換和軟體修補。

如需設定的詳細資訊，請參閱 [設定 ElastiCache](set-up.md)。如需管理、更新或刪除節點或叢集的詳細資訊，請參閱 [管理 ElastiCache 中的節點](CacheNodes.md)。如需建立節點型 Amazon ElastiCache ElastiCache 部署的主要元件概觀，請參閱這些[重要概念。](WhatIs.corecomponents.md)

**Topics**
+ [ElastiCache 元件和功能](WhatIs.Components.md)
+ [ElastiCache 術語](WhatIs.Terms.md)
+ [教學課程：如何建立節點型 ElastiCache 叢集](SubnetGroups.designing-cluster-pre.md)
+ [刪除叢集](Clusters.Delete-gs.redis.md)
+ [其他 ElastiCache 教學課程和影片](Tutorials.md)
+ [管理 ElastiCache 中的節點](CacheNodes.md)
+ [在 ElastiCache 中管理叢集](Clusters.md)
+ [比較節點型 Valkey、Memcached 和 Redis OSS 叢集](SelectEngine.md)
+ [Valkey 或 Redis OSS 的線上遷移](OnlineMigration.md)
+ [選擇 ElastiCache 的區域和可用區域](RegionsAndAZs.md)

# ElastiCache 元件和功能
<a name="WhatIs.Components"></a>

以下是 Amazon ElastiCache 部署的主要元件概觀。

**Topics**
+ [ElastiCache 節點](#WhatIs.Components.Nodes)
+ [ElastiCache 碎片](#WhatIs.Components.Shards)
+ [ElastiCache 叢集](#WhatIs.Components.Clusters)
+ [ElastiCache 複寫](#WhatIs.Components.ReplicationGroups)
+ [ElastiCache 端點](#WhatIs.Components.Endpoints)
+ [ElastiCache 參數群組](#WhatIs.Components.ParameterGroups)
+ [ElastiCache 安全性](#WhatIs.Components.Security)
+ [ElastiCache 子網路群組](#WhatIs.Components.SubnetGroups)
+ [ElastiCache 備份](#WhatIs.Components.Snapshots)
+ [ElastiCache 事件](#WhatIs.Components.Events)

## ElastiCache 節點
<a name="WhatIs.Components.Nodes"></a>

*節點*是 Amazon ElastiCache 部署中最小的建置區塊。節點可以與其他節點隔離而獨立存在，或與其他節點以某種關係存在。

節點是大小固定、與網路連接的安全 RAM 區塊。每個節點都會執行當您建立叢集時所選擇的引擎和版本執行個體。您可視需要將叢集中的節點垂直擴展或縮減為不同的執行個體類型。如需詳細資訊，請參閱[擴展 ElastiCache](Scaling.md)。

叢集中每個節點的執行個體類型都相同，並且執行相同的快取引擎。每個快取節點都有自己的網域名稱服務 (DNS) 名稱和連接埠。支援多種類型的快取節點，每個節點都有各種數量的相關記憶體。如需支援的節點執行個體類型清單，請參閱[支援的節點類型](CacheNodes.SupportedTypes.md)。

您可以按照依用量付費的方式購買節點，只需支付您使用節點的費用。或以大幅降低的每小時費率購買預留節點。如果您的用量很高，購買預留節點可以為您節省成本。假設您的叢集幾乎總是在使用中，且您會偶爾新增節點來處理使用尖峰。在此情況下，您可以購買多個預留節點來在大多數時間執行。之後您可以在偶爾需要新增節點時，購買依用量計費的節點。如需預留節點的詳細資訊，請參閱[預留節點](CacheNodes.Reserved.md)。

如需節點的詳細資訊，請參閱[管理 ElastiCache 中的節點](CacheNodes.md)。

## ElastiCache 碎片
<a name="WhatIs.Components.Shards"></a>

Valkey 或 Redis OSS *碎片* （在 API 和 CLI 中稱為*節點群組*) 是一到六個相關節點的群組。啟用叢集模式的 Valkey 或 Redis OSS 叢集一律至少有一個碎片。

碎片是一種資料庫分割方法，可將大型資料庫分成較小、更快速且更易於管理的部分，稱為資料碎片。這可以透過將操作分散到多個不同的區段來提高資料庫效率。使用碎片可以提供許多好處，包括改善效能、可擴展性和成本效益。

 啟用叢集模式的 Valkey 和 Redis OSS 叢集最多可有 500 個碎片，您的資料會分割在碎片上。如果 Valkey 或 Redis OSS 引擎版本為 5.0.6 或更高版本，節點或碎片限制可以提高到每個叢集最多 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

*多個節點碎片*實作複寫的方式，是使用一個讀/寫主節點及 1 至 5 個複本節點。如需詳細資訊，請參閱[使用複寫群組的高可用性](Replication.md)。

如需碎片的詳細資訊，請參閱[在 ElastiCache 中使用碎片](Shards.md)。

## ElastiCache 叢集
<a name="WhatIs.Components.Clusters"></a>

*叢集*是一或多個[節點](CacheNodes.md)的邏輯分組。資料會分割到 Memcached 叢集中的節點，以及啟用叢集模式的 Valkey 或 Redis OSS 叢集中的碎片。

許多 ElastiCache 作業的目標都是叢集：
+ 建立叢集
+ 修改叢集
+ 擷取叢集的快照 (所有 Redis 版本)
+ 刪除叢集
+ 在叢集中檢視元素
+ 從叢集中新增或移除成本配置標籤

如需詳細資訊，請參閱下列相關主題：
+ [在 ElastiCache 中管理叢集](Clusters.md) 和 [管理 ElastiCache 中的節點](CacheNodes.md)

  叢集、節點和相關操作的詳細資訊。
+ [AWS服務限制：Amazon ElastiCache](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elasticache)

  ElastiCache 配額 (例如節點或叢集數上限) 的相關資訊。如需超過其中某些配額，您可以使用 [Amazon ElastiCache 快取節點請求表單](https://aws.amazon.com/contact-us/elasticache-node-limit-request/)。
+ [減少故障](disaster-recovery-resiliency.md#FaultTolerance)

  有關改善叢集和 Valkey 或 Redis OSS 複寫群組容錯能力的資訊。

### 一般叢集組態
<a name="WhatIs.Components.Clusters.TypicalConfigurations"></a>

以下是一般叢集組態。

#### Valkey 或 Redis OSS 叢集
<a name="WhatIs.Components.Clusters.TypicalConfigurations.Redis"></a>

 停用叢集模式的 Valkey 或 Redis OSS 叢集一律只包含一個碎片 （在 API 和 CLI 中，一個節點群組）。Valkey 或 Redis OSS 碎片包含一到六個節點。如果一個碎片中有多個節點，該碎片便可支援複寫。在這種情況下，一個節點是讀/寫主節點，其他節點則是唯讀複本節點。

為了改善容錯能力，我們建議在 Valkey 或 Redis OSS 叢集中至少有兩個節點，並啟用異地同步備份。如需詳細資訊，請參閱[減少故障](disaster-recovery-resiliency.md#FaultTolerance)。

隨著 Valkey 或 Redis OSS 叢集的需求變更，您可以擴展或縮減規模。若要這樣做，請將您的叢集移至不同的節點執行個體類型。如果您的應用程式需要密集讀取，建議您將唯讀複本新增至叢集。如此一來，您就可以將讀取作業分散在更適當數量的節點間。

您也可以使用資料分層。將較常存取的資料存放在記憶體中，而較不常存取的資料存放在硬碟上。使用資料分層的優點在於可降低記憶體需求。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

ElastiCache 支援動態將 Valkey 或 Redis OSS 叢集的節點類型變更為較大的節點類型。如需擴展或縮減的資訊，請參閱[擴展 Valkey 或 Redis OSS （停用叢集模式） 叢集](scaling-redis-classic.md#Scaling.RedisStandalone)或[擴展 Valkey 或 Redis OSS 的複本節點 （停用叢集模式）](Scaling.RedisReplGrps.md)。

#### Memcached 的一般叢集組態
<a name="WhatIs.Components.Clusters.TypicalConfigurations"></a>

Memcached 支援每個AWS區域每個客戶最多 300 個節點，每個叢集都有 1-60 個節點。您可將您的資料分割到 Memcached 叢集的各節點中。

當您執行 Memcached 引擎時，叢集可以由 1–60 個節點組成。您可將您的資料庫分割至各節點中。您的應用程式會讀取和寫入每個節點的端點。如需詳細資訊，請參閱[自動探索](AutoDiscovery.md)。

為了改善容錯能力，請在叢集AWS區域內的各種可用區域 (AZs) 中找到您的 Memcached 節點。如此一來，單一 AZ 中的故障，對整個叢集和應用程式的影響會降到最低。如需詳細資訊，請參閱[減少故障](disaster-recovery-resiliency.md#FaultTolerance)。

隨著 Memcached 叢集的需求變更，您可以透過新增或移除節點來擴展或縮減節點，在節點的新數量之間重新分割資料。當您分割資料時，建議您使用一致性雜湊。如需一致性雜湊的詳細資訊，請參閱 [設定 ElastiCache 用戶端以實現高效率的負載平衡 (Memcached)](BestPractices.LoadBalancing.md)。

## ElastiCache 複寫
<a name="WhatIs.Components.ReplicationGroups"></a>

對於 Valkey 和 Redis OSS，複寫是透過在碎片 （在 API 和 CLI 中，稱為節點群組） 中從兩個到六個節點分組來實作。其中一個節點是讀取/寫入主要節點。所有其他節點則是唯讀複本節點。複寫僅適用於 ElastiCache for Valkey 和 Redis OSS，不適用於 ElastiCache for Memcached。

每個複本節點都會保有從主要節點取得的資料複本。複本節點使用非同步複寫機制，與主要節點保持同步。應用程式可以從叢集中的任何節點讀取，但只能寫入到主要節點。僅供讀取複本可藉由將讀取分佈到多個端點來增強擴展性。僅供讀取複本也可藉由保留多個資料複本來提升容錯能力。將僅供讀取複本放置在多個可用區域可進一步提升容錯能力。如需容錯能力的詳細資訊，請參閱[減少故障](disaster-recovery-resiliency.md#FaultTolerance)。

 Valkey 或 Redis OSS 叢集支援一個碎片 （在 API 和 CLI 中稱為*節點群組*)。

從 API 和 CLI 觀點來看，複寫使用不同的術語來保留與舊版的相容性，但結果會相同。下表說明用於實作複寫的 API 和 CLI 術語。

**比較複寫：Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式）--> 啟用叢集模式的 Valkey 或 Redis OSS 叢集與停用叢集模式的 Valkey 或 Redis OSS 叢集**

在下表中，您可以找到 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組功能的比較。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/WhatIs.Components.html)

所有碎片 (在 API 和 CLI 中為節點群組) 和節點都必須位於相同的AWS區域。不過，您可以在該區域內的多個可用區域中佈建個別節點AWS。

僅供讀取複本可防止資料遺失，因為您的資料是透過兩個或多個節點 (主節點和一或多個僅供讀取複本) 進行複寫。為了取得更佳的可靠性和更快的復原速度，建議您在不同可用區域內建立一或多個僅供讀取複本。

您也可以利用全域資料儲存。透過使用適用於 Redis OSS 的全域資料存放區功能，您可以跨AWS區域使用全受管、快速、可靠且安全的複寫。使用此功能，您可以為 ElastiCache 建立跨區域僅供讀取複本叢集，以跨AWS區域啟用低延遲讀取和災難復原。如需詳細資訊，請參閱[使用全域資料存放區的跨AWS區域複寫](Redis-Global-Datastore.md)。

**複寫：限額和排除**
+ 節點類型 T1 不支援多個可用區。

## ElastiCache 端點
<a name="WhatIs.Components.Endpoints"></a>

*端點*是應用程式用來連線至 ElastiCache 節點或叢集的唯一地址。

### 停用叢集模式的 Valkey 或 Redis OSS 的單一節點端點
<a name="WhatIs.Components.Endpoints.Redis"></a>

單一節點 Valkey 或 Redis OSS 叢集的端點用於連線至叢集以進行讀取和寫入。

### 停用叢集模式的 Valkey 或 Redis OSS 的多節點端點
<a name="WhatIs.Components.Endpoints.Redis.Multi"></a>

停用叢集模式的多節點 Valkey 或 Redis OSS 叢集有兩種端點類型。主要端點一律會連線到叢集中的主要節點，即使主要角色中的特定節點變更也一樣。使用主要端點對叢集進行所有寫入。

使用「讀取器端點」來將傳入連線平均分散在所有讀取複本間的端點中。使用個別「節點端點」以進行讀取操作 (在 API/CLI 中，它們稱為「讀取端點」)。

### Valkey 或 Redis OSS （啟用叢集模式） 端點
<a name="WhatIs.Components.Endpoints.Redis.Cluster"></a>

啟用叢集模式的 Valkey 或 Redis OSS 叢集具有單一組態端點。只要連線到組態端點，您的應用程式就可以探索叢集中每個碎片的主要和讀取端點。

如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

### ElastiCache for Memcached 端點
<a name="WhatIs.Components.Endpoints.Memcached"></a>

Memcached 叢集中的每個節點都有自己的端點。叢集也具有稱為*「組態端點」*的端點。如果您啟用自動探索並連線至組態端點，您的應用程式會自動*「知道」*每個節點端點，即使是在叢集新增或移除節點後。如需詳細資訊，請參閱[自動探索](AutoDiscovery.md)。

如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

## ElastiCache 參數群組
<a name="WhatIs.Components.ParameterGroups"></a>

快取參數群組是用於管理受支援引擎軟體之執行時間設定的便利方式。參數用於控制記憶體用量、移出政策、項目大小等等。ElastiCache 參數群組為具名集合，包含可套用至叢集的引擎專屬參數。藉由執行此操作，您可以確保該叢集中的所有節點都以完全相同的方式設定。

如需支援的參數、其預設值及可修改的參數清單，請參閱 [DescribeEngineDefaultParameters](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEngineDefaultParameters.html) (CLI：[describe-engine-default-parameters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-engine-default-parameters.html))。

如需 ElastiCache 參數群組的詳細資訊，請參閱「[使用 ElastiCache 參數群組設定引擎參數](ParameterGroups.md)」。

## ElastiCache 安全性
<a name="WhatIs.Components.Security"></a>

為了增強安全性，ElastiCache 節點存取僅限於在您允許的 Amazon EC2 執行個體上執行的應用程式。您可以使用安全群組來控制可存取叢集的 Amazon EC2 執行個體。

依照預設，所有 ElastiCache 叢集都會在 Amazon Virtual Private Cloud (Amazon VPC) 環境中啟動。您可以使用*子網路群組*授予叢集從特定子網路上所執行 Amazon EC2 執行個體進行存取的權限。

除了限制節點存取之外，ElastiCache 還支援執行指定 ElastiCache 版本之節點的 TLS 和就地加密。如需詳細資訊，請參閱下列內容：
+ [Amazon ElastiCache 的資料安全性](encryption.md)
+ [使用 Valkey 和 Redis OSS AUTH 命令進行驗證](auth.md)

## ElastiCache 子網路群組
<a name="WhatIs.Components.SubnetGroups"></a>

*子網路群組*是子網路的集合 (一般是私有)，您可以為在 Amazon VPC 環境中執行的叢集指定這些子網路。

如果您在 Amazon VPC 中建立叢集，則必須指定快取子網路群組。ElastiCache 會使用此快取子網路群組選擇子網路及該子網路中的 IP 地址，以與您的快取節點建立關聯。

如需 Amazon VPC 環境中快取子網路群組使用方式的詳細資訊，請參閱下列文章：
+ [Amazon VPC 和 ElastiCache 安全性](VPCs.md)
+ [步驟 3。授權對叢集的存取](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)
+ [子網路和子網路群組](SubnetGroups.md)

## ElastiCache 備份
<a name="WhatIs.Components.Snapshots"></a>

*備份*是 Valkey 或 Redis OSS 叢集或無伺服器快取或 Memcached 無伺服器快取的point-in-time副本。備份可用來還原現有的叢集或植入新叢集。備份包含叢集中的所有資料加上一些中繼資料。

根據叢集上執行的 Valkey 或 Redis OSS 版本，備份程序需要不同數量的預留記憶體才能成功。如需詳細資訊，請參閱下列內容：
+ [快照和還原](backups.md)
+ [同步與備份的實作方式](Replication.Redis.Versions.md)
+ [節點型叢集備份的效能影響](backups.md#backups-performance)
+ [確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)

## ElastiCache 事件
<a name="WhatIs.Components.Events"></a>

當叢集上發生重要事件時，ElastiCache 會傳送通知給特定的 Amazon SNS 主題。這些事件可能包含新增節點失敗或故障、安全群組修改和其他事件等。藉由監控重要的事件，您可以了解叢集目前的狀態，許多情況下還能採取修正動作。

如需 ElastiCache 事件的詳細資訊，請參閱「[Amazon SNS 的 ElastiCache 事件監控](ECEvents.md)」。

# ElastiCache 術語
<a name="WhatIs.Terms"></a>

2016 年 10 月，Amazon ElastiCache 推出對 Redis OSS 3.2 的支援。此時，我們新增了將資料分割到最多 500 個碎片的支援 （在 ElastiCache API 和 中稱為節點群組AWS CLI)。為了保持與舊版的相容性，我們擴展了 API 2015-02-02 版操作，以包含新的 Redis OSS 功能。

同時，我們也已開始在 ElastiCache 主控台中使用此新功能中所使用且業界常見的術語。這些變更表示有時候，API 和 CLI 中所使用的術語可能會與主控台中所使用的術語不同。下列清單指出 API 和 CLI 與主控台之間可能不同的術語。

**快取叢集 (節點) 與節點**  
當沒有複本節點時，節點與叢集之間有one-to-one的關係。因此，ElastiCache 主控台經常互換使用這些術語。主控台現在統一使用*節點*一詞。唯一的例外是 **Create Cluster (建立叢集)** 按鈕，這會啟動程序，以建立具有複本節點或完全沒有複本節點的叢集。  
ElastiCache API 和AWS CLI會繼續使用過去的術語。

**叢集與 Valkey 或 Redis OSS 複寫群組**  
主控台現在對所有 ElastiCache for Redis OSS *叢集*使用術語叢集。主控台會在下列所有情況中使用叢集一詞：  
+ 當叢集是單一節點 Valkey 或 Redis OSS 叢集時。
+ 當叢集是支援單一碎片 （在 API 和 CLI 中稱為*節點群組*) 內複寫的 Valkey 或 Redis OSS （停用叢集模式） 叢集時。
+ 當叢集是支援在 1-90 個碎片內複寫的 Valkey 或 Redis OSS （啟用叢集模式） 叢集，或最多 500 個具有限制增加請求的叢集時。若要請求提高配額，請參閱 [AWS服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。
如需 Valkey 或 Redis OSS 複寫群組的詳細資訊，請參閱 [使用複寫群組的高可用性](Replication.md)。  
下圖從主控台的角度說明 ElastiCache for Redis OSS 叢集的各種拓撲。  

![\[影像：ElastiCache 叢集 （主控台檢視）\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Clusters-ConsoleView.png)

ElastiCache API 和AWS CLI操作仍會區分單一節點 ElastiCache for Redis OSS 叢集與多節點 Valkey 或 Redis OSS 複寫群組。下圖說明 ElastiCache API 和AWS CLI觀點的各種 ElastiCache for Redis OSS 拓撲。  

![\[影像：ElastiCache for Redis OSS 叢集和 Valkey 或 Redis OSS 複寫群組 (API 和 CLI 檢視）\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Clusters-APIView.png)


**Valkey 或 Redis OSS 複寫群組與全域資料存放區**  
全域資料存放區是一或多個叢集的集合，會跨區域彼此複寫，而 Valkey 或 Redis OSS 複寫群組會使用多個碎片跨啟用叢集模式的叢集複寫資料。全域資料存放區由下列項目組成：  
+ **主要 (主動) 叢集** - 主要叢集接受複寫到全域資料存放區內所有叢集的寫入。主要叢集也接受讀取請求。
+ **次要 (被動) 叢集** - 次要叢集只接受讀取要求，並從主要叢集複寫資料更新。次要叢集必須位於與主要叢集不同的AWS區域。
如需全域資料存放區的相關資訊，請參閱「[使用全域資料存放區跨AWS區域複寫](Redis-Global-Datastore.md)」。

# 教學課程：如何建立節點型 ElastiCache 叢集
<a name="SubnetGroups.designing-cluster-pre"></a>

以下是如何為 Valkey、Memcached 和 Redis OSS 建立以節點為基礎的 ElastiCache 叢集。

**Topics**
+ [為 Valkey 建立節點型 ElastiCache 叢集](SubnetGroups.designing-cluster-pre.valkey.md)
+ [為 Redis OSS 建立節點型 ElastiCache 叢集](SubnetGroups.designing-cluster-pre.redis.md)

# 為 Valkey 建立節點型 ElastiCache 叢集
<a name="SubnetGroups.designing-cluster-pre.valkey"></a>

以下是為 Valkey 建立節點型 ElastiCache 叢集時必須採取的一次性動作。

## 步驟 1：建立子網路群組
<a name="SubnetGroups.Creating-cluster-setup.valkey"></a>

建立 ElastiCache (Valkey) 叢集之前，請先建立子網路群組。*快取子網路群組*是您可能想要為 VPC 中的叢集指定的子網路集合。在 VPC 中啟動叢集時，您需要選取快取子網路群組。然後 ElastiCache 會使用該快取子網路群組，對叢集中的每個快取節點指派該子網路內的 IP 地址。

當您建立新的子網路群組時，請注意可用的 IP 地址數量。如果子網路的可用 IP 地址很少，則可能會限制您可以新增到叢集的節點數量。若要解決此問題，您可以將一或多個子網路指派給子網路群組，以便在叢集的可用區域中擁有足夠數量的 IP 地址。在那之後，您便可以將更多節點新增至您的叢集。

如需有關設定 ElastiCache 的進一步資訊，請參閱 [設定 ElastiCache](set-up.md)。

下列程序顯示如何建立名為 `mysubnetgroup` (控制台) 的子網路群組和AWS CLI。

### 建立子網路群組 (主控台)
<a name="SubnetGroups.Creating.CON.valkey"></a>

下列程序顯示如何建立子網路群組 (主控台)。

**建立子網路群組 (主控台)**

1. 登入AWS管理主控台，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽清單中，選擇 **Subnet Groups (子網路群組)**。

1. 選擇 **Create Subnet Group (建立子網路群組)**。

1. 在 **Create Subnet Group (建立子網路群組)** 精靈中，執行下列動作。當您滿意所有設定後，請選擇 **Yes, Create (是，建立)**。

   1. 在 **Name (名稱)** 方塊中，輸入子網路群組的名稱。

   1. 在 **Description (描述)** 方塊中，輸入子網路群組的描述。

   1. 在 **VPC ID** 方塊中，選擇您建立的 Amazon VPC。

   1. 在**可用區域**和**子網路 ID** 清單中，選擇可用區域或私有子網路的 [搭配 ElastiCache 使用本地區域](Local_zones.md) ID，然後選擇**新增**。  
![\[圖片：建立子網路 VPC 畫面\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/vpc-03.png)

1. 在出現的確認訊息中，選擇 **Close (關閉)**。

您新的子網路群組會顯示在 ElastiCache 主控台的 **Subnet Groups (子網路群組)** 清單中。您可以在視窗底部選擇要查看詳細資訊的子網路群組，例如與此群組相關聯的所有子網路。

### 建立子網路群組 (AWS CLI)
<a name="SubnetGroups.Creating.CLI.valkey"></a>

在命令提示字元中，使用命令 `create-cache-subnet-group` 來建立子網路群組。

針對 Linux、macOS 或 Unix：

```
aws elasticache create-cache-subnet-group \
    --cache-subnet-group-name mysubnetgroup \
    --cache-subnet-group-description "Testing" \
    --subnet-ids subnet-53df9c3a
```

針對 Windows：

```
aws elasticache create-cache-subnet-group ^
    --cache-subnet-group-name mysubnetgroup ^
    --cache-subnet-group-description "Testing" ^
    --subnet-ids subnet-53df9c3a
```

此命令應該產生類似下列的輸出：

```
{
    "CacheSubnetGroup": {
        "VpcId": "vpc-37c3cd17", 
        "CacheSubnetGroupDescription": "Testing", 
        "Subnets": [
            {
                "SubnetIdentifier": "subnet-53df9c3a", 
                "SubnetAvailabilityZone": {
                    "Name": "us-west-2a"
                }
            }
        ], 
        "CacheSubnetGroupName": "mysubnetgroup"
    }
}
```

如需詳細資訊，請參閱AWS CLI主題 [create-cache-subnet-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-subnet-group.html)。

## 步驟 2：建立叢集
<a name="GettingStarted.CreateCluster.valkey"></a>

在建立供生產使用的叢集之前，您明顯需要考慮如何設定叢集以符合您的業務需求。這些問題在「[在 ElastiCache 中準備叢集](Clusters.Prepare.md)」一節中說明。此入門練習的用意是讓您建立停用叢集模式的叢集，且可以接受它們適用的預設組態值。

您建立的叢集將會實際上線，而非在沙盒中執行。您需為執行個體支付標準 ElastiCache 使用費，直到您將執行個體刪除為止。如果您一口氣地完成這裡所述的練習，並在完成時刪除您的叢集，則總計費用會很少 (通常不到 1 美元)。如需 ElastiCache 使用費率的詳細資訊，請參閱 [Amazon ElastiCache](https://aws.amazon.com/elasticache/)。

您的叢集會在以 Amazon VPC 服務為基礎的 Virtual Private Cloud (VPC) 中啟動。

### 建立 Valkey （停用叢集模式） 叢集 （主控台）
<a name="Clusters.Create.CON.valkey-gs"></a>

**使用 ElastiCache 主控台建立 Valkey （停用叢集模式） 叢集**

1. 登入AWS 管理主控台，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 從右上角的清單中，選擇要啟動此叢集AWS的區域。

1. 從導覽窗格選擇 **Get started** (開始使用)。

1. 選擇 **Create VPC** (建立 VPC)，然後按照[建立虛擬私有雲端 (VPC)](VPCs.CreatingVPC.md) 中列出的步驟操作。

1. 在 ElastiCache 儀表板頁面上，選擇 **Valkey 快取**或 **Redis OSS 快取**，然後選擇**建立 Valkey 快取**或**建立 Redis OSS 快取**。

1. 在 **Cluster settings** (叢集設定) 中，執行下列動作：

   1. 選擇 **Configure and create a new cluster** (設定和建立新叢集)。

   1. 針對 **Cluster mode** (叢集模式)，選擇 **Disabled** (已停用)。

   1. 針對 **Cluster info** (叢集資訊)，輸入 **Name** (名稱) 值。

   1. (選用) 輸入 **Description** (描述) 值。

1. 在 **Location** (位置) 中：

------
#### [ AWS Cloud  ]

   1. 針對 **AWS雲端**，建議您接受**多可用區域**和**自動容錯移轉**的預設設定。如需詳細資訊，請參閱[使用異地同步備份將 ElastiCache for Redis OSS 的停機時間降至最低](AutoFailover.md)。

   1. 在 **Cluster settings** (叢集設定) 中

      1. 針對 **Engine version** (引擎版本)，選擇可用的版本。

      1. 針對 **Port** (連接埠)，使用預設連接埠 6379。如果您基於任何原因需要使用不同的連接埠，請輸入連接埠號碼。

      1. 對於 **Parameter group (參數群組)**，請選擇參數群組或新建參數群組。參數群組可控制叢集的執行時間參數。如需參數群組的詳細資訊，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)和[建立 ElastiCache 參數群組](ParameterGroups.Creating.md)。
**注意**  
當您選取參數群組來設定引擎組態值時，該參數群組會套用至全域資料存放區中的所有叢集。在 **Parameter Groups (參數群組)** 頁面上，yes/no (是/否) **Global (全域)** 屬性指出參數群組是否為全域資料存放區的一部分。

      1. 在 **Node type (節點類型)** 中，選擇向下箭頭 (![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png))。在 **Change node type (變更節點類型)** 對話方塊中，為您想要的節點類型選擇 **Instance family (執行個體系列)** 的值。然後選擇您要用於此叢集的節點類型，然後選擇 **Save (儲存)**。

         如需詳細資訊，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。

         如果選擇 r6gd 節點類型，將自動啟用資料分層。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

      1. 針對 **Number of replicas** (複本數)，選擇您想要的僅供讀取複本數目。如果您已啟用 Multi-AZ (多可用區域)，數字必須介於 1-5。

   1. 在 **Connectivity** (連線) 下

      1. 針對 **Network type** (網路類型)，請選擇此叢集支援的 IP 版本。

      1. 在 **Subnet group** (子網路群組) 中，選擇要套用至此叢集的子網路。ElastiCache 會使用此子網路群組選擇子網路及該子網路中的 IP 地址，以與您的節點建立關聯。ElastiCache 叢集需要具有 IPv4 和 IPv6 地址的雙堆疊子網路，以便在雙堆疊模式下運作，且僅限 IPv6 的子網路僅會以 IPv6 運作。

         建立新的子網路群組時，請輸入其所屬的 **VPC ID**。

         如需詳細資訊，請參閱：
         + [在 ElastiCache 中選擇網路類型](network-type.md).
         + [在 VPC 中建立子網路](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

         如果您是 [搭配 ElastiCache 使用本地區域](Local_zones.md)，必須建立或選擇位於本地區域中的子網路。

         如需詳細資訊，請參閱[子網路和子網路群組](SubnetGroups.md)。

   1. 針對 **Availability zone placements** (可用區域置放)，您有兩種選項：
      + **No preference (無偏好設定)** - ElastiCache 會選擇可用區域。
      + **Specify availability zones (指定可用區域)** - 您可為每個叢集指定可用區域。

        如果您選擇指定可用區域，請針對每個碎片中的每個叢集，從清單中選擇可用區域。

      如需詳細資訊，請參閱[選擇 ElastiCache 的區域和可用區域](RegionsAndAZs.md)。

   1. 選擇 **Next** (下一步)

   1. 在**進階 Valkey 或 Redis OSS 設定**下

      1. 針對 **Security** (安全)：

        1. 若要加密資料，您有下列選項：
           + **Encryption at rest (靜態加密)** - 啟用存放在磁碟上的資料加密功能。如需詳細資訊，請參閱[靜態加密](at-rest-encryption.md)。
**注意**  
您可以選擇**客戶受管AWS KMS 金鑰**並選擇金鑰，以提供不同的加密金鑰。如需詳細資訊，請參閱[使用來自AWS KMS 的客戶受管金鑰](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
           + **Encryption in-transit (傳輸中加密)** - 啟用傳輸中資料加密功能。如需詳細資訊，請參閱[傳輸中加密](in-transit-encryption.md)。對於 Valkey 和 Redis OSS 6.0 及更高版本，如果您啟用傳輸中加密，系統會提示您指定下列其中一個**存取控制**選項：
             + **No Access Control (無存取控制)** - 這是預設的設定。這表示使用者存取叢集時不受任何限制。
             + **User Group Access Control List (使用者群組存取控制清單)** - 選取的使用者群組需具有可存取叢集的已定義使用者集。如需詳細資訊，請參閱[使用主控台和 CLI 管理使用者群組](Clusters.RBAC.md#User-Groups)。
             + **AUTH 預設使用者** – Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。
           + **AUTH** – Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。
**注意**  
對於 3.2.6 以上版本的 Valkey 和 Redis OSS 版本，除了 3.2.10 版之外，Redis OSS AUTH 是唯一的選項。

        1. 在 **Security groups (安全群組)** 中，選擇要用於此叢集的安全群組。*安全群組*可做為防火牆來控制叢集的網路存取。您可以使用 VPC 的預設安全群組，或建立新的安全群組。

           如需安全群組的詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

   1. 針對定期排程自動備份，請選取 **Enable automatic backups (啟用自動備份)**，然後輸入每份自動備份要保存的天數，過了此天數後即會自動將其刪除。如果您不想定期排程自動備份，請清除 **Enable automatic backups (啟用自動備份)** 核取方塊。在任何一種情況下，您都可以選擇建立手動備份。

      如需 Redis OSS 備份和還原的詳細資訊，請參閱[快照和還原](backups.md)。

   1. (選用) 指定維護時段。*維護時段*是 ElastiCache 排程的每週叢集系統維護時間，通常長度為一小時。您可以讓 ElastiCache 選擇維護時段的日期和時間 (*No preference* (無偏好設定))，或自行選擇日期、時間和持續時間 (*Specify maintenance window* (指定維護時段))。如果您從清單中選擇 *Specify maintenance window (指定維護時段)*，請為您的維護時段選擇 *Start day (開始日)*、*Start time (開始時間)* 和 *Duration (持續時間)*。所有時間都是 UCT 時間。

      如需詳細資訊，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

   1. (選用) 針對 **Logs (日誌)**：
      + 在 **Log format (日誌格式)** 下，選擇 **Text (文字)** 或 **JSON**。
      + 在 **Destination Type (目的地類型)** 下，選擇 **CloudWatch Logs** 或 **Kinesis Firehose**。
      + 在**日誌目的地**下，選擇**建立新** ，然後輸入您的 CloudWatch Logs 日誌群組名稱或 Firehose 串流名稱，或選擇**選取現有**，然後選擇您的 CloudWatch Logs 日誌群組名稱或您的 Firehose 串流名稱。

   1. 針對 **Tags** (標籤)，為協助您管理叢集和其他 ElastiCache 資源，您可以用標籤形式將自己的中繼資料指派給每個資源。如需詳細資訊，請參閱[為您的 ElastiCache 資源加上標籤](Tagging-Resources.md)。

   1. 選擇**下一步**。

   1. 檢閱所有項目和選項，然後進行任何所需的更正。當您準備好時，請選擇 **Create** (建立)。

------
#### [ On premises ]

   1. 針對 **On premises** (內部部署)，建議您將 **Auto-failover** (自動容錯移轉) 保持啟用。如需詳細資訊，請參閱[使用異地同步備份將 ElastiCache for Redis OSS 的停機時間降至最低](AutoFailover.md)

   1. 若要完成建立叢集的程序，請按照[使用 Outposts](ElastiCache-Outposts.md) 的步驟執行。

------

一旦叢集的狀態變為*可用*，您就可以為其授予 Amazon EC2 存取權限、連線至叢集並開始使用叢集。如需詳細資訊，請參閱[步驟 3。授權對叢集的存取](#GettingStarted.AuthorizeAccess.valkey)及[步驟 4. 連接至叢集的節點](#GettingStarted.ConnectToCacheNode.valkey)。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

若要在叢集已啟用的情況下作業，請參閱下列主題：
+ 若要使用主控台，請參閱[建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。
+ 若要使用AWS CLI，請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (AWS CLI)](Clusters.Create.md#Clusters.Create.CLI.RedisCluster)。

## 步驟 3。授權對叢集的存取
<a name="GettingStarted.AuthorizeAccess.valkey"></a>

 本節假設您已熟悉如何啟動及連線至 Amazon EC2 執行個體。如需詳細資訊，請參閱 *[Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)*。

所有 ElastiCache 叢集都設計為從 Amazon EC2 執行個體進行存取。最常見的情況是從同一個 Amazon Virtual Private Cloud (Amazon VPC) 裡的 Amazon EC2 執行個體中存取 ElastiCache 叢集，本練習也適用此情況。

根據預設，僅有用來建立叢集的帳戶可以透過網路存取您的叢集。因此，在您從 EC2 執行個體連接至叢集之前，必須先授權讓 EC2 執行個體存取叢集。

最常見的使用案例是部署於 EC2 執行個體的應用程式時，需要連線至相同 VPC 中的叢集。若要管理相同 VPC 中 EC2 執行個體與叢集之間的存取權限，最簡單的方式如下：

1. 為您的叢集建立 VPC 安全群組。此安全群組可用來限制叢集執行個體的存取權限。舉例來說，您可以為此安全群建置立自訂規則，允許使用您在建立自訂規則時指派給叢集的連接埠存取 TCP，並可建立您將用於存取叢集的 IP 位址。

   Valkey 或 Redis OSS 叢集和複寫群組的預設連接埠為 `6379`。
**重要**  
Amazon ElastiCache 安全群組僅適用於*不*在 Amazon Virtual Private Cloud (Amazon VPC) 環境中執行的叢集。如果您在 Amazon Virtual Private Cloud 中執行，主控台的導覽窗格中的 **Security Groups (安全群組)** 就無法使用。  
如果您在 Amazon VPC 中執行 ElastiCache 節點，則可以使用 Amazon VPC 安全群組 (與 Amazon VPC 安全群組不同) 來控制叢集的存取權。如需在 Amazon VPC 中使用 ElastiCache 的詳細資訊，請參閱「[Amazon VPC 和 ElastiCache 安全性](VPCs.md)」

1. 為您的 EC2 執行個體建立 VPC 安全群組 (Web 和應用程式伺服器)。若有需要，此安全群組可允許透過 VPC 路由表存取網際網路上的 EC2 執行個體。舉例來說，您可以在此安全群組上設定規則，允許 TCP 透過連接埠 22 存取 EC2 執行個體。

1. 在您叢集的安全群組中建立自訂規則，允許來自您為 EC2 執行個體所建立之安全群組的連線。這樣做會允許安全群組的所有成員存取叢集。

**注意**  
如果您打算使用[本地區域](Local_zones.md)，請確認本地區域已啟用。在本地區域中建立子網路群組時，VPC 會延伸至該本地區域，VPC 會將子網路視為任何其他可用區域中的任何子網路群組。所有相關閘道和路由表都將自動調整。

**在允許來自其他安全群組連線的 VPC 安全群組中建立規則**

1. 登入AWS管理主控台，並在 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc)：// 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇**安全群組**。

1. 選取或建立您將用於叢集執行個體的安全群組。在 **Inbound Rules (傳入規則)** 下方，選取 **Edit Inbound Rules (編輯傳入規則)**，然後選取 **Add Rule (新增規則)**。此安全群組將允許其他安全群組成員存取。

1. 從 **Type (類型)** 選擇 **Custom TCP Rule (自訂 TCP 規則)**。

   1. 針對 **Port Range (連接埠範圍)**，指定您在建立叢集時所使用的連接埠。

      Valkey 或 Redis OSS 叢集和複寫群組的預設連接埠為 `6379`。

   1. 在 **Source (來源)** 方塊中輸入安全群組的 ID。從清單中選取您將用於 Amazon EC2 執行個體的安全群組。

1. 完成後，請選擇 **Save (儲存)**。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/VPC-Rules.png)

啟用存取權之後，您便可連線到節點，如下節所述。

如需有關從不同的 Amazon VPC、不同AWS區域或甚至是您的公司網路存取 ElastiCache 叢集的資訊，請參閱以下內容：
+ [用於存取 Amazon VPC 中 ElastiCache 快取的存取模式](elasticache-vpc-accessing.md)
+ [從外部存取 ElastiCache 資源AWS](accessing-elasticache.md#access-from-outside-aws)

## 步驟 4. 連接至叢集的節點
<a name="GettingStarted.ConnectToCacheNode.valkey"></a>

在繼續之前，請先完成[步驟 3。授權對叢集的存取](#GettingStarted.AuthorizeAccess.valkey)。

本節假設您已建立 Amazon EC2 執行個體且可連線至該執行個體。如需操作方式說明，請參閱 [Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

只有在您獲得授權執行此作業時，Amazon EC2 執行個體才能連線至叢集節點。

### 尋找您的節點端點
<a name="GettingStarted.FindEndpoints.valkey"></a>

當您的叢集處於*可用*狀態，且您獲得存取授權後，您就可以登入 Amazon EC2 執行個體並連線至叢集。若要執行此作業，您必須先判斷端點。

#### 尋找 Valkey （停用叢集模式） 叢集的端點 （主控台）
<a name="Endpoints.Find.valkey-gs"></a>

如果 Valkey （停用叢集模式） 叢集只有一個節點，則節點的端點會同時用於讀取和寫入。如果叢集有多個節點，則端點類型有三種：*主要端點*、*讀取者端點*和*節點端點*。

主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動，我們建議您的應用程式連線到主要端點。

讀取器端點會在 ElastiCache 叢集中的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除，讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache 叢集的多個僅供讀取複本放在不同的AWS可用區域 (AZ)，以確保讀取器端點的高可用性。

**注意**  
讀取者端點並非負載平衡器。它是一筆 DNS 記錄，會以循環配置方式解析為其中一個複本節點的 IP 地址。

針對讀取活動，應用程式也可連線到叢集中的任何節點。與主要端點不同，節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本)，您必須更新您應用程式中的節點端點。

**尋找 Valkey （停用叢集模式） 叢集的端點**

1. 登入AWS 管理主控台並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 快取**或 **Redis OSS 快取**。

   叢集畫面會顯示清單，其中包含任何現有的 Valkey 或 Redis OSS 無伺服器快取、Valkey （停用叢集模式） 和 Valkey （啟用叢集模式） 叢集。選擇您在 [建立 Valkey （停用叢集模式） 叢集 （主控台）](#Clusters.Create.CON.valkey-gs) 一節中建立的叢集。

1. 若要尋找叢集的主要和/或讀取器端點，請選擇叢集名稱 (而非選項按鈕)。  
![\[影像：Valkey （停用叢集模式） 叢集的主要端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Valkey （停用叢集模式） 叢集的主要端點和讀取器端點*

   如果叢集中只有一個節點，就不會有主要端點，因此您必須繼續下一個步驟。

1. 如果 Valkey （停用叢集模式） 叢集有複本節點，您可以選擇叢集的名稱，然後選擇**節點**索引標籤，以尋找叢集的複本節點端點。

   隨即顯示節點畫面，其顯示叢集中的每個節點、主要複本和複本，並與其端點一起列出。  
![\[影像：Valkey （停用叢集模式） 叢集的節點端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Valkey （停用叢集模式） 叢集的節點端點*

1. 將端點複製到剪貼簿：

   1. 逐一尋找您要複製的端點。

   1. 選擇端點前面的複製圖示。

   現在，端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊，請參閱 [連線至節點](nodes-connecting.md)。

Valkey （停用叢集模式） 主要端點看起來如下。其中的差異取決於是否啟用傳輸中加密。

**未啟用傳輸中加密**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**已啟用傳輸中加密**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

若要進一步探索您的端點，請參閱您所執行引擎和叢集類型的相關主題。
+ [在 ElastiCache 中尋找連線端點](Endpoints.md)
+ [尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.RedisCluster) - 您需要叢集的組態端點。
+ [尋找端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [尋找端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API)

### 連線至 Valkey 或 Redis OSS 叢集或複寫群組 (Linux)
<a name="GettingStarted.ConnectToCacheNode.Valkey.Linux"></a>

現在，您有了所需的端點，您可以登入 EC2 執行個體並連線到叢集或複寫群組。在下列範例中，您可以使用 *valkey-cli* 公用程式連線到叢集。最新版本的 valkey-cli 也支援 SSL/TLS 來連接啟用加密/身分驗證的叢集。

下列範例使用執行 Amazon Linux 和 Amazon Linux 2 的 Amazon EC2 執行個體。如需搭配其他 Linux 發行版本安裝和編譯 valkey-cli 的詳細資訊，請參閱特定作業系統的文件。

**注意**  
此程序涵蓋使用 valkey-cli 公用程式測試連線，僅供計劃外使用。如需支援的 Valkey 和 Redis OSS 用戶端清單，請參閱 [Valkey 文件](https://valkey.io/)。如需搭配 ElastiCache 使用AWS SDKs 的範例，請參閱 [教學課程：Python 和 ElastiCache 入門](ElastiCache-Getting-Started-Tutorials.md)。

#### 連線至停用叢集模式的未加密叢集
<a name="Connecting-to-a-cluster-mode-disabled-unencrypted-cluster.valkey"></a>

1. 執行下列命令，以連線至叢集，並將 *primary-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Valkey 或 Redis OSS 的預設連接埠為 6379。)

   ```
   src/valkey-cli -h primary-endpoint -p port number
   ```

   產生 Valkey 或 Redis OSS 命令提示字元的結果如下所示：

   ```
   primary-endpoint:port number
   ```

1. 您現在可以執行 Valkey 或 Redis OSS 命令。

   ```
   set x Hello
   OK
   
   get x
   "Hello"
   ```

#### 連線至啟用叢集模式的未加密叢集
<a name="Connecting-to-a-cluster-mode-enabled-unencrypted-cluster.valkey"></a>

1. 執行下列命令，以連線至叢集，並將 *configuration-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Valkey 或 Redis OSS 的預設連接埠為 6379。)

   ```
   src/valkey-cli -h configuration-endpoint -c -p port number
   ```
**注意**  
上述命令中，選項 -c 可讓叢集模式遵循 [-ASK 和 -MOVED 重新引導](https://valkey.io/topics/cluster-spec)。

   產生 Valkey 或 Redis OSS 命令提示字元的結果如下所示：

   ```
   configuration-endpoint:port number
   ```

1. 您現在可以執行 Valkey 或 Redis OSS 命令。請注意，發生重新引導是因為您使用 -c 選項啟用了此功能。如果未啟用重新引導，該命令會傳回 MOVED 錯誤。如需 MOVED 錯誤的詳細資訊，請參閱 [Redis OSS 叢集規格](https://valkey.io/topics/cluster-spec)。

   ```
   set x Hi
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   OK
   set y Hello
   OK
   get y
   "Hello"
   set z Bye
   -> Redirected to slot [8157] located at 172.31.9.201:6379
   OK
   get z
   "Bye"
   get x
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   "Hi"
   ```

#### 連線到啟用加密/身分驗證的叢集
<a name="Connecting-to-an-Encryption-Authentication-enabled-cluster.valkey"></a>

根據預設，valkey-cli 會在連線至 Valkey 或 Redis OSS 時使用未加密的 TCP 連線。選項會在 valkey-cli 編譯時`BUILD_TLS=yes`啟用 SSL/TLS，如上[下載並設定命令列存取](set-up.md#Download-and-install-cli)一節所示。啟用 AUTH 功能為選用操作。不過，您必須啟用傳輸中加密功能，才能啟用 AUTH。如需 ElastiCache 加密和身分驗證的詳細資訊，請參閱「[ElastiCache 傳輸中加密 (TLS)](in-transit-encryption.md)」。

**注意**  
您可以將 選項`--tls`與 valkey-cli 搭配使用，以連線至啟用和停用的叢集模式加密叢集。如果叢集已設定 AUTH 字符，則可以使用 `-a` 選項提供 AUTH 密碼。

在下列範例中，請務必將 *cluster-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Valkey 或 Redis OSS 的預設連接埠為 6379。)

**連線到停用叢集模式的加密叢集** 

下列範例會連線到啟用加密和身分驗證的叢集：

```
src/valkey-cli -h cluster-endpoint --tls -a your-password -p port number
```

下列範例會連線到只啟用加密的叢集：

```
src/valkey-cli -h cluster-endpoint --tls -p port number
```

**連線到啟用叢集模式的加密叢集** 

下列範例會連線到啟用加密和身分驗證的叢集：

```
src/valkey-cli -c -h cluster-endpoint --tls -a your-password -p port number
```

下列範例會連線到只啟用加密的叢集：

```
src/valkey-cli -c -h cluster-endpoint --tls -p port number
```

連線至叢集後，您可以執行 Valkey 或 Redis OSS 命令，如上述未加密叢集的範例所示。

#### valkey-cli 替代方案
<a name="valkey-cli-alternative"></a>

如果叢集未啟用叢集模式，而且您需要連線到叢集進行簡短測試，但不經過 valkey-cli 編譯，您可以使用 telnet 或 openssl。在下列命令範例中，請務必將 *cluster-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Valkey 或 Redis OSS 的預設連接埠為 6379。)

下列範例會連線到啟用加密和/或身分驗證且停用叢集模式的叢集：

```
openssl s_client -connect cluster-endpoint:port number
```

如果叢集已設定密碼，請先連線至叢集。連線後，請使用下列命令驗證叢集，然後按 `Enter` 鍵。在下列範例中，將 *your-password* 取代為您的叢集密碼。

```
Auth your-password
```

下列範例會連線到沒有啟用加密和/或身分驗證且停用叢集模式的叢集：

```
telnet cluster-endpoint port number
```

### 連線至 Valkey 或 Redis OSS 叢集或複寫群組 (Windows)
<a name="GettingStarted.ConnectToCacheNode.valkey.Windows"></a>

若要使用 Valkey CLI 或 Redis OSS CLI 從 EC2 Windows 執行個體連線至 Valkey 或 Redis OSS 叢集，您必須下載 *valkey-cli* 套件，並使用 *valkey-cli.exe* 從 EC2 Windows 執行個體連線至 Valkey 或 Redis OSS 叢集。

在下列範例中，您可以使用 *valkey-cli* 公用程式連線到未啟用加密並執行 Valkey 或 Redis OSS 的叢集。如需 Valkey 或 Redis OSS 和可用命令的詳細資訊，請參閱 [Valkey 網站上的 Valkey 和 Redis OSS 命令](http://valkey.io/commands)。

**使用 valkey*-cli 連線至未啟用加密的 Valkey* 或 Redis OSS 叢集**

1. 使用您選擇的連線公用程式連線到 Amazon EC2 執行個體。如需如何連線到 Amazon EC2 執行個體的說明，請參閱 [Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

1. 在網際網路瀏覽器[https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip](https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip)中複製並貼上連結，以從 GitHub 的可用版本下載 Valkey 用戶端的 zip 檔案 [https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504](https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504)

   將 zip 檔案解壓縮到所需的資料夾/路徑。

   開啟命令提示字元並變更為 Valkey 目錄，然後執行命令 `c:\Valkey>valkey-cli -h Redis_Cluster_Endpoint -p 6379`。

   例如：

   ```
   c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
   ```

1. 執行 Valkey 或 Redis OSS 命令。

    您現在已連線至叢集，可以執行如下所示的 Valkey 或 Redis OSS 命令。

   ```
   set a "hello"          // Set key "a" with a string value and no expiration
   OK
   get a                  // Get value for key "a"
   "hello"
   get b                  // Get value for key "b" results in miss
   (nil)				
   set b "Good-bye" EX 5  // Set key "b" with a string value and a 5 second expiration
   "Good-bye"
   get b                  // Get value for key "b"
   "Good-bye"
                          // wait >= 5 seconds
   get b
   (nil)                  // key has expired, nothing returned
   quit                   // Exit from valkey-cli
   ```

## 接下來做些什麼？
<a name="GettingStarted.WhereGoFromHere.valkey"></a>

現在您已嘗試過入門練習，接下來可以瀏覽以下章節，進一步了解 ElastiCache 和可用工具：
+ [入門AWS](https://aws.amazon.com/getting-started/)
+ [適用於 Amazon Web Services 的工具](https://aws.amazon.com/tools/)
+ [AWS命令列介面](https://aws.amazon.com/cli/)
+ [Amazon ElastiCache API 參考](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html)

完成入門練習之後，您可以參閱以下幾節，進一步了解 ElastiCache 管理：
+ [選擇您的節點大小](CacheNodes.SelectSize.md)

  建議您具備夠大的快取，以包含所有要快取的資料。同時，您不想要支付超出所需快取數量的費用。此主題可協助您選擇最佳節點大小。
+ [ElastiCache 最佳實務和快取策略](BestPractices.md)

  識別並解決可能影響叢集效率的問題。

# 為 Redis OSS 建立節點型 ElastiCache 叢集
<a name="SubnetGroups.designing-cluster-pre.redis"></a>

以下是您必須採取的一次性動作，才能為 Redis OSS 建立以節點為基礎的 ElastiCache 叢集。

如需有關設定 ElastiCache 的進一步資訊，請參閱 [設定 ElastiCache](set-up.md)。

**Topics**
+ [步驟 1：建立子網路群組](#SubnetGroups.Creating-gs.redis)
+ [步驟 2：建立叢集](#GettingStarted.CreateCluster.redis)
+ [步驟3：授予叢集的存取權](#GettingStarted.AuthorizeAccess.redis)
+ [步驟 4：連線至叢集的節點](#GettingStarted.ConnectToCacheNode.redis)

## 步驟 1：建立子網路群組
<a name="SubnetGroups.Creating-gs.redis"></a>

建立叢集前，您需先建立子網路群組。*快取子網路群組*是您可能想要為 VPC 中的叢集指定的子網路集合。在 VPC 中啟動叢集時，您需要選取快取子網路群組。然後 ElastiCache 會使用該快取子網路群組，對叢集中的每個快取節點指派該子網路內的 IP 地址。

當您建立新的子網路群組時，請注意可用的 IP 地址數量。如果子網路的可用 IP 地址很少，則可能會限制您可以新增到叢集的節點數量。若要解決此問題，您可以將一或多個子網路指派給子網路群組，以便在叢集的可用區域中擁有足夠數量的 IP 地址。在那之後，您便可以將更多節點新增至您的叢集。

下列程序顯示如何建立名為 `mysubnetgroup` (控制台) 的子網路群組和AWS CLI。

### 建立子網路群組 (主控台)
<a name="SubnetGroups.Creating.CON.redis"></a>

下列程序顯示如何建立子網路群組 (主控台)。

**建立子網路群組 (主控台)**

1. 登入AWS管理主控台，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽清單中，選擇 **Subnet Groups (子網路群組)**。

1. 選擇 **Create Subnet Group (建立子網路群組)**。

1. 在 **Create Subnet Group (建立子網路群組)** 精靈中，執行下列動作。當您滿意所有設定後，請選擇 **Yes, Create (是，建立)**。

   1. 在 **Name (名稱)** 方塊中，輸入子網路群組的名稱。

   1. 在 **Description (描述)** 方塊中，輸入子網路群組的描述。

   1. 在 **VPC ID** 方塊中，選擇您建立的 Amazon VPC。

   1. 在 **Availability Zone (可用區域)** 和 **Subnet ID (子網路 ID)** 清單中，選擇可用區域或[本地區域](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Local_zones.html)，以及私有子網路的 ID，然後選擇 **Add (新增)**。  
![\[圖片：建立子網路 VPC 畫面\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/vpc-03.png)

1. 在出現的確認訊息中，選擇 **Close (關閉)**。

您新的子網路群組會顯示在 ElastiCache 主控台的 **Subnet Groups (子網路群組)** 清單中。您可以在視窗底部選擇要查看詳細資訊的子網路群組，例如與此群組相關聯的所有子網路。

### 建立子網路群組 (AWS CLI)
<a name="SubnetGroups.Creating.redis.CLI"></a>

在命令提示字元中，使用命令 `create-cache-subnet-group` 來建立子網路群組。

針對 Linux、macOS 或 Unix：

```
aws elasticache create-cache-subnet-group \
    --cache-subnet-group-name mysubnetgroup \
    --cache-subnet-group-description "Testing" \
    --subnet-ids subnet-53df9c3a
```

針對 Windows：

```
aws elasticache create-cache-subnet-group ^
    --cache-subnet-group-name mysubnetgroup ^
    --cache-subnet-group-description "Testing" ^
    --subnet-ids subnet-53df9c3a
```

此命令應該產生類似下列的輸出：

```
{
    "CacheSubnetGroup": {
        "VpcId": "vpc-37c3cd17", 
        "CacheSubnetGroupDescription": "Testing", 
        "Subnets": [
            {
                "SubnetIdentifier": "subnet-53df9c3a", 
                "SubnetAvailabilityZone": {
                    "Name": "us-west-2a"
                }
            }
        ], 
        "CacheSubnetGroupName": "mysubnetgroup"
    }
}
```

如需詳細資訊，請參閱AWS CLI主題 [create-cache-subnet-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-subnet-group.html)。

## 步驟 2：建立叢集
<a name="GettingStarted.CreateCluster.redis"></a>

在建立供生產使用的叢集之前，您明顯需要考慮如何設定叢集以符合您的業務需求。這些問題在「[在 ElastiCache 中準備叢集](Clusters.Prepare.md)」一節中說明。此入門練習的用意是讓您建立停用叢集模式的叢集，且可以接受它們適用的預設組態值。

您建立的叢集將會實際上線，而非在沙盒中執行。您需為執行個體支付標準 ElastiCache 使用費，直到您將執行個體刪除為止。如果您一口氣地完成這裡所述的練習，並在完成時刪除您的叢集，則總計費用會很少 (通常不到 1 美元)。如需 ElastiCache 使用費率的詳細資訊，請參閱 [Amazon ElastiCache](https://aws.amazon.com/elasticache/)。

您的叢集會在以 Amazon VPC 服務為基礎的 Virtual Private Cloud (VPC) 中啟動。

### 建立 Redis OSS （停用叢集模式） 叢集 （主控台）
<a name="Clusters.Create.CON.Redis-gs"></a>

**使用 ElastiCache 主控台建立 Redis OSS （停用叢集模式） 叢集**

1. 登入AWS 管理主控台，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 從右上角的清單中，選擇要啟動此叢集AWS的區域。

1. 從導覽窗格選擇 **Get started** (開始使用)。

1. 選擇 **Create VPC** (建立 VPC)，然後按照[建立虛擬私有雲端 (VPC)](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/VPCs.CreatingVPC.html) 中列出的步驟操作。

1. 在 ElastiCache 儀表板頁面上，選擇 **Valkey 快取**或 **Redis OSS 快取**。在本練習中，我們將選擇 **Redis OSS 快取**，然後選擇**建立 Redis OSS 快取**。

1. 在 **Cluster settings** (叢集設定) 中，執行下列動作：

   1. 選擇 **Configure and create a new cluster** (設定和建立新叢集)。

   1. 針對 **Cluster mode** (叢集模式)，選擇 **Disabled** (已停用)。

   1. 針對 **Cluster info** (叢集資訊)，輸入 **Name** (名稱) 值。

   1. (選用) 輸入 **Description** (描述) 值。

1. 在 **Location** (位置) 中：

------
#### [ AWS Cloud  ]

   1. 針對 **AWS雲端**，建議您接受**多可用區域**和**自動容錯移轉**的預設設定。如需詳細資訊，請參閱[使用異地同步備份將 ElastiCache for Redis OSS 的停機時間降至最低](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html)。

   1. 在 **Cluster settings** (叢集設定) 中

      1. 針對 **Engine version** (引擎版本)，選擇可用的版本。

      1. 針對 **Port** (連接埠)，使用預設連接埠 6379。如果您基於任何原因需要使用不同的連接埠，請輸入連接埠號碼。

      1. 對於 **Parameter group (參數群組)**，請選擇參數群組或新建參數群組。參數群組可控制叢集的執行時間參數。如需參數群組的詳細資訊，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)和[建立 ElastiCache 參數群組](ParameterGroups.Creating.md)。
**注意**  
當您選取參數群組來設定引擎組態值時，該參數群組會套用至全域資料存放區中的所有叢集。在 **Parameter Groups (參數群組)** 頁面上，yes/no (是/否) **Global (全域)** 屬性指出參數群組是否為全域資料存放區的一部分。

      1. 在 **Node type (節點類型)** 中，選擇向下箭頭 (![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png))。在 **Change node type (變更節點類型)** 對話方塊中，為您想要的節點類型選擇 **Instance family (執行個體系列)** 的值。然後選擇您要用於此叢集的節點類型，然後選擇 **Save (儲存)**。

         如需詳細資訊，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。

         如果選擇 r6gd 節點類型，將自動啟用資料分層。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

      1. 針對 **Number of replicas** (複本數)，選擇您想要的僅供讀取複本數目。如果您已啟用 Multi-AZ (多可用區域)，數字必須介於 1-5。

   1. 在 **Connectivity** (連線) 下

      1. 針對 **Network type** (網路類型)，請選擇此叢集支援的 IP 版本。

      1. 在 **Subnet group** (子網路群組) 中，選擇要套用至此叢集的子網路。ElastiCache 會使用此子網路群組選擇子網路及該子網路中的 IP 地址，以與您的節點建立關聯。ElastiCache 叢集需要具有 IPv4 和 IPv6 地址的雙堆疊子網路，以便在雙堆疊模式下運作，且僅限 IPv6 的子網路僅會以 IPv6 運作。

         建立新的子網路群組時，請輸入其所屬的 **VPC ID**。

         如需詳細資訊，請參閱：
         + [在 ElastiCache 中選擇網路類型](network-type.md).
         + [在 VPC 中建立子網路](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

         如果您是 [搭配 ElastiCache 使用本地區域](Local_zones.md)，必須建立或選擇位於本地區域中的子網路。

         如需詳細資訊，請參閱[子網路和子網路群組](SubnetGroups.md)。

   1. 針對 **Availability zone placements** (可用區域置放)，您有兩種選項：
      + **No preference (無偏好設定)** - ElastiCache 會選擇可用區域。
      + **Specify availability zones (指定可用區域)** - 您可為每個叢集指定可用區域。

        如果您選擇指定可用區域，請針對每個碎片中的每個叢集，從清單中選擇可用區域。

      如需詳細資訊，請參閱[選擇 ElastiCache 的區域和可用區域](RegionsAndAZs.md)。

   1. 選擇 **Next** (下一步)

   1. 在**進階 Redis OSS 設定**下

      1. 針對 **Security** (安全)：

        1. 若要加密資料，您有下列選項：
           + **Encryption at rest (靜態加密)** - 啟用存放在磁碟上的資料加密功能。如需詳細資訊，請參閱[靜態加密](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html)。
**注意**  
您可以選擇**客戶受管AWS KMS 金鑰**並選擇金鑰，以提供不同的加密金鑰。如需詳細資訊，請參閱[使用來自AWS KMS 的客戶受管金鑰](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html#using-customer-managed-keys-for-elasticache-security)。
           + **Encryption in-transit (傳輸中加密)** - 啟用傳輸中資料加密功能。如需詳細資訊，請參閱[傳輸中加密](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/in-transit-encryption.html)。對於適用於 Redis OSS 及更高版本的 ElastiCache 引擎 6.0 版，如果您啟用傳輸中加密，系統會提示您指定下列其中一個**存取控制**選項：
             + **No Access Control (無存取控制)** - 這是預設的設定。這表示使用者存取叢集時不受任何限制。
             + **User Group Access Control List (使用者群組存取控制清單)** - 選取的使用者群組需具有可存取叢集的已定義使用者集。如需詳細資訊，請參閱[使用主控台和 CLI 管理使用者群組](Clusters.RBAC.md#User-Groups)。
             + **AUTH 預設使用者** – Valkey 和 Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html)。
           + **AUTH** – Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth.html)。
**注意**  
對於 3.2.6 以上版本的 Redis OSS，除了 3.2.10 版之外，Redis OSS AUTH 是唯一的選項。

        1. 在 **Security groups (安全群組)** 中，選擇要用於此叢集的安全群組。*安全群組*可做為防火牆來控制叢集的網路存取。您可以使用 VPC 的預設安全群組，或建立新的安全群組。

           如需安全群組的詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

   1. 針對定期排程自動備份，請選取 **Enable automatic backups (啟用自動備份)**，然後輸入每份自動備份要保存的天數，過了此天數後即會自動將其刪除。如果您不想定期排程自動備份，請清除 **Enable automatic backups (啟用自動備份)** 核取方塊。在任何一種情況下，您都可以選擇建立手動備份。

      如需備份和還原的詳細資訊，請參閱 [快照和還原](backups.md)。

   1. (選用) 指定維護時段。*維護時段*是 ElastiCache 排程的每週叢集系統維護時間，通常長度為一小時。您可以讓 ElastiCache 選擇維護時段的日期和時間 (*No preference* (無偏好設定))，或自行選擇日期、時間和持續時間 (*Specify maintenance window* (指定維護時段))。如果您從清單中選擇 *Specify maintenance window (指定維護時段)*，請為您的維護時段選擇 *Start day (開始日)*、*Start time (開始時間)* 和 *Duration (持續時間)*。所有時間都是 UCT 時間。

      如需詳細資訊，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

   1. (選用) 針對 **Logs (日誌)**：
      + 在 **Log format (日誌格式)** 下，選擇 **Text (文字)** 或 **JSON**。
      + 在 **Destination Type (目的地類型)** 下，選擇 **CloudWatch Logs** 或 **Kinesis Firehose**。
      + 在**日誌目的地**下，選擇**建立新** ，然後輸入您的 CloudWatch Logs 日誌群組名稱或 Firehose 串流名稱，或選擇**選取現有**，然後選擇您的 CloudWatch Logs 日誌群組名稱或您的 Firehose 串流名稱。

   1. 針對 **Tags** (標籤)，為協助您管理叢集和其他 ElastiCache 資源，您可以用標籤形式將自己的中繼資料指派給每個資源。如需詳細資訊，請參閱[為您的 ElastiCache 資源加上標籤](Tagging-Resources.md)。

   1. 選擇**下一步**。

   1. 檢閱所有項目和選項，然後進行任何所需的更正。當您準備好時，請選擇 **Create** (建立)。

------
#### [ On premises ]

   1. 針對 **On premises** (內部部署)，建議您將 **Auto-failover** (自動容錯移轉) 保持啟用。如需詳細資訊，請參閱[使用異地同步備份將 ElastiCache for Redis OSS 的停機時間降至最低](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoFailover.html)

   1. 若要完成建立叢集的程序，請按照[使用 Outposts](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/ElastiCache-Outposts.html) 的步驟執行。

------

一旦叢集的狀態變為*可用*，您就可以為其授予 Amazon EC2 存取權限、連線至叢集並開始使用叢集。如需詳細資訊，請參閱[步驟 3。授權對叢集的存取](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)及[步驟 4. 連接至叢集的節點](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

### 建立 Redis OSS （停用叢集模式） 叢集 (AWS CLI)
<a name="Clusters.Create.CLI.Redis-gs"></a>

**Example**  
下列 CLI 程式碼會建立沒有複本的 Redis OSS （停用叢集模式） 叢集。  
針對 Linux、macOS 或 Unix：  

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine redis \
--num-cache-nodes 1 \
--snapshot-arns arn:aws:s3:::my_bucket/snapshot.rdb
```
針對 Windows：  

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine redis ^
--num-cache-nodes 1 ^
--snapshot-arns arn:aws:s3:::my_bucket/snapshot.rdb
```

若要在叢集已啟用的情況下作業，請參閱下列主題：
+ 若要使用主控台，請參閱[建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。
+ 若要使用AWS CLI，請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (AWS CLI)](Clusters.Create.md#Clusters.Create.CLI.RedisCluster)。

## 步驟3：授予叢集的存取權
<a name="GettingStarted.AuthorizeAccess.redis"></a>

 本節假設您已熟悉如何啟動及連線至 Amazon EC2 執行個體。如需詳細資訊，請參閱 *[Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)*。

所有 ElastiCache 叢集都設計為從 Amazon EC2 執行個體進行存取。最常見的情況是從同一個 Amazon Virtual Private Cloud (Amazon VPC) 裡的 Amazon EC2 執行個體中存取 ElastiCache 叢集，本練習也適用此情況。

根據預設，僅有用來建立叢集的帳戶可以透過網路存取您的叢集。因此，在您從 EC2 執行個體連接至叢集之前，必須先授權讓 EC2 執行個體存取叢集。需要的步驟取決於您是在 EC2-VPC 還是 EC2-Classic 中啟動叢集。

最常見的使用案例是部署於 EC2 執行個體的應用程式時，需要連線至相同 VPC 中的叢集。若要管理相同 VPC 中 EC2 執行個體與叢集之間的存取權限，最簡單的方式如下：

1. 為您的叢集建立 VPC 安全群組。此安全群組可用來限制叢集執行個體的存取權限。舉例來說，您可以為此安全群建置立自訂規則，允許使用您在建立自訂規則時指派給叢集的連接埠存取 TCP，並可建立您將用於存取叢集的 IP 位址。

   Redis OSS 叢集和複寫群組的預設連接埠為 `6379`。
**重要**  
Amazon ElastiCache 安全群組僅適用於*不*在 Amazon Virtual Private Cloud (Amazon VPC) 環境中執行的叢集。如果您在 Amazon Virtual Private Cloud 中執行，主控台的導覽窗格中的 **Security Groups (安全群組)** 就無法使用。  
如果您在 Amazon VPC 中執行 ElastiCache 節點，則可以使用 Amazon VPC 安全群組 (與 Amazon VPC 安全群組不同) 來控制叢集的存取權。如需在 Amazon VPC 中使用 ElastiCache 的詳細資訊，請參閱「[Amazon VPC 和 ElastiCache 安全性](VPCs.md)」

1. 為您的 EC2 執行個體建立 VPC 安全群組 (Web 和應用程式伺服器)。若有需要，此安全群組可允許透過 VPC 路由表存取網際網路上的 EC2 執行個體。舉例來說，您可以在此安全群組上設定規則，允許 TCP 透過連接埠 22 存取 EC2 執行個體。

1. 在您叢集的安全群組中建立自訂規則，允許來自您為 EC2 執行個體所建立之安全群組的連線。這樣做會允許安全群組的所有成員存取叢集。

**注意**  
如果您打算使用 [搭配 ElastiCache 使用本地區域](Local_zones.md)，請確保您已啟用它們。在本地區域中建立子網路群組時，VPC 會延伸至該本地區域，VPC 會將子網路視為任何其他可用區域中的任何子網路群組。所有相關閘道和路由表都將自動調整。

**在允許來自其他安全群組連線的 VPC 安全群組中建立規則**

1. 登入AWS管理主控台，並在 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc)：// 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇**安全群組**。

1. 選取或建立您將用於叢集執行個體的安全群組。在 **Inbound Rules (傳入規則)** 下方，選取 **Edit Inbound Rules (編輯傳入規則)**，然後選取 **Add Rule (新增規則)**。此安全群組將允許其他安全群組成員存取。

1. 從 **Type (類型)** 選擇 **Custom TCP Rule (自訂 TCP 規則)**。

   1. 針對 **Port Range (連接埠範圍)**，指定您在建立叢集時所使用的連接埠。

      Redis OSS 叢集和複寫群組的預設連接埠為 `6379`。

   1. 在 **Source (來源)** 方塊中輸入安全群組的 ID。從清單中選取您將用於 Amazon EC2 執行個體的安全群組。

1. 完成後，請選擇 **Save (儲存)**。  
![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/VPC-Rules.png)

啟用存取權之後，您便可連線到節點，如下節所述。

如需有關從不同的 Amazon VPC、不同AWS區域或甚至是您的公司網路存取 ElastiCache 叢集的資訊，請參閱以下內容：
+ [用於存取 Amazon VPC 中 ElastiCache 快取的存取模式](elasticache-vpc-accessing.md)
+ [從外部存取 ElastiCache 資源AWS](accessing-elasticache.md#access-from-outside-aws)

## 步驟 4：連線至叢集的節點
<a name="GettingStarted.ConnectToCacheNode.redis"></a>

在繼續之前，請先完成[步驟3：授予叢集的存取權](#GettingStarted.AuthorizeAccess.redis)。

本節假設您已建立 Amazon EC2 執行個體且可連線至該執行個體。如需操作方式說明，請參閱 [Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

只有在您獲得授權執行此作業時，Amazon EC2 執行個體才能連線至叢集節點。

### 尋找您的節點端點
<a name="GettingStarted.FindEndpoints.redis"></a>

當您的叢集處於*可用*狀態，且您獲得存取授權後，您就可以登入 Amazon EC2 執行個體並連線至叢集。若要執行此作業，您必須先判斷端點。

#### 尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）
<a name="Endpoints.Find.Redis-gs"></a>

如果 Redis OSS （停用叢集模式） 叢集只有一個節點，則節點的端點會同時用於讀取和寫入。如果叢集有多個節點，則端點類型有三種：*主要端點*、*讀取者端點*和*節點端點*。

主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動，我們建議您的應用程式連線到主要端點。

讀取器端點會在 ElastiCache for Redis OSS 叢集中的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除，讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache for Redis OSS 叢集的多個僅供讀取複本放在不同的AWS可用區域 (AZ)，以確保讀取器端點的高可用性。

**注意**  
讀取者端點並非負載平衡器。它是一筆 DNS 記錄，會以循環配置方式解析為其中一個複本節點的 IP 地址。

針對讀取活動，應用程式也可連線到叢集中的任何節點。與主要端點不同，節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本)，您必須更新您應用程式中的節點端點。

**尋找 Redis OSS （停用叢集模式） 叢集的端點**

1. 登入AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Redis OSS 快取**。

   叢集畫面會顯示清單，其中包含任何現有的 Valkey 或 Redis OSS 無伺服器快取、Redis OSS （停用叢集模式） 叢集和 Redis OSS （啟用叢集模式） 叢集。選擇您在 [建立 Redis OSS （停用叢集模式） 叢集 （主控台）](#Clusters.Create.CON.Redis-gs) 一節中建立的叢集。

1. 若要尋找叢集的主要和/或讀取器端點，請選擇叢集名稱 (而非選項按鈕)。  
![\[影像：Redis OSS （停用叢集模式） 叢集的主要端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Redis OSS （停用叢集模式） 叢集的主要端點和讀取器端點*

   如果叢集中只有一個節點，就不會有主要端點，因此您必須繼續下一個步驟。

1. 如果 Redis OSS （停用叢集模式） 叢集有複本節點，您可以選擇叢集的名稱，然後選擇**節點**索引標籤，以尋找叢集的複本節點端點。

   隨即顯示節點畫面，其顯示叢集中的每個節點、主要複本和複本，並與其端點一起列出。  
![\[影像：Redis OSS （停用叢集模式） 叢集的節點端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Redis OSS （停用叢集模式） 叢集的節點端點*

1. 將端點複製到剪貼簿：

   1. 逐一尋找您要複製的端點。

   1. 選擇端點前面的複製圖示。

   現在，端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊，請參閱 [連線至節點](nodes-connecting.md)。

Redis OSS （停用叢集模式） 主要端點看起來如下。其中的差異取決於是否啟用傳輸中加密。

**未啟用傳輸中加密**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**已啟用傳輸中加密**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

若要進一步探索您的端點，請參閱您所執行引擎和叢集類型的相關主題。
+ [在 ElastiCache 中尋找連線端點](Endpoints.md)
+ [尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.RedisCluster) - 您需要叢集的組態端點。
+ [尋找端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [尋找端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API)

### 連線至 Valkey 或 Redis OSS 叢集或複寫群組 (Linux)
<a name="GettingStarted.ConnectToCacheNode.Redis.Linux"></a>

現在，您有了所需的端點，您可以登入 EC2 執行個體並連線到叢集或複寫群組。在下列範例中，您可以使用 *valkey-cli* 公用程式連線到叢集。最新版本的 valkey-cli 也支援 SSL/TLS 來連接啟用加密/身分驗證的叢集。

下列範例使用執行 Amazon Linux 和 Amazon Linux 2 的 Amazon EC2 執行個體。如需搭配其他 Linux 發行版本安裝和編譯 valkey-cli 的詳細資訊，請參閱特定作業系統的文件。

**注意**  
此程序涵蓋使用 valkey-cli 公用程式測試連線，僅供計劃外使用。如需支援的用戶端清單，請參閱 [Valkey 文件](https://valkey.io/)。如需搭配 ElastiCache 使用AWS SDKs的範例，請參閱 [教學課程：Python 和 ElastiCache 入門](ElastiCache-Getting-Started-Tutorials.md)。

#### 連線至停用叢集模式的未加密叢集
<a name="Connecting-to-a-cluster-mode-disabled-unencrypted-cluster.redis"></a>

1. 執行下列命令，以連線至叢集，並將 *primary-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Valkey 和 Redis OSS 的預設連接埠為 6379。)

   ```
   src/valkey-cli -h primary-endpoint -p port number
   ```

   命令提示字元的結果如下所示：

   ```
   primary-endpoint:port number
   ```

1. 您現在可以執行 Valkey 和 Redis OSS 命令。

   ```
   set x Hello
   OK
   
   get x
   "Hello"
   ```

#### 連線至啟用叢集模式的未加密叢集
<a name="Connecting-to-a-cluster-mode-enabled-unencrypted-cluster.redis"></a>

1. 執行下列命令，以連線至叢集，並將 *configuration-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Valkey 和 Redis OSS 的預設連接埠為 6379。)

   ```
   src/valkey-cli -h configuration-endpoint -c -p port number
   ```
**注意**  
上述命令中，選項 -c 可讓叢集模式遵循 [-ASK 和 -MOVED 重新引導](https://redis.io/topics/cluster-spec)。

   命令提示字元的結果如下所示：

   ```
   configuration-endpoint:port number
   ```

1. 您現在可以執行 Valkey 和 Redis OSS 命令。請注意，發生重新引導是因為您使用 -c 選項啟用了此功能。如果未啟用重新引導，該命令會傳回 MOVED 錯誤。如需 MOVED 錯誤的詳細資訊，請參閱[叢集規格](https://valkey.io/topics/cluster-spec)。

   ```
   set x Hi
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   OK
   set y Hello
   OK
   get y
   "Hello"
   set z Bye
   -> Redirected to slot [8157] located at 172.31.9.201:6379
   OK
   get z
   "Bye"
   get x
   -> Redirected to slot [16287] located at 172.31.28.122:6379
   "Hi"
   ```

#### 連線到啟用加密/身分驗證的叢集
<a name="Connecting-to-an-Encryption-Authentication-enabled-cluster.redis"></a>

根據預設，valkey-cli 會在連線至 Valkey 和 Redis OSS 時使用未加密的 TCP 連線。選項會在 valkey-cli 編譯時`BUILD_TLS=yes`啟用 SSL/TLS，如上[下載並設定命令列存取](set-up.md#Download-and-install-cli)一節所示。啟用 AUTH 功能為選用操作。不過，您必須啟用傳輸中加密功能，才能啟用 AUTH。如需 ElastiCache 加密和身分驗證的詳細資訊，請參閱「[ElastiCache 傳輸中加密 (TLS)](in-transit-encryption.md)」。

**注意**  
您可以將 選項`--tls`與 valkey-cli 搭配使用，以連線至啟用和停用的叢集模式加密叢集。如果叢集已設定 AUTH 字符，則可以使用 `-a` 選項提供 AUTH 密碼。

在下列範例中，請務必將 *cluster-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Redis OSS 的預設連接埠為 6379。)

**連線到停用叢集模式的加密叢集** 

下列範例會連線到啟用加密和身分驗證的叢集：

```
src/valkey-cli -h cluster-endpoint --tls -a your-password -p port number
```

下列範例會連線到只啟用加密的叢集：

```
src/valkey-cli -h cluster-endpoint --tls -p port number
```

**連線到啟用叢集模式的加密叢集** 

下列範例會連線到啟用加密和身分驗證的叢集：

```
src/valkey-cli -c -h cluster-endpoint --tls -a your-password -p port number
```

下列範例會連線到只啟用加密的叢集：

```
src/valkey-cli -c -h cluster-endpoint --tls -p port number
```

連線至叢集後，您可以執行 Valkey 或 Redis OSS 命令，如上述未加密叢集的範例所示。

#### valkey-cli 或 Redis-cli 的替代方案
<a name="Redis-cli-alternative"></a>

如果叢集未啟用叢集模式，而且您需要建立叢集連線以進行簡短測試，但不經過 valkey-cli 或 redis-cli 編譯，您可以使用 telnet 或 openssl。在下列命令範例中，請務必將 *cluster-endpoint* 和 *port number* 取代為您叢集的端點和連接埠號碼。(Redis OSS 的預設連接埠為 6379。)

下列範例會連線到啟用加密和/或身分驗證且停用叢集模式的叢集：

```
openssl s_client -connect cluster-endpoint:port number
```

如果叢集已設定密碼，請先連線至叢集。連線後，請使用下列命令驗證叢集，然後按 `Enter` 鍵。在下列範例中，將 *your-password* 取代為您的叢集密碼。

```
Auth your-password
```

下列範例會連線到沒有啟用加密和/或身分驗證且停用叢集模式的叢集：

```
telnet cluster-endpoint port number
```

### 連線至 Valkey 或 Redis OSS 叢集或複寫群組 (Windows)
<a name="GettingStarted.ConnectToCacheNode.Redis.Windows"></a>

若要使用 Valkey 或 Redis OSS CLI 從 EC2 Windows 執行個體連線至叢集，您必須下載 *valkey-cli* 套件，並使用 *valkey-cli.exe* 從 EC2 Windows 執行個體連線至 Valkey 或 Redis OSS 叢集。

在下列範例中，您可以使用 *valkey-cli* 公用程式連線到未啟用加密並執行 Valkey 或 Redis OSS 的叢集。如需 Valkey 和可用命令的詳細資訊，請參閱 [Valkey 網站上的 Valkey 命令](http://valkey.io/commands)。

**使用 *valkey-cli 連線至未啟用加密的 Valkey* 或 Redis OSS 叢集**

1. 使用您選擇的連線公用程式連線到 Amazon EC2 執行個體。如需如何連線到 Amazon EC2 執行個體的說明，請參閱 [Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

1. 在網際網路瀏覽器[https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip](https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip)中複製並貼上連結，以從 GitHub 的可用版本下載 Redis OSS 用戶端的 zip 檔案 [https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504](https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504)

   將 zip 檔案解壓縮到所需的資料夾/路徑。

   開啟命令提示字元並變更為 Valkey 目錄，然後執行命令 `c:\Valkey>valkey-cli -h Valkey_Cluster_Endpoint -p 6379`。

   例如：

   ```
   c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
   ```

1. 執行 Valkey 或 Redis OSS 命令。

    您現在已連線至叢集，可以執行如下所示的 Valkey 或 Redis OSS 命令。

   ```
   set a "hello"          // Set key "a" with a string value and no expiration
   OK
   get a                  // Get value for key "a"
   "hello"
   get b                  // Get value for key "b" results in miss
   (nil)				
   set b "Good-bye" EX 5  // Set key "b" with a string value and a 5 second expiration
   "Good-bye"
   get b                  // Get value for key "b"
   "Good-bye"
                          // wait >= 5 seconds
   get b
   (nil)                  // key has expired, nothing returned
   quit                   // Exit from valkey-cli
   ```

# 刪除叢集
<a name="Clusters.Delete-gs.redis"></a>

一旦叢集處於*「可用」*狀態，就會開始向您收費，不論您是否主動使用亦同。若要停止產生費用，請刪除叢集。

**警告**  
當您刪除 ElastiCache 叢集時，會保留您的手動快照。您也可以在刪除叢集之前建立最終快照。自動快取快照則不會保留。如需詳細資訊，請參閱[快照和還原](backups.md)。
`CreateSnapshot` 需要 許可才能建立最終快照。如果沒有此許可，API 呼叫將會失敗，但有`Access Denied`例外狀況。

## 使用AWS 管理主控台
<a name="Clusters.Delete.CON-gs.redis"></a>

以下程序會從您的部署中刪除單一叢集。若要刪除多個叢集，請針對每個要刪除的叢集重複此程序。您不需要等待某個叢集完成刪除，即可開始刪除其他叢集。

**刪除叢集**

1. 登入AWS 管理主控台，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在 ElastiCache 引擎儀表板中，選擇 Valkey 或 Redis OSS。

   在該引擎上執行的所有快取清單隨即出現。

1. 要選擇欲刪除的叢集，請從叢集清單選擇叢集的名稱。此案例中為您在「[步驟 2：建立叢集](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.CreateCluster.valkey)」建立的叢集之名稱。
**重要**  
您一次只能從 ElastiCache 主控台刪除一個叢集。選擇多個叢集會停用刪除操作。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 在**刪除叢集**確認畫面中，輸入叢集的名稱並選擇**最終備份**。然後選擇**刪除**以刪除叢集，或選擇**取消**以保留叢集。

   如果您選擇 **Delete (刪除)**，叢集的狀態就會變更為 *deleting (正在刪除)*。

一旦您的叢集不再列於叢集清單，您就不會再因此產生費用。

## 使用AWS CLI
<a name="Clusters.Delete.CLI-gs.redis"></a>

下列程式碼會刪除 `my-cluster` 叢集。此案例中請將 `my-cluster` 取代為您在「[步驟 2：建立叢集](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.CreateCluster.valkey)」建立的叢集之名稱。

```
aws elasticache delete-cache-cluster --cache-cluster-id my-cluster
```

CLI `delete-cache-cluster` 動作只會刪除一個叢集。若要刪除多個叢集，`delete-cache-cluster`請針對您要刪除的每個快取叢集呼叫 。您不需要等待某個叢集完成刪除，即可刪除另一個叢集。

針對 Linux、macOS 或 Unix：

```
aws elasticache delete-cache-cluster \
    --cache-cluster-id my-cluster \
    --region us-east-2
```

針對 Windows：

```
aws elasticache delete-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --region us-east-2
```

如需詳細資訊，請參閱適用於 ElastiCache AWS CLI的 主題[https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html)。

# 其他 ElastiCache 教學課程和影片
<a name="Tutorials"></a>

以下教學著重在 Amazon ElastiCache 使用者感興趣的任務。
+ [ElastiCache 影片](#tutorial-videos)
+ [教學：設定 Lambda 函式以在 Amazon VPC 中存取 Amazon ElastiCache](https://docs.aws.amazon.com/lambda/latest/dg/vpc-ec.html)

## ElastiCache 影片
<a name="tutorial-videos"></a>

以下是可協助您學習基本和進階 Amazon ElastiCache 概念的影片。如需 AWS 訓練的相關資訊，請參閱[AWS 訓練與認證](https://aws.amazon.com/training/)。

**Topics**
+ [介紹影片](#WhatIs.Videos.Beginning)
+ [進階影片](#WhatIs.Videos.Advanced)

### 介紹影片
<a name="WhatIs.Videos.Beginning"></a>

以下影片向您介紹 Amazon ElastiCache。

**Topics**
+ [AWS re：Invent 2020：Amazon ElastiCache 的新功能](#WhatIs.Videos.Beginning.2020)
+ [AWS re：Invent 2019：Amazon ElastiCache 中的新功能](#WhatIs.Videos.Beginning.2019)
+ [AWS re：Invent 2017：Amazon ElastiCache 的新功能](#WhatIs.Videos.Beginning.2017)
+ [DAT204—在 AWS NoSQL 服務上建置可擴展的應用程式 (re：Invent 2015)](#WhatIs.Videos.Beginning.2015.DAT204)
+ [DAT207—使用 Amazon ElastiCache 加速應用程式效能 (AWS re：Invent 2013)](#WhatIs.Videos.Beginning.2013.DAT207)

#### AWS re：Invent 2020：Amazon ElastiCache 的新功能
<a name="WhatIs.Videos.Beginning.2020"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/O9mqbIYJXWE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/O9mqbIYJXWE)


#### AWS re：Invent 2019：Amazon ElastiCache 中的新功能
<a name="WhatIs.Videos.Beginning.2019"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/SaGW_Bln3qA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/SaGW_Bln3qA)


#### AWS re：Invent 2017：Amazon ElastiCache 的新功能
<a name="WhatIs.Videos.Beginning.2017"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/wkGn1TzCgnk/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/wkGn1TzCgnk)


#### DAT204—在 AWS NoSQL 服務上建置可擴展的應用程式 (re：Invent 2015)
<a name="WhatIs.Videos.Beginning.2015.DAT204"></a>

在本工作階段中，我們會討論 NoSQL 資料庫的優點，並瀏覽 提供的主要 NoSQL 服務 AWS：Amazon DynamoDB 和 Amazon ElastiCache。然後，我們從兩個領導客戶 Expedia 和 Mapbox 那裡得知他們的使用案例和架構挑戰，以及他們如何使用 AWS NoSQL 服務來解決這些問題，包括設計模式和最佳實務。建議您收看此研討會來更進一步了解 NoSQL 及其強大的功能，並準備好充滿信心的面對資料庫的挑戰。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/ie4dWGT76LM/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/ie4dWGT76LM)


#### DAT207—使用 Amazon ElastiCache 加速應用程式效能 (AWS re：Invent 2013)
<a name="WhatIs.Videos.Beginning.2013.DAT207"></a>

在此影片中，了解如何使用 Amazon ElastiCache 輕鬆部署記憶體內快取系統來加速您的應用程式效能。我們會向您示範如何使用 Amazon ElastiCache 改善您應用程式的延遲，並減少資料庫伺服器上的負載。我們也會向您示範如何建置可輕鬆管理，並且可隨著您應用程式成長而擴展的快取 layer。在本課程中，我們會探討各種案例及可藉由啟用快取而受惠的使用案例，並討論 Amazon ElastiCache 提供的功能。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/odMmdPBV8hM/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/odMmdPBV8hM)


### 進階影片
<a name="WhatIs.Videos.Advanced"></a>

以下影片涵蓋更進階的 Amazon ElastiCache 主題。

**Topics**
+ [使用 Amazon ElastiCache 最佳實務打造邁向成功的設計 (re:Invent 2020 年會)](#WhatIs.Videos.Advanced.2020.DAT305)
+ [使用 Amazon ElastiCache 增強您的即時應用程式 (re:Invent 2019 年會)](#WhatIs.Videos.Advanced.2019.DAT305)
+ [最佳實務：將 Redis OSS 叢集從 Amazon EC2 遷移至 ElastiCache (re：Invent 2019)](#WhatIs.Videos.Advanced.2019.DAT358)
+ [使用 Amazon ElastiCache 和 Amazon Aurora STP11 擴展 Fantasy Sports Platform (re:Invent 2018 年會)](#WhatIs.Videos.Advanced.2019)
+ [使用 Amazon ElastiCache 在雲端中可靠且可擴展的 Redis OSS (re：Invent 2018)](#WhatIs.Videos.AdvancedDD.2018)
+ [深入探索 ElastiCache：記憶體內資料儲存的設計模式 (Re: Invent 2018 年會)](#WhatIs.Videos.AdvancedDD.2019)
+ [DAT305 - 深入探討 Amazon ElastiCache (re:Invent 2017 年會)](#WhatIs.Videos.Advanced.2017.DAT305)
+ [DAT306 - 深入探討 Amazon ElastiCache (re:Invent 2016 年會)](#WhatIs.Videos.Advanced.2016.DAT306)
+ [DAT317 – IFTTT 如何使用 ElastiCache for Redis OSS 預測事件 (re：Invent 2016)](#WhatIs.Videos.Advanced.2016.DAT317)
+ [DAT407 - 深入探討 Amazon ElastiCache (re:Invent 2015 年會)](#WhatIs.Videos.Advanced.2015.DAT407)
+ [DAT402 - 深入探討 Amazon ElastiCache (re:Invent 2014 年會)](#WhatIs.Videos.Advanced.2014.SDD402)
+ [DAT307 - 深入探討 Amazon ElastiCache 架構與設計模式 (re:Invent 2013 年會)](#WhatIs.Videos.Advanced.2013.DAT307)

#### 使用 Amazon ElastiCache 最佳實務打造邁向成功的設計 (re:Invent 2020 年會)
<a name="WhatIs.Videos.Advanced.2020.DAT305"></a>

隨著業務關鍵型即時應用程式在 Redis OSS 上的爆炸性成長，可用性、可擴展性和安全性已成為首要考量。了解設定 Amazon ElastiCache 的最佳實務，透過線上擴展、跨異地同步備份部署的高可用性以及安全組態獲得成功。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/_4SkEy6r-C4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/_4SkEy6r-C4)


#### 使用 Amazon ElastiCache 增強您的即時應用程式 (re:Invent 2019 年會)
<a name="WhatIs.Videos.Advanced.2019.DAT305"></a>

隨著雲端採用的快速成長以及這股趨勢帶來的新使用情境，應用程式需要微秒延遲和高輸送量，才能支援每秒數百萬個請求。開發人員傳統上依賴專門的硬體和因應措施 (例如磁碟資料庫結合資料縮減技術)，藉此管理即時應用程式的資料。這些做法可能很所費不貲，而且不可擴展。了解如何使用全受管記憶體內 Amazon ElastiCache，獲得極致的效能、高可擴展性、可用性和安全性，進而提高即時應用程式的效能。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/v0GfpL5jfns/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/v0GfpL5jfns)


#### 最佳實務：將 Redis OSS 叢集從 Amazon EC2 遷移至 ElastiCache (re：Invent 2019)
<a name="WhatIs.Videos.Advanced.2019.DAT358"></a>

自行管理 Redis OSS 叢集可能很困難。您必須時常佈建硬體、修補軟體、備份資料以及監控工作負載。使用 Amazon ElastiCache 新推出的線上遷移功能，您現在可以輕鬆地將資料從 Amazon EC2 上的自我託管 Redis OSS 移至全受管 Amazon ElastiCache，並停用叢集模式。在本課程中，您將認識新的線上遷移工具、觀看示範，更重要的是學習順暢遷移到 Amazon ElastiCache 的實際操作最佳實務。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Rpni5uPe0uI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Rpni5uPe0uI)


#### 使用 Amazon ElastiCache 和 Amazon Aurora STP11 擴展 Fantasy Sports Platform (re:Invent 2018 年會)
<a name="WhatIs.Videos.Advanced.2019"></a>

Dream11 是印度領先業界的體育科技新創公司。他們超過 4 千萬的成長中使用者群涉及各種運動，包括 Fantasy 板球、足球和籃球，目前可同時為 100 萬名使用者提供服務，且能在 50 毫秒回應時間內每分鐘產生 300 萬個請求。在這場演講中，Dream11 CTO Amit Sharma 說明了該公司如何使用 Amazon Aurora 和 Amazon ElastiCache 來處理瞬間流量，這類流量可能在 30 秒的回應時間內暴增三倍。Sharma 也會討論如何在不進行鎖定的情況下擴展交易量，並分享處理瞬間流量的步驟，進而為 500 萬使日活躍使用者提供服務。Complete Title： AWS re：Invent 2018：使用 Amazon ElastiCache 和 Amazon Aurora (STP11) 擴展奇幻運動平台

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/hIPOLeEjVQY/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/hIPOLeEjVQY)


#### 使用 Amazon ElastiCache 在雲端中可靠且可擴展的 Redis OSS (re：Invent 2018)
<a name="WhatIs.Videos.AdvancedDD.2018"></a>

此工作階段涵蓋 Redis OSS 相容服務 Amazon ElastiCache for Redis OSS 的功能和增強功能。我們涵蓋主要功能，例如 Redis OSS 5、可擴展性和效能改善、安全性和合規性等等。我們也會討論即將推出的功能和客戶使用案例。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/pgXEnAcTNPI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/pgXEnAcTNPI)


#### 深入探索 ElastiCache：記憶體內資料儲存的設計模式 (Re: Invent 2018 年會)
<a name="WhatIs.Videos.AdvancedDD.2019"></a>

在本課程中，我們會一窺幕後真相，了解 Amazon ElastiCache 的設計和架構。請參閱我們的 Redis OSS 和 Memcached 產品常見的設計模式，以及客戶如何使用它們進行記憶體內資料處理，以減少延遲並改善應用程式輸送量。我們會介紹 ElastiCache 最佳實務、設計模式及不適合的使用模式。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/QxcB53mL_oA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/QxcB53mL_oA)


#### DAT305 - 深入探討 Amazon ElastiCache (re:Invent 2017 年會)
<a name="WhatIs.Videos.Advanced.2017.DAT305"></a>

一窺幕後真相，了解 Amazon ElastiCache 的設計和架構。請參閱我們的 Memcached 和 Redis OSS 產品常見的設計模式，以及客戶如何使用它們進行記憶體內操作，以減少延遲並改善應用程式輸送量。影片中會介紹 ElastiCache 最佳實務、設計模式及不適合的使用模式。

影片會介紹以下內容：
+ ElastiCache for Redis OSS 線上重新分片
+ ElastiCache 安全性與加密
+ ElastiCache for Redis OSS 3.2.10 版

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/_YYBdsuUq2M/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/_YYBdsuUq2M)


#### DAT306 - 深入探討 Amazon ElastiCache (re:Invent 2016 年會)
<a name="WhatIs.Videos.Advanced.2016.DAT306"></a>

一窺幕後真相，了解 Amazon ElastiCache 的設計和架構。請參閱我們的 Memcached 和 Redis OSS 產品常見的設計模式，以及客戶如何使用它們進行記憶體內操作，以減少延遲並改善應用程式輸送量。在本課程中，我們會說明 ElastiCache 的最佳實務、設計模式及不適合的使用模式。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/e9sN15a7utI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/e9sN15a7utI)


#### DAT317 – IFTTT 如何使用 ElastiCache for Redis OSS 預測事件 (re：Invent 2016)
<a name="WhatIs.Videos.Advanced.2016.DAT317"></a>

IFTTT 是一項免費服務，可讓人們運用其喜愛的服務從事更多工作，包括簡單工作的自動化，以及改變人們與家中裝置的互動與控制方式。IFTTT 使用 ElastiCache for Redis OSS 來存放交易執行歷史記錄和排程預測，以及 Amazon S3 上日誌文件的索引。檢視此工作階段，以了解 Lua 的指令碼編寫能力和 Redis OSS 的資料類型如何讓人們完成他們無法在其他地方完成的任務。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/eQbsXN0kcc0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/eQbsXN0kcc0)


#### DAT407 - 深入探討 Amazon ElastiCache (re:Invent 2015 年會)
<a name="WhatIs.Videos.Advanced.2015.DAT407"></a>

一窺幕後真相，了解 Amazon ElastiCache 的設計和架構。請參閱我們 Memcached 和 Redis OSS 產品的常見設計模式，以及客戶如何使用它們進行記憶體內操作，並提升應用程式的延遲和輸送量。於本課程中，我們會介紹與 Amazon ElastiCache 有關的最佳實務、設計模式及不適合的使用模式。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/4VfIINg9DYI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/4VfIINg9DYI)


#### DAT402 - 深入探討 Amazon ElastiCache (re:Invent 2014 年會)
<a name="WhatIs.Videos.Advanced.2014.SDD402"></a>

在此影片中，我們會檢查常見的快取使用案例、ElastiCache for Memcached 和 ElastiCache for Redis OSS 引擎、可協助您判斷哪個引擎更符合您需求的模式、一致的雜湊等等，以做為建置快速、可擴展應用程式的方法。Adobe 的主任研究員 Frank Wiebe 會詳細說明 Adobe 如何使用 Amazon ElastiCache 改善客戶體驗及擴展他們的事業。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/cEkHBqhQnog/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/cEkHBqhQnog)


#### DAT307 - 深入探討 Amazon ElastiCache 架構與設計模式 (re:Invent 2013 年會)
<a name="WhatIs.Videos.Advanced.2013.DAT307"></a>

在此影片中，我們會檢視快取、策略、向外擴展與監控。我們也比較了 ElastiCache for Memcached 和 ElastiCache for Redis OSS 引擎。於本課程中，我們也會介紹與 Amazon ElastiCache 有關的最佳實務和設計模式。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/me0Tw13O1H4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/me0Tw13O1H4)


# 管理 ElastiCache 中的節點
<a name="CacheNodes"></a>

節點是 Amazon ElastiCache 部署中最小的建置區塊。它是大小固定、與網路連接的安全 RAM 區塊。每個節點都會執行當您建立或最後一次修改叢集時所選擇的引擎。每個節點都有自己的網域名稱服務 (DNS) 名稱和連接埠。支援多種類型的 ElastiCache 節點，每個節點都有各種數量的關聯記憶體和運算能力。

如需要使用何種節點大小的詳細討論，請參閱「[選擇您的節點大小](CacheNodes.SelectSize.md)」。

一般而言，由於對碎片的支援，Valkey 或 Redis OSS （啟用叢集模式） 部署有許多較小的節點。相反地，Valkey 或 Redis OSS （停用叢集模式） 部署在叢集中擁有較少、較大的節點。如需要使用何種節點大小的詳細討論，請參閱「[選擇您的節點大小](CacheNodes.SelectSize.md)」。

**Topics**
+ [檢視 ElastiCache 節點狀態](Nodes.viewing.md)
+ [Valkey 或 Redis OSS 節點和碎片](CacheNodes.NodeGroups.md)
+ [連線至節點](nodes-connecting.md)
+ [支援的節點類型](CacheNodes.SupportedTypes.md)
+ [重新啟動節點](nodes.rebooting.md)
+ [取代節點 (Valkey 和 Redis OSS)](CacheNodes.NodeReplacement.md)
+ [取代節點 (Memcached)](CacheNodes.NodeReplacement-mc.md)
+ [預留節點](CacheNodes.Reserved.md)
+ [遷移上一代節點](CacheNodes.NodeMigration.md)

與節點有關的一些重要操作如下：
+ [將節點新增至 ElastiCache 叢集](Clusters.AddNode.md)
+ [從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)
+ [擴展 ElastiCache](Scaling.md)
+ [在 ElastiCache 中尋找連線端點](Endpoints.md)
+ [自動識別叢集中的節點 (Memcached)](AutoDiscovery.md)

# 檢視 ElastiCache 節點狀態
<a name="Nodes.viewing"></a>

使用 [ElastiCache 主控台](https://console.aws.amazon.com/elasticache/)可快速存取 ElastiCache 節點的狀態。ElastiCache 節點的狀態表示節點的運作狀況。您可以使用下列程序，在 Amazon ElastiCache 主控台、AWS CLI命令或 API 操作中檢視 ElastiCache 節點狀態。 Amazon ElastiCache 

下表列出 ElastiCache 節點的可能狀態值。表中也會顯示您是否需支付 ElastiCache 節點的費用。


| **類型** | **計費** | **Description** | 
| --- | --- | --- | 
|  `available`  |  計費  |  ElastiCache 節點運作正常且可使用。  | 
|  `creating`  |  不計費  |  正在建立 ElastiCache 節點。節點正在建立時無法進行存取。  | 
|  `deleting`  |  不計費  |  正在刪除 ElastiCache 節點。  | 
|  `modifying`  |  計費  |  客戶請求修改 ElastiCache 節點，因此正在修改該節點。  | 
|  `updating`  |  計費  |  **更新**狀態表示 Amazon ElastiCache 節點符合下列一或多個條件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/Nodes.viewing.html)  | 
|  `rebooting cluster nodes`  |  計費  |  由於客戶提出請求或 Amazon ElastiCache 程序要求重新啟動節點，因此正在重新啟動 ElastiCache 節點。  | 
|  `incompatible_parameters`  |  不計費  |  因為節點的參數群組中指定的參數與節點不相容，因此 Amazon ElastiCache 無法啟動節點。請回復參數變更，或讓參數與節點相容，以恢復節點的存取。如需有關不相容參數的詳細資訊，請查看 ElastiCache 節點的[事件](https://us-east-1.console.aws.amazon.com/elasticache/home?region=us-east-1#/events)清單。  | 
|  `incompatible_network`  |  不計費  |  不相容的網路狀態表示 Amazon ElastiCache 節點符合下列其中一或多種狀況： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/Nodes.viewing.html)  | 
|  `restore_failed`  |  不計費  |  還原失敗狀態表示 Amazon Elasticache 節點符合下列其中一種狀況： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/Nodes.viewing.html)  | 
|  `snapshotting`  |  計費  |  ElastiCache 正在建立 Valkey 或 Redis OSS 節點的快照。  | 

## 使用主控台檢視 ElastiCache 節點狀態
<a name="Nodes.viewing.console"></a>

使用主控台檢視 ElastiCache 節點的狀態：

1. 登入AWS 管理主控台，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Redis OSS 叢集**或 **Memcached 叢集**。**快取頁面**會顯示 ElastiCache 節點清單。每個節點的狀態值都會顯示。

1. 然後，您可以導覽至快取**的服務更新**索引標籤，以顯示適用於快取的服務更新清單。

## 使用 檢視 ElastiCache 節點狀態AWS CLI
<a name="Nodes.viewing.cli"></a>

若要使用 檢視 ElastiCache 節點及其狀態資訊AWS CLI，請使用 `describe-cache-cluster`命令。例如，下列AWS CLI命令會顯示每個 ElastiCache 節點。

```
aws elasticache describe-cache-clusters
```

## 透過 API 檢視 ElastiCache 節點狀態
<a name="Nodes.viewing.api"></a>

 若要使用 Amazon ElastiCache API 檢視 ElastiCache 節點的狀態，請使用 `ShowCacheNodeInfo` 旗標呼叫 `DescribeCacheClusteroperation` 以擷取個別快取節點的相關資訊。

# Valkey 或 Redis OSS 節點和碎片
<a name="CacheNodes.NodeGroups"></a>

碎片 (在 API 和 CLI 中是節點群組) 是一種階層式的節點排列，每個都包裝在叢集內。碎片支援複寫。在一個碎片中，其中一個節點會做為讀取/寫入主要節點。碎片中的所有其他節點都會做為主要節點的唯讀複本。Valkey 或 Redis OSS 3.2 版及更新版本支援叢集內的多個碎片 （在 API 和 CLI 中為複寫群組）。此支援可在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中分割您的資料。

下圖說明 Valkey 或 Redis OSS （停用叢集模式） 叢集與 Valkey 或 Redis OSS （啟用叢集模式） 叢集之間的差異。

![\[影像：Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 碎片 (API/CLI：節點群組）\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-NodeGroups.png)


Valkey 或 Redis OSS （啟用叢集模式） 叢集支援透過碎片進行複寫。[DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) (CLI：[describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)) API 作業會列出節點群組與成員節點、節點在節點群組中的角色，以及其他資訊。

當您建立 Valkey 或 Redis OSS 叢集時，您可以指定要建立已啟用叢集的叢集。Valkey 或 Redis OSS （停用叢集模式） 叢集絕不會有多個碎片，可透過新增 （最多五個） 或刪除僅供讀取複本節點來水平擴展。如需詳細資訊，請參閱「[使用複寫群組的高可用性](Replication.md)」、「[新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)」或「[刪除 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.RemoveReadReplica.md)」。Valkey 或 Redis OSS （停用叢集模式） 叢集也可以透過變更節點類型垂直擴展。如需詳細資訊，請參閱[擴展 Valkey 或 Redis OSS 的複本節點 （停用叢集模式）](Scaling.RedisReplGrps.md)。

如果引擎是 Valkey 或 Redis OSS 5.0.6 版或更新版本，節點或碎片限制可以提高到每個叢集最多 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

 對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集後，可以對其進行變更 （縮減或縮小）。如需詳細資訊，請參閱[擴展 ElastiCache](Scaling.md)及[取代節點 (Valkey 和 Redis OSS)](CacheNodes.NodeReplacement.md)。

建立新叢集時，您可以將舊叢集的資料傳送到新叢集，使其不會在一開始呈現空白狀態。只有在叢集群組擁有的碎片數量與舊叢集相同時，此方法才有效。這在您需要變更節點類型或引擎版本時很有用。如需詳細資訊，請參閱[取得手動備份](backups-manual.md)及[從備份還原到新的快取](backups-restoring.md)。

# 連線至節點
<a name="nodes-connecting"></a>

## 連線至 Valkey 或 Redis OSS 節點
<a name="nodes-connecting.val"></a>

嘗試連線到叢集中的 Valkey 或 Redis OSS 節點之前，您必須擁有節點的端點。若要尋找端點，請參閱下列主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.RedisCluster)
+ [尋找端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [尋找端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API)

在下列範例中，您可以使用 *valkey-cli* 公用程式連線到執行 Valkey 或 Redis OSS 的叢集。

**注意**  
如需可用命令的詳細資訊，請參閱 [命令](http://valkey.io/commands)網頁。

**使用 *valkey-cli 連線至 Valkey* 或 Redis OSS 叢集**

1. 使用您選擇的連線公用程式連線到 Amazon EC2 執行個體。
**注意**  
如需如何連線到 Amazon EC2 執行個體的說明，請參閱 [Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

1. 若要建置 `valkey-cli`，請下載並安裝 GNU 編譯器集合 (`gcc`)。在 EC2 執行個體的命令提示中輸入下列命令，然後在確認提示中輸入 `y`。

   ```
   sudo yum install gcc
   ```

   隨即出現類似如下的輸出。

   ```
   Loaded plugins: priorities, security, update-motd, upgrade-helper
   Setting up Install Process
   Resolving Dependencies
   --> Running transaction check
   
   ...(output omitted)...
   
   Total download size: 27 M
   Installed size: 53 M
   Is this ok [y/N]: y
   Downloading Packages:
   (1/11): binutils-2.22.52.0.1-10.36.amzn1.x86_64.rpm      | 5.2 MB     00:00     
   (2/11): cpp46-4.6.3-2.67.amzn1.x86_64.rpm                | 4.8 MB     00:00     
   (3/11): gcc-4.6.3-3.10.amzn1.noarch.rpm                  | 2.8 kB     00:00     
   
   ...(output omitted)...
   
   Complete!
   ```

1. 下載並編譯 *valkey-cli* 公用程式。此公用程式包含在 Valkey 軟體分發中。在 EC2 執行個體的命令提示中，輸入下列命令：
**注意**  
針對 Ubuntu 系統，請在執行 `make` 之前，執行 `make distclean`。

   ```
   wget https://github.com/valkey-io/valkey/archive/refs/tags/8.0.0.tar.gz
   tar xvzf valkey-8.0.0.tar.gz
   cd valkey-8.0.0
   make distclean      # ubuntu systems only
   make
   ```

1. 在 EC2 執行個體的命令提示中，輸入下列命令。

   ```
   src/valkey-cli -c -h mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com -p 6379
   ```

   會出現類似以下內容的 Valkey 或 Redis OSS 命令提示。

   ```
   redis mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 6379>
   ```

1. 執行 Valkey 或 Redis OSS 命令來測試連線。

    您現在已連線至叢集，可以執行 Valkey 或 Redis OSS 命令。以下是一些範例命令及其 Valkey 或 Redis OSS 回應。

   ```
   set a "hello"          // Set key "a" with a string value and no expiration
   OK
   get a                  // Get value for key "a"
   "hello"
   get b                  // Get value for key "b" results in miss
   (nil)				
   set b "Good-bye" EX 5  // Set key "b" with a string value and a 5 second expiration
   get b
   "Good-bye"
                      // wait 5 seconds
   get b
   (nil)                  // key has expired, nothing returned
   quit                   // Exit from valkey-cli
   ```

如為連接至有 Secure Sockets Layer (SSL) 加密 (傳輸中已啟用) 的節點或叢集，請參閱 [ElastiCache 傳輸中加密 (TLS)](in-transit-encryption.md)。

## 連線至 Memcached 節點
<a name="nodes-connecting.mem"></a>

在嘗試連線到您的 Memcached 叢集前，您必須擁有節點的端點。若要尋找端點，請參閱下列主題：
+ [尋找叢集的端點 （主控台） (Memcached)](Endpoints.md#Endpoints.Find.Memcached)
+ [尋找端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI)
+ [尋找端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API)

在下列範例中，您會使用 *telnet* 公用程式連線到執行 Memcached 的節點。

**注意**  
如需 Memcached 和可用 Memcached 命令的詳細資訊，請參閱 [Memcached](http://memcached.org/) 網站。

**使用 *telnet* 連線到節點**

1. 使用您選擇的連線公用程式連線到 Amazon EC2 執行個體。
**注意**  
 如需如何連線到 Amazon EC2 執行個體的說明，請參閱 [Amazon EC2 入門指南](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

1. 下載 *telnet* 公用程式並安裝在 Amazon EC2 執行個體上。在 Amazon EC2 執行個體的命令提示中輸入下列命令，然後在命令提示中輸入 *y*。

   ```
   sudo yum install telnet
   ```

   隨即出現類似如下的輸出。

   ```
   Loaded plugins: priorities, security, update-motd, upgrade-helper
   Setting up Install Process
   Resolving Dependencies
   --> Running transaction check
   
   ...(output omitted)...
   
   Total download size: 63 k
   Installed size: 109 k
   Is this ok [y/N]: y
   Downloading Packages:
   telnet-0.17-47.7.amzn1.x86_64.rpm                        |  63 kB     00:00  
   
   ...(output omitted)...
   
   Complete!
   ```

1. 在 Amazon EC2 執行個體的命令提示中輸入下列命令，並以您的節點端點取代此範例中所示的內容。

   ```
   telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211
   ```

   隨即出現類似如下的輸出。

   ```
   Trying 128.0.0.1...
   Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.
   Escape character is '^]'.
   >
   ```

1. 透過執行 Memcached 命令來測試連線。

    您現在已連線至節點，可以執行 Memcached 命令。以下是範例。

   ```
   set a 0 0 5      // Set key "a" with no expiration and 5 byte value
   hello            // Set value as "hello"
   STORED
   get a            // Get value for key "a"
   VALUE a 0 5
   hello
   END
   get b            // Get value for key "b" results in miss
   END
   >
   ```

# 支援的節點類型
<a name="CacheNodes.SupportedTypes"></a>

ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。

如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**注意**  
Amazon ElastiCache 正在將 T2 執行個體轉換為上一代狀態。您將無法再使用 T2 執行個體建立新的 ElastiCache 叢集，或購買新的 T2 預留節點。不會影響現有的 T2 叢集或保留。我們建議您升級至較新的執行個體類型，例如 T3 或 T4g 執行個體，以獲得更好的效能和成本效益。

**注意**  
AWS亞太區域 （泰國） 和墨西哥 （中部） 區域支援下列執行個體類型：  
**m7g/r7g：**大型、xl、2xl、4xl、8xl、12xl 和 16xl。
**t3/t4g：**微型、小型和中型。

如需要使用何種節點大小的詳細資訊，請參閱「[選擇您的節點大小](CacheNodes.SelectSize.md)」。

**Topics**
+ [目前世代 (Memcached)](#CacheNodes.CurrentGen-Memcached)
+ [目前世代 (Valkey 或 Redis OSS)](#CacheNodes.CurrentGen)
+ [支援的節點類型 (依AWS區域)](#CacheNodes.SupportedTypesByRegion)
+ [爆量效能執行個體](#CacheNodes.Burstable)
+ [相關資訊](#CacheNodes.RelatedInfo)

## 目前世代 (Memcached)
<a name="CacheNodes.CurrentGen-Memcached"></a>

下列表單顯示使用網路 I/O 抵用金機制來超越其基準頻寬之執行個體類型的基準頻寬和高載頻寬。

**注意**  
具有爆量網路效能的執行個體類型使用網路 I/O 點數機制，以竭盡全力爆量到其基準頻寬之外。

**一般**


| 執行個體類型 | 支援的最低 Memcached 版本 | 基準頻寬 (Gbps) | 高載頻寬 (Gbps) | 
| --- | --- | --- | --- | 
| cache.m7g.large |  | 0.937 | 12.5 | 
| cache.m7g.xlarge |  | 1.876 | 12.5 | 
| cache.m7g.2xlarge |  | 3.75 | 15 | 
| cache.m7g.4xlarge |  | 7.5 | 15 | 
| cache.m7g.8xlarge |  | 15 | N/A | 
| cache.m7g.12xlarge |  | 22.5 | N/A | 
| cache.m7g.16xlarge |  | 30 | N/A | 
| cache.m6g.large | 1.5.16 | 0.75 | 10.0 | 
| cache.m6g.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.m6g.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.m6g.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.m6g.8xlarge | 1.5.16 | 12 | N/A | 
| cache.m6g.12xlarge | 1.5.16 | 20 | N/A | 
| cache.m6g.16xlarge | 1.5.16 | 25 | N/A | 
| cache.m5.large | 1.5.16 | 0.75 | 10.0 | 
| cache.m5.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.m5.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.m5.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.m5.12xlarge | 1.5.16 | N/A | N/A | 
| cache.m5.24xlarge | 1.5.16 | N/A | N/A | 
| cache.m4.large | 1.5.16 | 0.45 | 1.2 | 
| cache.m4.xlarge | 1.5.16 | 0.75 | 2.8 | 
| cache.m4.2xlarge | 1.5.16 | 1.0 | 10.0 | 
| cache.m4.4xlarge | 1.5.16 | 2.0 | 10.0 | 
| cache.m4.10xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.t4g.micro | 1.5.16 | 0.064 | 5.0 | 
| cache.t4g.small | 1.5.16 | 0.128 | 5.0 | 
| cache.t4g.medium | 1.5.16 | 0.256 | 5.0 | 
| cache.t3.micro | 1.5.16 | 0.064 | 5.0 | 
| cache.t3.small | 1.5.16 | 0.128 | 5.0 | 
| cache.t3.medium | 1.5.16 | 0.256 | 5.0 | 
| cache.t2.micro | 1.5.16 | 0.064 | 1.024 | 
| cache.t2.small | 1.5.16 | 0.128 | 1.024 | 
| cache.t2.medium | 1.5.16 | 0.256 | 1.024 | 

**針對 Memcached 最佳化的記憶體**


| 執行個體類型 | 最低支援版本 | 基準頻寬 (Gbps) | 高載頻寬 (Gbps) | 
| --- | --- | --- | --- | 
| cache.r7g.large |  | 0.937 | 12.5 | 
| cache.r7g.xlarge |  | 1.876 | 12.5 | 
| cache.r7g.2xlarge |  | 3.75 | 15 | 
| cache.r7g.4xlarge |  | 7.5 | 15 | 
| cache.r7g.8xlarge |  | 15 | N/A | 
| cache.r7g.12xlarge |  | 22.5 | N/A | 
| cache.r7g.16xlarge |  | 30 | N/A | 
| cache.r6g.large | 1.5.16 | 0.75 | 10.0 | 
| cache.r6g.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.r6g.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.r6g.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.r6g.8xlarge | 1.5.16 | 12 | N/A | 
| cache.r6g.12xlarge | 1.5.16 | 20 | N/A | 
| cache.r6g.16xlarge | 1.5.16 | 25 | N/A | 
| cache.r5.large | 1.5.16 | 0.75 | 10.0 | 
| cache.r5.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.r5.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.r5.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.r5.12xlarge | 1.5.16 | 20 | N/A | 
| cache.r5.24xlarge | 1.5.16 | 25 | N/A | 
| cache.r4.large | 1.5.16 | 0.75 | 10.0 | 
| cache.r4.xlarge | 1.5.16 | 1.25 | 10.0 | 
| cache.r4.2xlarge | 1.5.16 | 2.5 | 10.0 | 
| cache.r4.4xlarge | 1.5.16 | 5.0 | 10.0 | 
| cache.r4.8xlarge | 1.5.16 | 12 | N/A | 
| cache.r4.16xlarge | 1.5.16 | 25 | N/A | 

**針對 Memcached 進行網路最佳化**


| 執行個體類型 | 最低支援版本 | 基準頻寬 (Gbps) | 高載頻寬 (Gbps) | 
| --- | --- | --- | --- | 
| cache.c7gn.large | 1.6.6 | 6.25 | 30 | 
| cache.c7gn.xlarge | 1.6.6 | 12.5 | 40 | 
| cache.c7gn.2xlarge | 1.6.6 | 25 | 50 | 
| cache.c7gn.4xlarge | 1.6.6 | 50 | N/A | 
| cache.c7gn.8xlarge | 1.6.6 | 100 | N/A | 
| cache.c7gn.12xlarge | 1.6.6 | 150 | N/A | 
| cache.c7gn.16xlarge | 1.6.6 | 200 | N/A | 

## 目前世代 (Valkey 或 Redis OSS)
<a name="CacheNodes.CurrentGen"></a>

如需上一代節點的詳細資訊，請參閱[上一代節點](https://aws.amazon.com/elasticache/previous-generation/)。

**注意**  
具有爆量網路效能的執行個體類型使用網路 I/O 點數機制，以竭盡全力爆量到其基準頻寬之外。

**一般**


| 執行個體類型 | 支援的 Redis OSS 版本下限 | 搭配 Redis OSS 5.0.6\$1 的增強型 I/O | TLS 卸載搭配 Redis OSS 6.2.5\$1 | 使用 Redis OSS 7.0.4\$1 增強 I/O 多工 | 基準頻寬 (Gbps) | 高載頻寬 (Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.m7g.large | 6.2 | N | N | N | 0.937 | 12.5 | 
| cache.m7g.xlarge | 6.2 | Y | Y | Y | 1.876 | 12.5 | 
| cache.m7g.2xlarge | 6.2 | Y | Y | Y | 3.75 | 15 | 
| cache.m7g.4xlarge | 6.2 | Y | Y | Y | 7.5 | 15 | 
| cache.m7g.8xlarge | 6.2 | Y | Y | Y | 15 | N/A | 
| cache.m7g.12xlarge | 6.2 | Y | Y | Y | 22.5 | N/A | 
| cache.m7g.16xlarge | 6.2 | Y | Y | Y | 30 | N/A | 
| cache.m6g.large | 5.0.6 | N | N | N | 0.75 | 10.0 | 
| cache.m6g.xlarge | 5.0.6 | Y | Y | Y | 1.25 | 10.0 | 
| cache.m6g.2xlarge | 5.0.6 | Y | Y | Y | 2.5 | 10.0 | 
| cache.m6g.4xlarge | 5.0.6 | Y | Y | Y | 5.0 | 10.0 | 
| cache.m6g.8xlarge | 5.0.6 | Y | Y | Y | 12 | N/A | 
| cache.m6g.12xlarge | 5.0.6 | Y | Y | Y | 20 | N/A | 
| cache.m6g.16xlarge | 5.0.6 | Y | Y | Y | 25 | N/A | 
| cache.m5.large | 3.2.4 | N | N | N | 0.75 | 10.0 | 
| cache.m5.xlarge | 3.2.4 | Y | N | N | 1.25 | 10.0 | 
| cache.m5.2xlarge | 3.2.4 | Y | Y | Y | 2.5 | 10.0 | 
| cache.m5.4xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.m5.12xlarge | 3.2.4 | Y | Y | Y | 12 | N/A | 
| cache.m5.24xlarge | 3.2.4 | Y | Y | Y | 25 | N/A | 
| cache.m4.large | 3.2.4 | N | N | N | 0.45 | 1.2 | 
| cache.m4.xlarge | 3.2.4 | Y | N | N | 0.75 | 2.8 | 
| cache.m4.2xlarge | 3.2.4 | Y | Y | Y | 1.0 | 10.0 | 
| cache.m4.4xlarge | 3.2.4 | Y | Y | Y | 2.0 | 10.0 | 
| cache.m4.10xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.t4g.micro | 3.2.4 | N | N | N | 0.064 | 5.0 | 
| cache.t4g.small | 5.0.6 | N | N | N | 0.128 | 5.0 | 
| cache.t4g.medium | 5.0.6 | N | N | N | 0.256 | 5.0 | 
| cache.t3.micro | 3.2.4 | N | N | N | 0.064 | 5.0 | 
| cache.t3.small | 3.2.4 | N | N | N | 0.128 | 5.0 | 
| cache.t3.medium | 3.2.4 | N | N | N | 0.256 | 5.0 | 
| cache.t2.micro | 3.2.4 | N | N | N | 0.064 | 1.024 | 
| cache.t2.small | 3.2.4 | N | N | N | 0.128 | 1.024 | 
| cache.t2.medium | 3.2.4 | N | N | N | 0.256 | 1.024 | 

**記憶體最佳化**


| 執行個體類型 | 支援的 Redis OSS 版本下限 | 搭配 Redis OSS 5.0.6\$1 的增強型 I/O | TLS 卸載搭配 Redis OSS 6.2.5\$1 | 使用 Redis OSS 7.0.4\$1 增強 I/O 多工 | 基準頻寬 (Gbps) | 高載頻寬 (Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.r7g.large | 6.2 | N | N | N | 0.937 | 12.5 | 
| cache.r7g.xlarge | 6.2 | Y | Y | Y | 1.876 | 12.5 | 
| cache.r7g.2xlarge | 6.2 | Y | Y | Y | 3.75 | 15 | 
| cache.r7g.4xlarge | 6.2 | Y | Y | Y | 7.5 | 15 | 
| cache.r7g.8xlarge | 6.2 | Y | Y | Y | 15 | N/A | 
| cache.r7g.12xlarge | 6.2 | Y | Y | Y | 22.5 | N/A | 
| cache.r7g.16xlarge | 6.2 | Y | Y | Y | 30 | N/A | 
| cache.r6g.large | 5.0.6 | N | N | N | 0.75 | 10.0 | 
| cache.r6g.xlarge | 5.0.6 | Y | Y | Y | 1.25 | 10.0 | 
| cache.r6g.2xlarge | 5.0.6 | Y | Y | Y | 2.5 | 10.0 | 
| cache.r6g.4xlarge | 5.0.6 | Y | Y | Y | 5.0 | 10.0 | 
| cache.r6g.8xlarge | 5.0.6 | Y | Y | Y | 12 | N/A | 
| cache.r6g.12xlarge | 5.0.6 | Y | Y | Y | 20 | N/A | 
| cache.r6g.16xlarge | 5.0.6 | Y | Y | Y | 25 | N/A | 
| cache.r5.large | 3.2.4 | N | N | N | 0.75 | 10.0 | 
| cache.r5.xlarge | 3.2.4 | Y | N | N | 1.25 | 10.0 | 
| cache.r5.2xlarge | 3.2.4 | Y | Y | Y | 2.5 | 10.0 | 
| cache.r5.4xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.r5.12xlarge | 3.2.4 | Y | Y | Y | 12 | N/A | 
| cache.r5.24xlarge | 3.2.4 | Y | Y | Y | 25 | N/A | 
| cache.r4.large | 3.2.4 | N | N | N | 0.75 | 10.0 | 
| cache.r4.xlarge | 3.2.4 | Y | N | N | 1.25 | 10.0 | 
| cache.r4.2xlarge | 3.2.4 | Y | Y | Y | 2.5 | 10.0 | 
| cache.r4.4xlarge | 3.2.4 | Y | Y | Y | 5.0 | 10.0 | 
| cache.r4.8xlarge | 3.2.4 | Y | Y | Y | 12 | N/A | 
| cache.r4.16xlarge | 3.2.4 | Y | Y | Y | 25 | N/A | 

**利用資料分層最佳化的記憶體**


| 執行個體類型 | 支援的 Redis OSS 版本下限 | 搭配 Redis OSS 5.0.6\$1 的增強型 I/O | TLS 卸載搭配 Redis OSS 6.2.5\$1 | 使用 Redis OSS 7.0.4\$1 增強 I/O 多工 | 基準頻寬 (Gbps) | 高載頻寬 (Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.r6gd.xlarge | 6.2.0 | Y | N | N | 1.25 | 10 | 
| cache.r6gd.2xlarge | 6.2.0 | Y | Y | Y | 2.5 | 10 | 
| cache.r6g.4xlarge | 6.2.0 | Y | Y | Y | 5.0 | 10 | 
| cache.r6g.8xlarge | 6.2.0 | Y | Y | Y | 12 | N/A | 
| cache.r6gd.12xlarge | 6.2.0 | Y | Y | Y | 20 | N/A | 
| cache.r6gd.16xlarge | 6.2.0 | Y | Y | Y | 25 | N/A | 

**網路最佳化**


| 執行個體類型 | 支援的 Redis OSS 版本下限 | 搭配 Redis OSS 5.0.6\$1 的增強型 I/O | TLS 卸載搭配 Redis OSS 6.2.5\$1 | 使用 Redis OSS 7.0.4\$1 增強 I/O 多工 | 基準頻寬 (Gbps) | 高載頻寬 (Gbps) | 
| --- | --- | --- | --- | --- | --- | --- | 
| cache.c7gn.large | 6.2 | N | N | N | 6.25 | 30 | 
| cache.c7gn.xlarge | 6.2 | Y | Y | Y | 12.5 | 40 | 
| cache.c7gn.2xlarge | 6.2 | Y | Y | Y | 25 | 50 | 
| cache.c7gn.4xlarge | 6.2 | Y | Y | Y | 50 | N/A | 
| cache.c7gn.8xlarge | 6.2 | Y | Y | Y | 100 | N/A | 
| cache.c7gn.12xlarge | 6.2 | Y | Y | Y | 150 | N/A | 
| cache.c7gn.16xlarge | 6.2 | Y | Y | Y | 200 | N/A | 

## 支援的節點類型 (依AWS區域)
<a name="CacheNodes.SupportedTypesByRegion"></a>

支援的節點類型可能因AWS區域而異。如需詳細資訊，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/)。

## 爆量效能執行個體
<a name="CacheNodes.Burstable"></a>

您可以在 Amazon ElastiCache 中啟動一般用途爆量 T4g、T3 標準和 T2 標準快取節點。這些節點提供 CPU 基準效能，能夠讓 CPU 使用率隨時火力全開，直至累積的點數耗盡。一個 *CPU 點數*提供一分鐘、一個 CPU 核心的完整效能。

Amazon ElastiCache 的 T4g、T3 和 T2 節點為標準配置，適用於平均 CPU 使用率持續低於執行個體之基準效能的工作負載。若要讓效能突增至超過基準，節點會用掉在 CPU 點數餘額中所累積的點數。若節點的累積點數不足，效能會逐漸降低至基準效能等級。逐漸降低效能可確保節點的累積 CPU 點數餘額耗盡時，效能不會急速下滑。如需詳細資訊，請參閱 *Amazon EC2 Linux 執行個體使用者指南*中的[爆量效能執行個體的 CPU 點數與基準效能](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html)*。*

下表列出高載效能節點類型，以及 CPU 點數的每小時獲得速率。其中也顯示節點可累積獲得的 CPU 點數最大值，以及每個節點的 vCPU 數。此外也提供相較於完整核心效能 (使用單一 vCPU)，基準效能等級的百分比。


| Node type | 每小時獲得的 CPU 額度 |  可累積的點數上限\$1 |  vCPUs  |  每個 vCPU 的基準效能  |  記憶體 (GiB)  |  網路效能  | 
| --- | --- | --- | --- | --- | --- | --- | 
| t4g.micro | 12 | 288 | 2 | 10% | 0.5 | 最多 5 GB | 
| t4g.small | 24 | 576 | 2 | 20% | 1.37 | 最多 5 GB | 
| t4g.medium | 24 | 576 | 2 | 20% | 3.09 | 最多 5 GB | 
| t3.micro | 12 | 288 | 2 | 10% | 0.5 | 最多 5 GB | 
| t3.small | 24 | 576 | 2 | 20% | 1.37 | 最多 5 GB | 
| t3.medium | 24 | 576 | 2 | 20% | 3.09 | 最多 5 GB | 
| t2.micro | 6 | 144 | 1 | 10% | 0.5 | 低至中度 | 
| t2.small | 12 | 288 | 1 | 20% | 1.55 | 低至中度 | 
| t2.medium | 24 | 576 | 2 | 20% | 3.22 | 低至中度 | 

\$1 可累計的額度等於在 24 小時期間可獲得的額度。

\$1\$1 表格中所顯示的是每 vCPU 的基準效能。部分節點大小包含不只一個 vCPU。若要計算這些節點的基準 CPU 使用率，請將 vCPU 的百分比乘上 vCPU 的數量。

T3 高載效能執行個體提供下列 CPU 點數指標：

**注意**  
這些指標不適用於 T2 高載效能執行個體。
+ `CPUCreditUsage`
+ `CPUCreditBalance`

如需這些指標的詳細資訊，請參閱 [CPU 點數指標](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html#cpu-credit-metrics)。

此外，也請注意這些細節：
+ 所有目前一代的節點類型預設都建立在以 Amazon VPC 為基礎的 Virtual Private Cloud (VPC)。
+ T2 執行個體不支援 Redis OSS 僅附加檔案 (AOF)。Redis OSS 2.8.22 版`appendonly`和更新版本`appendfsync`不支援 Redis OSS 組態變數和 。

## 相關資訊
<a name="CacheNodes.RelatedInfo"></a>
+ [Amazon ElastiCache 產品功能與詳細資訊](https://aws.amazon.com/elasticache/details)
+ [Memcached 的 Memcached 節點類型特定參數](ParameterGroups.Engine.md#ParameterGroups.Memcached) 
+ [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)
+ [傳輸中加密 (TLS)](in-transit-encryption.md)

# 重新啟動節點
<a name="nodes.rebooting"></a>

有些變更需要重新啟動 Valkey、Memcached 或 Redis OSS 叢集，才能套用變更。例如，針對某些參數，當您變更參數群組中的參數值時，只會在重新啟動時套用。

**Topics**
+ [重新啟動 Redis OSS 節點 （僅停用叢集模式）](#nodes.rebooting.redis)
+ [為 Memcached 重新啟動叢集](#Clusters.Rebooting)

## 重新啟動 Redis OSS 節點 （僅停用叢集模式）
<a name="nodes.rebooting.redis"></a>

對於 Valkey 或 Redis OSS （停用叢集模式） 叢集，只有在重新啟動後才套用的參數群組中的參數為：
+ activerehashing
+ databases

Redis 節點只能透過 ElastiCache 主控台更新。您一次只能重新啟動單一節點。若要重新啟動多個節點，您必須為每個節點重複此程序。

**Valkey 或 Redis OSS （啟用叢集模式） 參數變更**  
如果您在 Valkey 或 Redis OSS （啟用叢集模式） 叢集上變更下列參數，請遵循後續步驟。  
activerehashing
databases
建立叢集的手動備份。請參閱 [取得手動備份](backups-manual.md)。
刪除 Valkey 或 Redis OSS （啟用叢集模式） 叢集。請參閱「[在 ElastiCache 中刪除叢集](Clusters.Delete.md)」。
您可以使用更改的參數群組和備份來植入新的叢集，以還原叢集。請參閱 [從備份還原到新的快取](backups-restoring.md)。
對其他參數進行變更不需要這樣做。

### 使用 AWS 管理主控台
<a name="nodes.rebooting.con"></a>

您可以使用 ElastiCache 主控台重新啟動節點。

**重新啟動節點 (主控台)**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從右上角的清單中，選擇適用的 AWS 區域。

1. 在左側導覽窗格中，選擇 **Redis OSS**。

   執行 Redis OSS 的叢集清單隨即出現。

1. 在 **Cluster Name (叢集名稱)** 底下選擇叢集。

1. 在 **Node name (節點名稱)** 下，選擇您要重新啟動的節點旁邊的選項按鈕。

1. 選擇 **Actions (動作)**，然後選擇 **Reboot node (重新啟動節點)**。

若要重新啟動多個節點，請對每個要重新啟動的節點重複步驟 2 到 5。您不需要等待某個節點完成重新啟動，即可重新啟動其他節點。

## 為 Memcached 重新啟動叢集
<a name="Clusters.Rebooting"></a>

當您重新啟動 Memcached 叢集時，叢集會清除其所有資料並重新啟動其引擎。程序進行期間，您無法存取叢集。由於叢集會排清其所有資料，因此當叢集再次可用時，就是一個空的叢集供您使用。

您可以使用 ElastiCache 主控台、 AWS CLI或 ElastiCache API 重新啟動叢集。無論您使用 ElastiCache 主控台、 AWS CLI 或 ElastiCache API，您只能啟動重新啟動單一叢集。若要重新啟動多個叢集，您必須反覆執行程序和操作。

### 使用 AWS 管理主控台
<a name="Clusters.Rebooting.CON"></a>

您可以使用 ElastiCache 主控台重新啟動叢集。

**重新啟動叢集 (主控台)**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從右上角的清單中，選擇您感興趣的 AWS 區域。

1. 在導覽窗格中，選擇您要重新啟動之叢集所執行的引擎。

   接著會出現執行所選引擎的叢集清單。

1. 選擇叢集名稱左側的方塊，以選擇要重新啟動的叢集。

   **Reboot (重新啟動)** 按鈕會變為作用中。

   如果您選擇一個以上的叢集，**Reboot (重新啟動)** 按鈕則不會啟用。

1. 選擇 **Reboot** (重新啟動)。

   重新啟動叢集確認畫面隨即出現。

1. 若要重新啟動叢集，請選擇 **Reboot (重新啟動)**。叢集狀態會變更為 *rebooting cluster nodes (重新啟動叢集節點中)*。

   若不要重新啟動叢集，請選擇 **Cancel (取消)**。

若要重新啟動多個叢集，請針對每個要重新啟動的叢集重複步驟 2 到 5。您不需要等待某個叢集完成重新啟動，即可重新啟動其他叢集。

若要重新啟動特定節點，請選擇節點，然後選擇 **Reboot (重新啟動)**。

### 使用 AWS CLI
<a name="Clusters.Rebooting.CLI"></a>

若要重新啟動叢集 (AWS CLI)，請使用 `reboot-cache-cluster` CLI 作業。

若要重新啟動叢集中的特定節點，請使用 `--cache-node-ids-to-reboot` 列出要重新啟動的特定叢集。下列命令會重新啟動 *my-cluster* 的 0001、0002 和 0004 節點。

若為 Linux、macOS 或 Unix：

```
aws elasticache reboot-cache-cluster \
    --cache-cluster-id my-cluster \
    --cache-node-ids-to-reboot 0001 0002 0004
```

針對 Windows：

```
aws elasticache reboot-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --cache-node-ids-to-reboot 0001 0002 0004
```

若要重新啟動叢集中的所有節點，請使用 `--cache-node-ids-to-reboot` 參數並列出所有叢集的節點 ID。如需詳細資訊，請參閱 [reboot-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/reboot-cache-cluster.html)。

### 使用 ElastiCache API
<a name="Clusters.Rebooting.API"></a>

若要使用 ElastiCache API 重新啟動叢集，請使用 `RebootCacheCluster` 動作。

若要重新啟動叢集中的特定節點，請使用 `CacheNodeIdsToReboot` 列出要重新啟動的特定叢集。下列命令會重新啟動 *my-cluster* 的 0001、0002 和 0004 節點。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=RebootCacheCluster
   &CacheClusterId=my-cluster
   &CacheNodeIdsToReboot.member.1=0001
   &CacheNodeIdsToReboot.member.2=0002
   &CacheNodeIdsToReboot.member.3=0004
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

若要重新啟動叢集中的所有節點，請使用 `CacheNodeIdsToReboot` 參數並列出所有叢集的節點 ID。如需詳細資訊，請參閱 [RebootCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RebootCacheCluster.html)。

# 取代節點 (Valkey 和 Redis OSS)
<a name="CacheNodes.NodeReplacement"></a>

Amazon ElastiCache 經常透過無縫套用至執行個體的修補程式和升級來升級其機群。不過，有時我們需要重新啟動 ElastiCache 節點，才能將強制性作業系統更新套用至基礎主機。必須進行這些替換才能套用升級，以強化安全、可靠性和操作效能。

您可以選擇在排程的節點替換時間之前，隨時自行管理這些替換。當您自行管理替換時，執行個體會在重新啟動節點時收到 OS 更新，而排程的節點替換將會取消。您可能會繼續收到提醒，指出節點即將進行替換。若您已手動減少維護的需求，您可以忽略這些提醒。

**注意**  
Amazon ElastiCache 自動產生的取代快取節點可能有不同的 IP 地址。您必須負責檢閱應用程式組態，以確保快取節點與適當的 IP 位址相關聯。

以下清單識別當 ElastiCache 排程其中一個 Valkey 或 Redis OSS 節點進行取代時，您可以採取的動作。若要加快尋找針對您的狀況所需的資訊，請從以下選單選擇。
+ [Do nothing](#DoNothing) - 讓 Amazon ElastiCache 按排程替換節點。
+ [Change your maintenance window](#ChangeWindow) - 將您的維護時段變更為更合適的時間。
+ Valkey 或 Redis OSS （啟用叢集模式） 組態
  + [Replace the only node in any Valkey or Redis OSS cluster](#ReplaceStandalone) – 使用備份和還原取代 Valkey 或 Redis OSS 叢集中節點的程序。
  + [Replace a replica node in any Valkey or Redis OSS cluster](#ReplaceReplica) – 透過增加和減少複本計數來取代任何 Valkey 或 Redis OSS 叢集中僅供讀取複本的程序，無需叢集停機時間。
  + [Replace any node in a Valkey or Redis OSS (cluster mode enabled) shard](#ReplaceShardNode) – 動態程序，沒有叢集停機時間，可透過向外擴展和向內擴展來取代 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的節點。
+ Valkey 或 Redis OSS （停用叢集模式） 組態
  + [Replace the only node in any Valkey or Redis OSS cluster](#ReplaceStandalone) – 使用備份和還原取代 Valkey 或 Redis OSS 叢集中任何節點的程序。
  + [Replace a replica node in any Valkey or Redis OSS cluster](#ReplaceReplica) – 透過增加和減少複本計數來取代任何 Valkey 或 Redis OSS 叢集中僅供讀取複本的程序，無需叢集停機時間。
  + [Replace a node in a Valkey or Redis OSS (cluster mode disabled) cluster](#ReplaceStandaloneClassic) – 使用複寫取代 Valkey 或 Redis OSS （停用叢集模式） 叢集中的節點的程序。
  + [Replace a Valkey or Redis OSS (cluster mode disabled) read-replica](#ReplaceReadReplica) – 手動取代 Valkey 或 Redis OSS （停用叢集模式） 複寫群組中僅供讀取複本的程序。
  + [Replace a Valkey or Redis OSS (cluster mode disabled) primary node](#ReplacePrimary) – 手動取代 Valkey 或 Redis OSS （停用叢集模式） 複寫群組中主節點的程序。

**Valkey 和 Redis OSS 節點替換選項**
+ **不執行任何動作** - 若您不執行任何動作，ElastiCache 會依排程替換節點。

   

  對於啟用自動容錯移轉的非叢集組態，Valkey 7.2 和更高版本以及 Redis OSS 5.0.6 和更高版本上的叢集會完成取代，同時叢集會繼續保持線上狀態並提供傳入寫入請求。對於 Redis OSS 4.0.10 或更低版本上已啟用自動容錯移轉的叢集，您可能會注意到與 DNS 更新相關聯的短暫寫入中斷，最長可達幾秒鐘。

  如果節點是已啟用自動容錯移轉叢集的成員，ElastiCache for Valkey 或 Redis OSS 會在修補、更新和其他維護相關節點替換期間提供更高的可用性。

   

  對於設定為使用 ElastiCache for Valkey 或 Redis OSS 叢集用戶端的 ElastiCache 叢集組態，替換現在會在叢集提供傳入寫入請求時完成。 ElastiCache 

   

  對於啟用自動容錯移轉的非叢集組態，Valkey 7.2 和更高版本以及 Redis OSS 5.0.6 和更高版本上的叢集會完成取代，同時叢集會繼續保持線上狀態並提供傳入寫入請求。對於 Redis OSS 4.0.10 或更低版本上已啟用自動容錯移轉的叢集，您可能會注意到與 DNS 更新相關聯的短暫寫入中斷，最長可達幾秒鐘。

   

  若為獨立節點，Amazon ElastiCache 會先啟動替換節點，然後再從現有節點進行同步。現有節點此時將無法處理服務請求。同步完成後，現有節點會遭到終止，新的節點會取代其位置。ElastiCache 會盡量在此操作期間保留您的資料。

   
+ **變更您的維護時段** - 對於排定的維護事件，您會收到來自 ElastiCache 的電子郵件或通知事件。在這種情況下，如果在排定的替換時間之前變更維護時段，則現在將在新的時間替換您的節點。如需詳細資訊，請參閱下列內容：
  + [修改 ElastiCache 叢集](Clusters.Modify.md)
  + [修改複寫群組](Replication.Modify.md)
**注意**  
只有當 ElastiCache 通知包含維護時段時，您才可以透過改變維護時段來變更您的替換時間。若通知並未包含維護時段，您便無法變更替換時間。

  例如，假設現在是 11 月 9 日星期四下午 3:00，下一個維護時段是 11 月 10 日星期五下午 5:00。以下是三種情況及其結果：
  + 您將維護時段變更為星期五下午 4:00，在目前的日期時間之後、下一個排定的維護時段之前。節點將於 11 月 10 日星期五下午 4:00 進行替換。
  + 您將維護時段變更為星期六下午 4:00，在目前的日期時間之後，以及下一個排定的維護時段之後。節點將於 11 月 11 日星期六下午 4:00 進行替換。
  + 您將維護時段變更為星期三下午 4:00，早於這星期中目前的日期時間。節點將於 11 月 15 日星期三下午 4:00 進行替換。

  如需說明，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

   
+ **取代任何 Valkey 或 Redis OSS 叢集中唯一的節點** – 如果叢集沒有任何僅供讀取複本，您可以使用下列程序來取代節點。

**使用備份與還原替換唯一節點**

  1. 建立節點叢集的快照。如需說明，請參閱「[取得手動備份](backups-manual.md)」。

  1. 從快照建立新叢集。如需說明，請參閱[從備份還原到新的快取](backups-restoring.md)。

  1. 刪除包含已排程替換節點的叢集。如需說明，請參閱[在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

  1. 在您的應用程式中，使用新節點的端點替換舊節點的端點。

   
+ **取代任何 Valkey 或 Redis OSS 叢集中的複本節點** – 若要取代複本叢集，請增加複本計數。若要達成此目的，請先新增複本，然後移除您要替換的複本來減少複本計數。此程序為動態程序，因此不會有任何叢集停機時間。
**注意**  
若您的碎片或複寫群組已有 5 個複本，請對調步驟 1 和 2 的順序。

**取代任何 Valkey 或 Redis OSS 叢集中的複本**

  1. 透過將複本新增到碎片或複寫群組，來增加複本數。如需詳細資訊，請參閱[增加碎片中的複本數量](increase-replica-count.md)。

  1. 刪除您欲替換的複本。如需詳細資訊，請參閱[減少碎片中的複本數量](decrease-replica-count.md)。

  1. 更新您應用程式中的端點。

   
+ **取代 Valkey 或 Redis OSS （啟用叢集模式） 碎片中的任何節點** – 若要在不停機的情況下取代叢集中的節點，請使用線上重新分片。首先透過向外擴展來新增碎片，然後透過向內擴展來刪除具有要替換之節點的碎片。

**取代 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的任何節點**

  1. 向外擴展：使用與包含要替換節點現有碎片相同的組態新增額外的碎片。如需詳細資訊，請參閱[使用線上重新分片功能新增碎片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online-add)。

  1. 向內擴展：刪除包含要替換節點的碎片。如需詳細資訊，請參閱[使用線上重新分片移除碎片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online-remove)。

  1. 更新您應用程式中的端點。

   
+ **取代 Valkey 或 Redis OSS （停用叢集模式） 叢集中的節點** – 如果叢集是沒有任何僅供讀取複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集，請使用下列程序來取代節點。

**使用複寫替換節點 (僅限停用叢集模式)**

  1. 將複寫新增到包含已排程替換節點的叢集，做為主要節點。請不要在此叢集上啟用異地同步備份。如需說明，請參閱[將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集](Clusters.AddNode.md#AddReplication.CON)。

  1. 將僅供讀取複本新增到叢集。如需說明，請參閱[將節點新增至 ElastiCache 叢集 （主控台）](Clusters.AddNode.md#AddNode.CON)。

  1. 將新建立的僅供讀取複本提升為主要節點。如需說明，請參閱[針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)。

  1. 刪除已排程替換的節點。如需說明，請參閱[從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)。

  1. 在您的應用程式中，使用新節點的端點替換舊節點的端點。

   
+ **取代 Valkey 或 Redis OSS （停用叢集模式） 僅供讀取複本** – 如果節點是僅供讀取複本，請取代節點。

  若您的叢集只有一個複本節點，並且已啟用異地同步備份，您必須先停用異地同步備份才能刪除複本。如需說明，請參閱[修改複寫群組](Replication.Modify.md)。

**若要取代 Valkey 或 Redis OSS （停用叢集模式） 僅供讀取複本**

  1. 刪除已排程進行替換的複本。如需詳細說明，請參閱下列主題：
     + [減少碎片中的複本數量](decrease-replica-count.md)
     + [從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)

  1. 新增新複本來替換已排程進行替換的複本。若您使用與剛刪除複本相同的名稱，您可以跳過步驟 3。如需詳細說明，請參閱下列主題：
     + [增加碎片中的複本數量](increase-replica-count.md)
     + [新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)

  1. 在您的應用程式中，使用新複本的端點替換舊複本的端點。

  1. 若您在一開始停用異地同步備份，現在請重新啟用。如需說明，請參閱[啟用多個可用區](AutoFailover.md#AutoFailover.Enable)。

   
+ **取代 Valkey 或 Redis OSS （停用叢集模式） 主節點** – 如果節點是主節點，請先將僅供讀取複本提升為主節點。然後刪除先前做為主要節點的複本。

  若您的叢集只有一個複本，並且已啟用異地同步備份，您必須先停用異地同步備份才能在步驟 2 刪除複本。如需說明，請參閱[修改複寫群組](Replication.Modify.md)。

**取代 Valkey 或 Redis OSS （停用叢集模式） 主節點**

  1. 將僅供讀取複本提升為主要節點。如需說明，請參閱[針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)。

  1. 刪除已排程進行替換的節點 (舊的主要節點)。如需說明，請參閱[從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)。

  1. 新增新複本來替換已排程進行替換的複本。若您使用與剛刪除節點相同的名稱，您可以跳過變更您應用程式中的端點。

     如需說明，請參閱[新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)。

  1. 在您的應用程式中，使用新節點的端點替換舊節點的端點。

  1. 若您在一開始停用異地同步備份，現在請重新啟用。如需說明，請參閱[啟用多個可用區](AutoFailover.md#AutoFailover.Enable)。

   

# 取代節點 (Memcached)
<a name="CacheNodes.NodeReplacement-mc"></a>

Amazon ElastiCache for Memcached 會透過將修補程式和升級順暢套用到執行個體，來頻繁升級其機群。不過，我們不時需要重新啟動您的 ElastiCache for Memcached 節點，以便對基礎主機套用強制 OS 更新。必須進行這些替換才能套用升級，以強化安全、可靠性和操作效能。

您可以選擇在排程的節點替換時間之前，隨時自行管理這些替換。當您自行管理替換時，執行個體會在重新啟動節點時收到 OS 更新，而排程的節點替換將會取消。您可能會繼續收到提醒，指出節點即將進行替換。若您已手動減少維護的需求，您可以忽略這些提醒。

**注意**  
Amazon ElastiCache 自動產生的取代快取節點可能有不同的 IP 地址。您必須負責檢閱應用程式組態，以確保快取節點與適當的 IP 位址相關聯。

以下清單會指出在 ElastiCache 排程替換掉其中一個 Memcached 節點時，您可以採取的動作。
+ **不執行任何動作** - 若您不執行任何動作，ElastiCache 會依排程替換節點。當 ElastiCache 自動使用新節點替換節點時，新的節點一開始會處於空白狀態。
+ **變更您的維護時段** - 對於排定的維護事件，您會收到來自 ElastiCache 的電子郵件或通知事件。在這種情況下，如果在排定的替換時間之前變更維護時段，則現在將在新的時間替換您的節點。如需詳細資訊，請參閱[修改 ElastiCache 叢集](Clusters.Modify.md)。
**注意**  
只有當 ElastiCache 通知包含維護時段時，您才可以透過改變維護時段來變更您的替換時間。若通知並未包含維護時段，您便無法變更替換時間。

  例如，假設現在是 11 月 9 日星期四下午 3:00，下一個維護時段是 11 月 10 日星期五下午 5:00。以下是三種情況及其結果：
  + 您將維護時段變更為星期五下午 4:00，在目前的日期時間之後、下一個排定的維護時段之前。節點將於 11 月 10 日星期五下午 4:00 進行替換。
  + 您將維護時段變更為星期六下午 4:00，在目前的日期時間之後，以及下一個排定的維護時段之後。節點將於 11 月 11 日星期六下午 4:00 進行替換。
  + 您將維護時段變更為星期三下午 4:00，早於這星期中目前的日期時間。節點將於 11 月 15 日星期三下午 4:00 進行替換。

  如需說明，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。
+ **手動替換節點** - 若您需要在下一個維護時段之前替換節點，請手動替換節點。

  如果手動替換節點，則會重新配送金鑰。此重新配送會導致快取遺漏。

**手動替換 Memcached 節點**

  1. 刪除已排程替換的節點。如需說明，請參閱[從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)。

  1. 將新的節點新增到叢集。如需說明，請參閱[將節點新增至 ElastiCache 叢集](Clusters.AddNode.md)。

  1. 若您並未在此叢集上使用自動探索，請查看您的應用程式並使用新節點的端點替換舊節點端點的每個執行個體。

# 預留節點
<a name="CacheNodes.Reserved"></a>

保留一或多個 ElastiCache 節點可能會讓您降低成本。您必須先為預留節點預付費用，實際費用取決於節點類型及保留時間長度 (一或三年)。

若要了解預留節點在您的使用案例中是否可以節省成本，請先判斷您需要的節點大小和節點數量。然後估計節點的用量，並比較使用隨需節點和預留節點時的總成本。您可以在您的叢集中混合搭配使用預留節點與隨需節點。如需定價資訊，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/)。

**Topics**
+ [管理使用預留節點的成本](#reserved-nodes)
+ [標準預留節點方案](#reserved-nodes-standard)
+ [彈性預留節點大小](#reserved-nodes-size)
+ [刪除預留節點](#reserved-nodes-deleting)
+ [舊式預留節點方案](#reserved-nodes-utilization)
+ [取得關於預留節點方案的資訊](#reserved-nodes-offerings)
+ [購買預留節點](#reserved-nodes-purchasing)
+ [取得預留節點的相關資訊](#reserved-nodes-describing)

## 管理使用預留節點的成本
<a name="reserved-nodes"></a>

預留一或多個節點可能可以減少您的成本。您必須先為預留節點預付費用，實際費用取決於節點類型及保留時間長度 (一或三年)。此費用遠低於您使用隨需節點時需支付的每小時使用費。

若要了解預留節點在您的使用案例中是否可以節省成本，請先判斷您需要的節點大小和節點數量。然後估計節點的用量，並比較使用隨需節點和預留節點時的總成本。您可以在您的叢集中混合搭配使用預留節點與隨需節點。如需定價資訊，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/)。

AWS 區域、節點類型和期限長度必須在購買時選擇，之後無法變更。

您可以使用 AWS 管理主控台、 AWS CLI或 ElastiCache API 來列出和購買可用的預留節點方案。

如需預留節點的詳細資訊，請參閱 [Amazon ElastiCache 預留節點](https://aws.amazon.com/elasticache/reserved-cache-nodes/)。

## 標準預留節點方案
<a name="reserved-nodes-standard"></a>

當您在 Amazon ElastiCache 中購買預留節點執行個體 (RI) 時，您可以購買在特定節點執行個體類型和 AWS 區域取得預留節點執行個體期間折扣費率的承諾。若要使用 Amazon ElastiCache 預留節點執行個體，您應建立新的 ElastiCache 節點執行個體，如同建立隨需執行個體一般。

如果新預留節點執行個體的規格符合您帳戶的現有預留節點執行個體，則會以預留節點執行個體提供的折扣費率向您收費。否則，節點執行個體將按隨需費率計費。這些標準 RI 可供 R5 和 M5 執行個體系列以上使用。

**注意**  
接下來討論的所有方案類型都提供一年期和三年期。

**方案類型**  
**無須預付** RI 讓您不用支付預付款，便能存取預留 ElastiCache 執行個體。*無須預付*的預留 ElastiCache 執行個體在期間中以折扣後的每小時費率計費，無論是否有使用。

**部分預付** RI 要求預先支付部分的預留 ElasticCache 資料庫執行個體。期間內其餘的時數會以折扣後的每小時費率計費，無論是否有使用。此選項為傳統*重度使用*選項的替代方案，下一節將說明。

**全部預付** RI 要求在 RI 有效期間開始時繳付全額款項。有效期間開始時便支付全額款項，且有效期間的剩餘時間內，無論使用多少小時，都不會產生其他成本或額外的每小時費用。

## 彈性預留節點大小
<a name="reserved-nodes-size"></a>

所有預留節點都具有彈性大小。當您購買預留節點時，您指定的一個物件是節點類型，例如 cache.r6g.xlarge。如需節點類型的詳細資訊，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/ )。

如果您有節點，而且需要將其擴展到更大的容量，則預留節點會自動套用到擴展的節點。也就是說，您的預留節點會自動套用至相同節點系列中任何大小的用量。彈性大小的預留節點適用於具有相同 AWS 區域的節點。彈性大小的預留節點只能在其節點系列中進行擴展。例如，Cache.r6g.xlarge 的預留節點可以套用至 cache.r6g.2xlarge，但不適用於 cache.r6gd.large，因為 cache.r6g 和 cache.r6gd 是不同的節點系列。

大小彈性表示您可以在相同節點系列中的組態之間自由移動。例如，您可以從 r6g.xlarge 預留節點 (8 個標準化單位） 移至相同 AWS 區域中的兩個 r6g.large 預留節點 (8 個標準化單位） (2\$14 = 8 個標準化單位），無需額外費用。

### 將節點從 Redis OSS 升級到 Valkey
<a name="reserved-nodes-upgrade-to-valkey"></a>

在 ElastiCache 中啟動 Valkey 後，您現在可以將 Redis OSS 預留節點折扣套用至 Valkey 快取引擎。您可以從 Redis OSS 升級到 Valkey，同時仍受益於現有的合約和保留。除了能夠在快取節點系列和引擎中套用您的利益之外，您甚至可以接收更多增量值。與 Redis OSS 相比，Valkey 定價為 20% 的折扣，並且具有預留節點彈性，您可以使用 Redis OSS 預留節點來涵蓋執行中的 Valkey 節點多 20%。

為了計算折扣率，每個 ElastiCache 節點和引擎組合都有以單位測量的標準化因素。預留節點單位可以套用至特定引擎的預留節點執行個體系列中的任何執行中節點。Redis OSS 預留節點可以另外套用於引擎，以涵蓋執行中的 Valkey 節點。由於 Valkey 以相對於 Redis OSS 和 Memcached 的折扣定價，其特定執行個體類型的單位較低，這允許 Redis OSS 預留節點涵蓋更多 Valkey 節點。

例如，假設您已為 Redis OSS 引擎 (32 個單位） 購買 cache.r7g.4xlarge 的預留節點，並正在執行一個 cache.r7g.4xlarge Redis OSS 節點 (32 個單位）。如果您將節點升級至 Valkey，則執行中節點的正規化因素會下降至 25.6 個單位，而您現有的預留節點會為您提供額外的 6.4 個單位，以用於區域內任何其他執行中的 Valkey 或 Redis OSS 節點。r7g 系列。您可以使用它來涵蓋帳戶中另一個 cache.r7g.4xlarge Valkey 節點的 25% (25.6 個單位） 或 cache.r7g.xlarge Valkey 節點的 100% (6.4 個單位）。



### 比較使用量與標準化單位
<a name="reserved-nodes-size.normalized"></a>

您可以使用標準化單位來比較不同預留節點大小的用量。例如，兩個 cache.r6g.4xlarge 節點上的一小時用量相當於一個 cache.r6g.large 上的 16 小時用量。下表顯示每個節點大小的標準化單位數量：


****  

| 節點大小 | 使用 Redis OSS 或 Memcached 標準化單位 | 使用 Valkey 標準化單位 | 
| --- | --- | --- | 
| 微型 | 0.5 | 0.4 | 
| 小型 | 1 | 8. | 
| 中型 | 2 | 1.6 | 
| 大型 | 4 | 3.2 | 
| xlarge | 8 | 6.4 | 
| 2xlarge | 16 | 12.8 | 
| 4xlarge | 32 | 25.6 | 
| 6xlarge | 48 | 38.4 | 
| 8xlarge | 64 | 51.2 | 
| 10xlarge | 80 | 64 | 
| 12xlarge | 96 | 76.8 | 
| 16xlarge | 128 | 102.4 | 
| 24xlarge | 192 | 153.6 | 

例如，您購買 cache.r6gd.xlarge 預留節點，而且您帳戶在同一 AWS 區域中有兩個執行中 cache.r6gd.large 預留節點。在此情況下，帳單利益會完整套用至兩個節點。

![\[Region containing a cache.r6gd.xlarge reserved node with two cache.r6gd.large nodes inside.\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ri1.png)


或者，如果您在同一 AWS 區域中的帳戶中有一個 cache.r6gd.2xlarge 執行個體，則帳單利益會套用至預留節點的 50% 用量。

![\[Diagram showing a cache.r6gd.xlarge reserved node region containing a cache.r6gd.2xlarge instance.\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ri2.png)


## 刪除預留節點
<a name="reserved-nodes-deleting"></a>

預留節點的條款涉及一年或三年的承諾。您無法取消預留節點。不過，您可以刪除預留節點折扣涵蓋的節點。刪除預留節點折扣所涵蓋節點的程序，與任何其他節點的程序相同。

如果您刪除預留節點折扣涵蓋的節點，您可以啟動另一個具有相容規格的節點。在此情況下，您仍可以在保留時間 (一或三年) 內繼續享有折扣費率。

## 舊式預留節點方案
<a name="reserved-nodes-utilization"></a>

有三個層級的舊式節點保留：重度使用率、中度使用率和輕度使用率。節點可以在任何使用率層級保留 1 或 3 年。節點類型、使用率層級和保留有效期間會影響您的總成本。購買預留節點之前，請比較各種模型，確認預留節點可為您的業務省下的費用。

在某個使用率層級或期間購買的節點不能轉換為不同的使用率層級或期間。

**使用率層級**  
*重度使用率預留節點*允許具有一致容量基線的工作負載或執行穩定狀態的工作負載。重度使用率預留節點需要高度的前期承諾，但如果您計劃執行多於 79% 的預留節點期間，您可以獲得最高的節省金額 (節省金額最高達隨需價格的 70%)。若採用高度使用率預留節點，您需支付一筆一次性費用。之後無論您的節點是否有執行，再有效期間內都需支付較低的每小時費用。

如果您計劃運用預留節點很長一段時間，且您需要較低的一次性費用，或希望可在節點關閉時停止支付其費用，則*中度使用率預留節點*為最佳選項。當您計劃執行超過 40% 的預留節點期間，則中度使用率預留節點為更符合成本效益的選項。此選項可以為您節省高達隨需價格的 64%。利用中度使用率預留節點，您需支付較輕度使用率預留節點稍高的一次性費用，並且會在執行節點時獲得較低的每小時使用費率。

*輕度使用率預留節點*為一天只會執行幾個小時，或一週執行幾天的定期性工作負載的理想選擇。使用輕度使用率預留節點，您會支付一次性費用，接著是您的節點執行時每小時折扣的使用費。當您的節點執行時間超過預留節點有效期間的 17%，您就可以開始節省成本。預留節點的整個有效期間內，您可以節高達隨需費率的 56%。


**舊式預留節點方案**  

| 產品 | 預付成本 | 使用費 | 優點 | 
| --- | --- | --- | --- | 
|  高度使用率 |  最高 |  每小時費用最低。無論您是否使用預留節點，會套用至整個期間。 |  如果您計劃執行預留節點超過三年期間的 79%，則整體成本最低。 | 
|  中度使用率 |  中 |  對執行節點的每個小時收取每小時使用費。節點未執行時不收取每小時費用。 |  適合彈性工作負載或當您預期的是中度使用量 (超過三年期間的 40%)。 | 
|  低度使用率 |  最低 |  對執行節點的每個小時收取每小時使用費。節點未執行時不收取每小時費用。所有方案類型的每小時費用最高，但費用僅套用在預留節點執行時。 |  如果您規劃不間斷執行，則整體成本會最高。不過，如果您規劃的預留節點使用頻率較低 (三年有效期間大約超過 15%)，則整體成本最低。 | 
|  隨需使用 (無預留節點) |  無 |  每小時費用最高。每當節點執行時便套用。 |  每小時成本最高。 | 

如需詳細資訊，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/)。

## 取得關於預留節點方案的資訊
<a name="reserved-nodes-offerings"></a>

購買預留節點之前，您可以取得關於可用的預留節點方案的資訊。

下列範例示範如何使用 AWS 管理主控台、 和 ElastiCache API AWS CLI取得可用預留節點方案的定價和資訊。

**Topics**
+ [使用 AWS 管理主控台](#reserved-nodes-offerings-console)
+ [使用 AWS CLI](#reserved-nodes-offerings-cli)
+ [使用 ElastiCache API](#reserved-nodes-offerings-api)

### 取得關於預留節點方案的資訊 (主控台)
<a name="reserved-nodes-offerings-console"></a>

若要使用 取得可用預留叢集方案的定價和其他資訊 AWS 管理主控台，請使用下列程序。

**取得可用預留節點方案的相關資訊**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Reserved Instances (預留節點)**。

1. 選擇 **Purchase Reserved Nodes** (購買預留節點)。

1. 針對**引擎**，選擇 Valkey、Memcached 或 Redis OSS。

1. 若要判斷可用的方案，請為接下來的選項進行選擇：
   + **節點類型**
   + **期間**
   + **方案類型**

   進行這些選擇之後，**Reservation details** (預留詳細資訊) 中會顯示每一節點的成本和您選擇的總成本。

1. 選擇 **Cancel (取消)** 來避免購買這些節點和衍生費用。

### 取得關於預留節點方案的資訊 (AWS CLI)
<a name="reserved-nodes-offerings-cli"></a>

若要取得 Valkey 或 Redis OSS 可用預留節點方案的定價和其他資訊，請在命令提示字元中輸入下列命令：

```
1. aws elasticache describe-reserved-cache-nodes-offerings
```

此作業會產生類似下列的輸出 (JSON 格式)：

```
 {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.large",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "redis",
            "OfferingType": "All Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.X,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
  },
  {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.xlarge",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "redis",
            "OfferingType": "Partial Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
  },
  {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.large",
            "Duration": 31536000,
            "FixedPrice": X.X,
            "UsagePrice": X.X,
            "ProductDescription": "redis",
            "OfferingType": "No Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
}
```

若要取得 Memcached 可用預留節點方案的定價和其他資訊，請在命令提示中輸入下列命令：

```
 {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.large",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "memcached",
            "OfferingType": "All Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.X,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
    },
	{
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xxx.xlarge",
            "Duration": 94608000,
            "FixedPrice": XXXX.X,
            "UsagePrice": X.X,
            "ProductDescription": "memcached",
            "OfferingType": "Partial Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
     },
     {
            "ReservedCacheNodesOfferingId": "0xxxxxxxx-xxeb-44ex-xx3c-xxxxxxxx072",
            "CacheNodeType": "cache.xx.12xlarge",
            "Duration": 31536000,
            "FixedPrice": X.X,
            "UsagePrice": X.X,
            "ProductDescription": "memcached",
            "OfferingType": "No Upfront",
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": X.XXXX,
                    "RecurringChargeFrequency": "Hourly"
                }
            ]
}
```

如需詳細資訊，請參閱「 AWS CLI 參考」中的 [describe-reserved-cache-nodes-offerings](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-reserved-cache-nodes-offerings.html)。

### 取得關於預留節點方案的資訊 (ElastiCache API)
<a name="reserved-nodes-offerings-api"></a>

若要取得關於可用的預留節點方案的定價和資訊，請呼叫 `DescribeReservedCacheNodesOfferings` 動作。

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReservedCacheNodesOfferings
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

如需詳細資訊，請參閱「ElastiCache API 參考」中的 [DescribeReservedCacheNodesOfferings](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodesOfferings.html)。

## 購買預留節點
<a name="reserved-nodes-purchasing"></a>

下列範例顯示如何使用 AWS 管理主控台、 AWS CLI和 ElastiCache API 來購買預留節點方案。

**重要**  
 遵循本節中的範例，您的帳戶會產生 AWS 您無法反轉的費用。

**Topics**
+ [使用 AWS 管理主控台](#reserved-nodes-purchasing-console)
+ [使用 AWS CLI](#reserved-nodes-purchasing-cli)
+ [使用 ElastiCache API](#reserved-nodes-purchasing-api)

### 購買預留節點 (主控台)
<a name="reserved-nodes-purchasing-console"></a>

 此範例顯示購買特定的預留節點方案 *649fd0c8-cf6d-47a0-bfa6-060f8e75e95f*，並且其預留節點 ID 為 *myreservationID*。

下列程序使用 AWS 管理主控台 ，透過提供 ID 來購買預留節點方案。

**購買預留節點**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 在導覽清單中，選擇 **Reserved Nodes** (預留節點) 連結。

1. 選擇 **Purchase Reserved Node** (購買預留節點) 按鈕。

1. 針對**引擎**，選擇 Valkey、Memcached 或 Redis OSS。

1. 若要判斷可用的方案，請為接下來的選項進行選擇：
   + **節點類型**
   + **期間**
   + **方案類型**
   + 選擇性的 **Reserved node ID** (預留節點識別碼)

   進行這些選擇之後，**Reservation details** (預留詳細資訊) 中會顯示每一節點的成本和您選擇的總成本。

1. 選擇 **Purchase (購買)**。

### 購買預留節點 (AWS CLI)
<a name="reserved-nodes-purchasing-cli"></a>

 下列範例顯示購買特定的預留叢集方案 *649fd0c8-cf6d-47a0-bfa6-060f8e75e95f*，並且其預留節點 ID 為 *myreservationID*。

 在命令提示字元中，輸入下列命令：

若為 Linux、macOS 或 Unix：

```
1. aws elasticache purchase-reserved-cache-nodes-offering \
2.     --reserved-cache-nodes-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f \
3.     --reserved-cache-node-id myreservationID
```

針對 Windows：

```
1. aws elasticache purchase-reserved-cache-nodes-offering ^
2.     --reserved-cache-nodes-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f ^
3.     --reserved-cache-node-id myreservationID
```

 此命令會傳回類似以下的輸出：

```
1. RESERVATION  ReservationId      Class           Start Time                Duration  Fixed Price  Usage Price  Count  State            Description      Offering Type
2. RESERVATION  myreservationid    cache.xx.small  2013-12-19T00:30:23.247Z  1y        XXX.XX USD   X.XXX USD    1      payment-pending  memcached        Medium Utilization
```

如需詳細資訊，請參閱「 AWS CLI 參考」中的 [purchase-reserved-cache-nodes-offering](https://docs.aws.amazon.com/cli/latest/reference/elasticache/purchase-reserved-cache-nodes-offering.html)。

### 購買預留節點 (ElastiCache API)
<a name="reserved-nodes-purchasing-api"></a>

下列範例顯示購買特定的預留節點方案 *649fd0c8-cf6d-47a0-bfa6-060f8e75e95f*，並且其預留叢集 ID 為 *myreservationID*。

搭配下列參數呼叫 `PurchaseReservedCacheNodesOffering` 操作：
+ `ReservedCacheNodesOfferingId` = `649fd0c8-cf6d-47a0-bfa6-060f8e75e95f`
+ `ReservedCacheNodeID` = `myreservationID`
+ `CacheNodeCount` = `1`

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=PurchaseReservedCacheNodesOffering
    &ReservedCacheNodesOfferingId=649fd0c8-cf6d-47a0-bfa6-060f8e75e95f
    &ReservedCacheNodeID=myreservationID
    &CacheNodeCount=1
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

如需詳細資訊，請參閱「ElastiCache API 參考」中的 [PurchaseReservedCacheNodesOffering](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_PurchaseReservedCacheNodesOffering.html)。

## 取得預留節點的相關資訊
<a name="reserved-nodes-describing"></a>

您可以使用 AWS 管理主控台、 AWS CLI和 ElastiCache API，取得您已購買之預留節點的相關資訊。

**Topics**
+ [使用 AWS 管理主控台](#reserved-nodes-describing-console)
+ [使用 AWS CLI](#reserved-nodes-describing-cli)
+ [使用 ElastiCache API](#reserved-nodes-describing-api)

### 取得預留節點的相關資訊 (主控台)
<a name="reserved-nodes-describing-console"></a>

下列程序說明如何使用 AWS 管理主控台 來取得您所購買預留節點的相關資訊。

**取得您購買之預留節點的相關資訊**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽清單中，選擇 **Reserved Nodes** (預留節點) 連結。

    帳戶的預留節點會出現在預留節點清單中。選擇清單中的任何預留節點，便能從主控台底部的詳細資料窗格中查看該預留節點的詳細資訊。

### 取得預留節點的相關資訊 (AWS CLI)
<a name="reserved-nodes-describing-cli"></a>

若要取得 AWS 您帳戶預留節點的相關資訊，請在命令提示中輸入下列命令：

```
aws elasticache describe-reserved-cache-nodes
```

此作業會產生類似下列的輸出 (JSON 格式)：

```
{
    "ReservedCacheNodeId": "myreservationid",
    "ReservedCacheNodesOfferingId": "649fd0c8-cf6d-47a0-bfa6-060f8e75e95f",
    "CacheNodeType": "cache.xx.small",
    "DataTiering": "disabled",
    "Duration": "31536000",
    "ProductDescription": "memcached",
    "OfferingType": "Medium Utilization",
    "MaxRecords": 0
}
```

如需詳細資訊，請參閱《 AWS CLI 參考》中的 [describe-reserved-cache-nodes](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-reserved-cache-nodes.html)。

### 取得預留節點的相關資訊 (ElastiCache API)
<a name="reserved-nodes-describing-api"></a>

若要取得您 AWS 帳戶預留節點的相關資訊，請呼叫 `DescribeReservedCacheNodes`操作。

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReservedCacheNodes
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

如需詳細資訊，請參閱「ElastiCache API 參考」中的 [DescribeReservedCacheNodes](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReservedCacheNodes.html)。

# 遷移上一代節點
<a name="CacheNodes.NodeMigration"></a>

上一代節點是逐步遭淘汰的節點類型。如果您現有的叢集沒有使用上一代節點類型，ElastiCache 不支援建立具有此節點類型的新叢集。

由於上一代節點類型的數量有限，我們無法保證您叢集中的節點運作狀態不良時可成功替換。在這種情況下，您的叢集可用性可能會受到負面影響。

 建議您將叢集遷移至新的節點類型，以獲得更佳的可用性和效能。如需建議的遷移節點類型，請參閱[升級途徑](https://aws.amazon.com/ec2/previous-generation/)。如需 ElastiCache 支援的節點類型和上一代節點類型的完整清單，請參閱「[支援的節點類型](CacheNodes.SupportedTypes.md)」。

## 在 Valkey 或 Redis OSS 叢集上遷移節點
<a name="CacheNodes.NodeMigration.Redis"></a>

下列程序說明如何使用 ElastiCache 主控台遷移您的 Valkey 或 Redis OSS 叢集節點類型。在此過程中，您的 Valkey 或 Redis OSS 叢集將繼續以最短的停機時間處理請求。根據您的叢集組態，您可能會看到下列停機時間。以下是估計值，可能會因您的具體組態而有所不同：
+ 停用叢集模式 (單節點) 可能會經歷大約 60 秒，主要原因是 DNS 傳播。
+ 對於執行 Valkey 7.2 及更高版本或 Redis OSS 5.0.6 及更高版本的叢集，停用叢集模式 （具有複本節點） 可能會看到大約 1 秒。所有較低版本都可能經歷大約 10 秒。
+ 啟用叢集模式可能會經歷大約 1 秒。

**若要使用主控台修改 Valkey 或 Redis OSS 叢集節點類型：**

1. 登入主控台，並前往 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home) 開啟 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

1. 從叢集清單中選擇您要遷移的目標叢集。

1. 選擇 **Actions (動作)**，然後選擇 **Modify (修改)**。

1. 從節點類型清單中選擇新的節點類型。

1. 如果您要立即執行遷移程序，請選擇 **Apply immediately (立即套用)**。如果未選擇 **Apply immediately (立即套用)**，便會在此叢集的下一個維護時段期間執行遷移。

1. 選擇 **Modify** (修改)。如果您在上一個步驟中選擇 **Apply immediately (立即套用)**，叢集的狀態變更為 **modifying (修改中)**。當狀態變更為 **available (可用)**，修改即已完成，並且您可以開始使用新叢集。

*若要使用 修改 Valkey 或 Redis OSS 叢集節點類型 AWS CLI：*

使用 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) API，如下所示：

若為 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group /
	--replication-group-id my-replication-group /
	--cache-node-type new-node-type /
	--apply-immediately
```

針對 Windows：

```
aws elasticache modify-replication-group ^
	--replication-group-id my-replication-group ^
	--cache-node-type new-node-type ^
	--apply-immediately
```

在這個案例中，*new-node-type* 的值就是您要遷移的目標節點類型。若傳遞 `--apply-immediately` 參數，當複寫群組從**修改中**變為**可用**狀態時，就會立即套用更新。如果未選擇 **Apply immediately (立即套用)**，便會在此叢集的下一個維護時段期間執行遷移。

**注意**  
如果無法修改具有 `InvalidCacheClusterState` 錯誤的叢集，您需要先移除還原失敗的節點。

### 修正或移除還原失敗的節點
<a name="remove-restore-failed-node"></a>

 下列程序說明如何修正或移除 Valkey 或 Redis OSS 叢集 （還原失敗的節點）。若要深入了解 ElastiCache 節點如何進入還原失敗狀態，請參閱 [檢視 ElastiCache 節點狀態](Nodes.viewing.md)。我們建議先移除處於還原失敗狀態的任何節點，然後將 ElastiCache 叢集中剩餘的上一代節點遷移至較新一代的節點類型，最後再新增所需的節點數。

移除還原失敗的節點 (主控台)：

1. 登入主控台並前往 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home) 開啟 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

1. 在叢集清單中，選擇您要從中移除節點的叢集。

1. 在節點清單中，選擇您要從中移除節點的碎片。如果叢集已停用叢集模式，請略過此步驟。

1. 在節點清單中，選擇狀態為 `restore-failed` 的節點。

1. 選擇 **Actions (動作)**，然後選擇 **Delete node (刪除節點)**。

從 ElastiCache 叢集中移除還原失敗的節點後，您現在就可以遷移至較新一代的類型。如需詳細資訊，請參閱上方的 [在 Valkey 或 Redis OSS 叢集上遷移節點](#CacheNodes.NodeMigration.Redis)。

若要將節點新增回您的 ElastiCache 叢集，請參閱 [將節點新增至 ElastiCache 叢集](Clusters.AddNode.md)。

## 遷移 Memcached 叢集上的節點
<a name="CacheNodes.NodeMigration.Memcached"></a>

若要將 ElastiCache for Memcached 遷移到不同的節點類型，您必須建立一個新的叢集，這類叢集一開始一律是空的，以便填入您的應用程式。

**使用 ElastiCache 主控台遷移 ElastiCache for Memcached 叢集節點類型：**
+ 使用新的節點類型來建立新叢集。如需詳細資訊，請參閱[建立 Memcached 叢集 (主控台)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached)。
+ 在應用程式中，將端點更新為新叢集的端點。如需詳細資訊，請參閱「[尋找叢集的端點 （主控台） (Memcached)](Endpoints.md#Endpoints.Find.Memcached)」
+ 刪除舊叢集。如需詳細資訊，請參閱[在 ElastiCache 中刪除叢集](Clusters.Delete.md)

# 在 ElastiCache 中管理叢集
<a name="Clusters"></a>

*叢集*是一或多個快取節點的集合，所有這些節點都會執行 Valkey、Memcached 和 Redis OSS 引擎軟體的執行個體。在您建立叢集時，可以指定要使用的所有節點之引擎和版本。

**Valkey 和 Redis OSS 叢集**

下圖說明典型的 Valkey 或 Redis OSS 叢集。這些叢集可以在碎片 (API/CLI：節點群組） 內包含單一節點或最多六個節點，單一節點 Valkey 或 Redis OSS （停用叢集模式） 叢集沒有碎片，而多節點 Valkey 或 Redis OSS （停用叢集模式） 叢集具有單一碎片。Valkey 或 Redis OSS （啟用叢集模式） 叢集最多可有 500 個碎片，您的資料會分割在碎片上。如果引擎版本為 Valkey 7.2 及更高版本，或 Redis OSS 5.0.6 及更高版本，則每個叢集的節點或碎片限制最多可增加 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

 當您在 Valkey 或 Redis OSS 碎片中有多個節點時，其中一個節點是讀取/寫入主節點。碎片中的所有其他節點則是唯讀複本。

典型的 Valkey 或 Redis OSS 叢集如下所示。

![\[影像：典型的 Valkey 和 Redis OSS 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Redis.png)


**Memcached 叢集**

典型的 Memcached 叢集如下所示。Memcached 叢集包含 1 到 60 個節點，您可以在其中水平分割資料。

![\[圖片：典型 Memcached 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Memcached.png)


**Valkey、Memcached 和 Redis OSS 的 Elasticache 操作**

大多數 ElastiCache 作業都是在叢集層級執行。您可以將叢集設定為含特定數量的節點和一個參數群組，以控制每個節點的屬性。叢集內的所有節點都設計為相同節點類型，並具備相同的參數和安全群組設定。

每個叢集都必須有一個叢集識別符。叢集識別符是客戶針對叢集提供的名稱。這個識別碼可在 ElastiCache API 和 AWS CLI 命令互動時指定特定的叢集。叢集識別符對於 AWS 區域中的該客戶必須是唯一的。

ElastiCache 支援多種引擎版本。除非您有特定原因，否則我們建議您使用最新版本。

ElastiCache 叢集設計為使用 Amazon EC2 執行個體來存取。如果您在以 Amazon VPC 服務為基礎的 Virtual Private Cloud (VPC) 中啟動叢集，即可從 AWS外部存取該叢集。如需詳細資訊，請參閱[從外部存取 ElastiCache 資源AWS](accessing-elasticache.md#access-from-outside-aws)。

如需支援的版本清單，請參閱 [支援的引擎和版本](VersionManagement.md#supported-engine-versions)、 [支援的 Redis OSS 引擎版本](engine-versions.md#supported-engine-versions.redis)和 [支援的 ElastiCache for Memcached 版本](engine-versions.md#supported-engine-versions-mc)。

# 在 ElastiCache 中選擇網路類型
<a name="network-type"></a>

ElastiCache 支援網際網路通訊協定第 4 版和第 6 版 (IPv4 和 IPv6)，可讓您將叢集設定為接受：
+ 只有 IPv4 連接，
+ 只有 IPv6 連線，
+ IPv4 和 IPv6 連線皆可 (雙堆疊)

在 [Nitro 系統上](https://aws.amazon.com/ec2/nitro/)建置的所有執行個體上，使用 Valkey 7.2 和更新版本或 Redis OSS 6.2 和更新版本的工作負載都支援 IPv6。透過 IPv6 存取 ElastiCache 不另行收費。

**注意**  
不支援在 IPV6/雙堆疊可用性之前建立的叢集遷移。也不支援在新建立的叢集上切換網路類型。

在 [Nitro 系統上](https://aws.amazon.com/ec2/nitro/)建置的所有執行個體上使用 Memcached 1.6.6 以上版本的工作負載都支援 IPv6。透過 IPv6 存取 ElastiCache 不另行收費。

## 設定網路類型的子網路
<a name="network-type-subnets"></a>

如果您在 Amazon VPC 中建立叢集，就必須指定子網路群組。ElastiCache 會使用此子網路群組選擇子網路及該子網路中的 IP 地址，以與您的節點建立關聯。ElastiCache 叢集需要具有 IPv4 和 IPv6 地址的雙堆疊子網路，以便在雙堆疊模式下運作，且僅限 IPv6 的子網路僅會以 IPv6 運作。

## 使用雙堆疊
<a name="network-type-dual-stack"></a>

在啟用叢集模式下使用 ElastiCache for Redis OSS 時，從應用程式的角度來看，透過組態端點連線至所有叢集節點與直接連線至個別快取節點並無不同。若要達成此目標，叢集感知用戶端必須參與叢集探索程序，並要求所有節點的組態資訊。Rediss 的探索通訊協定在每個節點僅支援一個 IP。

當您使用 ElastiCache for Memcachedand 選擇雙堆疊做為網路類型建立叢集時，您需要指定 IP 探索類型：IPv4 或 IPv6。ElastiCache 會將網路類型和 IP 探索預設為 IPv6，但這可以變更。如果您使用自動探索，只有您所選 IP 類型的 IP 地址會傳回至 Memcached 用戶端。如需詳細資訊，請參閱[自動識別叢集中的節點 (Memcached)](AutoDiscovery.md)。

為了維持與所有現有用戶端的回溯相容性，我們會引入 IP 探索，讓您選取要在探索通訊協定中公告的 IP 類型 (即 IPv4 或 IPv6)。雖然這將自動探索限制為只有一種 IP 類型，但有了自動探索功能，雙堆疊仍然十分有用，因為可讓您從 IPv4 遷移 (或回復) 到 IPv6 探索 IP 類型，而不會導致停機。

## 啟用 TLS 的雙堆疊 ElastiCache 叢集
<a name="configuring-tls-enabled-dual-stack"></a>

為 ElastiCache 叢集啟用 TLS 時，叢集探索函數，例如 `cluster slots`、 `cluster shards`和 `cluster nodes` 搭配 Valkey 或 Redis OSS 以及 `config get cluster`搭配 Memcached 會傳回主機名稱，而非 IPs。接著會使用主機名稱而非 IP 來連線 ElastiCache 叢集，並執行 TLS 交握。這表示用戶端不會受到 IP 探索參數的影響。*針對啟用 TLS 的叢集，IP 探索參數對偏好的 IP 通訊協定沒有影響。*反之，用戶端在解析 DNS 主機名稱時偏好使用的 IP 通訊協定會決定所使用的 IP 通訊協定。

如需如何在解析 DNS 主機名稱時設定 IP 通訊協定偏好設定的範例，請參閱 [啟用 TLS 的雙堆疊 ElastiCache 叢集](BestPractices.md#network-type-configuring-tls-enabled-dual-stack)。

## 使用AWS 管理主控台(Valkey 和 Redis OSS)
<a name="network-type-console"></a>

使用 建立叢集時AWS 管理主控台，請在**連線能力**下選擇網路類型，即 **IPv4**、**IPv6** 或**雙堆疊**。如果您要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集並選擇雙堆疊，則必須選取**探索 IP 類型**，即 IPv6 或 IPv4。

如需詳細資訊，請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster) 或 [建立 Valkey 或 Redis OSS （停用叢集模式） （主控台）](Clusters.Create.md#Clusters.Create.CON.Redis) 。

使用 建立複寫群組時AWS 管理主控台，請選擇網路類型，即 **IPv4**、**IPv6** 或**雙堆疊**。若您選擇雙堆疊，則須選取 IPv6 或 IPv4 做為 **Discovery IP type** (探索 IP 類型)。

如需詳細資訊，請參閱 [從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.Classic.md) 或 [從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md) 。

## 使用AWS 管理主控台(Memcached)
<a name="network-type-console-mem"></a>

使用 建立叢集時AWS 管理主控台，請在**連線能力**下選擇網路類型，即 **IPv4**、**IPv6** 或**雙堆疊**。若您選擇雙堆疊，則須選取 IPv6 或 IPv4 做為 **Discovery IP type** (探索 IP 類型)。

如需詳細資訊，請參閱[建立 Memcached 叢集 (主控台)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached)。

## 使用 CLI 搭配 Valkey、Memcached 或 Redis OSS。
<a name="network-type-cli"></a>

**Redis OSS**

使用 CLI 建立具有 Valkey 或 Redis OSS 的叢集時，您可以使用 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) 命令並指定 `NetworkType`和 `IPDiscovery` 參數：

針對 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine redis \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

針對 Windows：

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine redis ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```

使用 CLI 建立停用叢集模式的複寫群組時，您可以使用 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 命令並指定 `NetworkType` 和 `IPDiscovery` 參數：

針對 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "demo cluster with replicas" \
   --num-cache-clusters 3 \
   --primary-cluster-id redis01 \
   --network-type dual_stack \
   --ip-discovery ipv4
```

針對 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "demo cluster with replicas" ^
   --num-cache-clusters 3 ^
   --primary-cluster-id redis01 ^
   --network-type dual_stack ^
   --ip-discovery ipv4
```

建立已啟用叢集模式的複寫群組，並使用 CLI 將 IPv4 用於 IP 探索時，您可以使用 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 命令並指定 `NetworkType` 和 `IPDiscovery` 參數：

針對 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv4 \
  --region us-east-1
```

針對 Windows：

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv4 ^
  --region us-east-1
```

建立已啟用叢集模式的複寫群組，並使用 CLI 將 IPv6 用於 IP 探索時，您可以使用 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 命令並指定 `NetworkType` 和 `IPDiscovery` 參數：

針對 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv6 \
  --region us-east-1
```

針對 Windows：

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv6 ^
  --region us-east-1
```

**Memcached**

使用 CLI 使用 Memcached 建立叢集時，您可以使用 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) 命令並指定 `NetworkType`和 `IPDiscovery` 參數：

針對 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine memcached \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

針對 Windows：

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine memcached ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```

# 自動識別叢集中的節點 (Memcached)
<a name="AutoDiscovery"></a>

對於執行 Memcached 引擎的叢集，ElastiCache 支援 *Auto Discovery*，可讓用戶端程式自動識別叢集中的所有節點，以及啟動和維護所有這些節點的連線。

**注意**  
Amazon ElastiCache Memcached 上執行的叢集會新增自動探索。Auto Discovery 不適用於 Valkey 或 Redis OSS 引擎。

透過自動探索，您的應用程式便不需要手動連線到個別快取節點；您的應用程式可改為連線到單一 Memcached 節點，並擷取節點清單。藉由該清單，您的應用程式便會感知到叢集中的其餘節點，並可以連線到其中任何一個節點。您不需要在應用程式中硬式編碼個別快取節點端點。

若您在叢集上使用雙堆疊網路類型，則視您選取的地址，自動探索只會傳回 IPv4 或 IPv6 地址。如需詳細資訊，請參閱 [在 ElastiCache 中選擇網路類型](network-type.md)。

叢集中所有快取節點都會維持一份其他所有節點的中繼資料清單。此中繼資料會在將節點新增到叢集或從叢集中移除節點時更新。

**Topics**
+ [使用 Memcached 自動探索的優點](AutoDiscovery.Benefits.md)
+ [自動探索的運作方式](AutoDiscovery.HowAutoDiscoveryWorks.md)
+ [使用自動探索](AutoDiscovery.Using.md)
+ [手動連線至 Memcached 快取節點](AutoDiscovery.Manual.md)
+ [將自動探索新增至 Memcached 用戶端程式庫](AutoDiscovery.AddingToYourClientLibrary.md)
+ [具有自動探索功能的 ElastiCache 用戶端](Clients.md)

# 使用 Memcached 自動探索的優點
<a name="AutoDiscovery.Benefits"></a>

使用 Memcached 時，Auto Discovery 提供下列優點：
+ 當您增加叢集中的節點數量時，新節點會向組態端點和所有其他節點自行註冊。當您從快取叢集移除節點時，離開的節點會自行取消註冊。在這兩種情況下，叢集中所有其他的節點都會使用最新的快取節點中繼資料更新。
+ 自動偵測快取節點故障，並會自動取代失敗的節點。
**注意**  
在完成更換節點之前，節點會繼續失敗。
+ 用戶端程式只需要連線到組態端點。之後，自動探索程式庫便會連線到叢集內所有其他的節點。
+ 用戶端程式會每分鐘輪詢叢集一次 (此間隔可視需要進行調整)。若叢集組態發生任何變更 (例如新增節點或刪除節點)，用戶端便會接收到更新後的中繼資料清單。然後，用戶端便會視需要連線 (或中斷連線) 到這些節點。

所有 ElastiCache Memcached 叢集都已啟用自動探索。您不需要重新啟動任何快取節點，便可使用這項功能。

# 自動探索的運作方式
<a name="AutoDiscovery.HowAutoDiscoveryWorks"></a>

**Topics**
+ [連線至快取節點](#AutoDiscovery.HowAutoDiscoveryWorks.Connecting)
+ [一般叢集操作](#AutoDiscovery.HowAutoDiscoveryWorks.NormalOps)
+ [其他操作](#AutoDiscovery.HowAutoDiscoveryWorks.OtherOps)

本節說明用戶端應用程式如何使用 ElastiCache 叢集用戶端來管理快取節點連線，以及與快取中的資料項目互動。

## 連線至快取節點
<a name="AutoDiscovery.HowAutoDiscoveryWorks.Connecting"></a>

從應用程式的觀點而言，連線到叢集組態端點與直接連線到個別快取節點沒什麼不同。以下順序圖表顯示連線到快取節點的程序。

![\[連線至快取節點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/autodiscovery_cluster_membership_refresh-diagram.png)



**連線至快取節點的程序**  

|  |  | 
| --- |--- |
|  ![\[1\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/callouts/1.png) | 應用程式解析組態端點的 DNS 名稱。因為組態端點包含所有快取節點的 CNAME 項目，DNS 名稱會解析到其中一個節點。用戶端接著便能連線到該節點。 | 
|  ![\[2\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/callouts/2.png) | 用戶端請求所有其他節點的組態資訊。因為每個節點都會維持叢集中所有節點的組態資訊，任何節點都能在請求時將組態資訊傳遞給用戶端。 | 
|  ![\[3\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/callouts/3.png) | 用戶端接收到目前快取節點主機名稱及 IP 地址的清單。然後，它便能連線到叢集中所有其他的節點。 | 



**注意**  
用戶端程式每分鐘更新快取節點主機名稱及 IP 地址的清單一次。此輪詢間隔可視需要進行調整。

## 一般叢集操作
<a name="AutoDiscovery.HowAutoDiscoveryWorks.NormalOps"></a>

應用程式連線到所有快取節點之後，ElastiCache 叢集用戶端便會判斷哪些節點應存放個別資料項目，以及稍後應對哪些節點查詢該資料項目。以下順序圖表顯示一般叢集操作的程序。

![\[一般叢集操作\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/autodiscovery_normal_cache_usage-diagram.png)



**一般叢集操作的程序**  

|  |  | 
| --- |--- |
|  ![\[1\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/callouts/1.png) | 應用程式針對個別資料項目發出 get 請求，以資料項目的鍵進行識別。 | 
|  ![\[2\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/callouts/2.png) | 用戶端針對鍵使用雜湊演算法，判斷哪個快取節點包含該資料項目。 | 
|  ![\[3\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/callouts/3.png) | 隨即從適當節點請求資料項目。 | 
|  ![\[4\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/callouts/4.png) | 資料項目傳回應用程式。 | 

## 其他操作
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps"></a>

在某些情況下，您可能會對叢集的節點進行變更。例如，您可以新增額外節點以滿足其他需求，或刪除節點以在需求減少期間節省成本。或者，您可能會因為任何節點故障而替換掉節點。

當叢集內發生變更，使中繼資料需要更新叢集的端點時，便會同時變更所有節點。因此，任何指定節點中的中繼資料都會與叢集內其他所有節點中的中繼資料保持一致。

在其中任何一種情況下，由於叢集內所有節點的中繼資料都會同時更新，因此所有節點內的中繼資料都會隨時保持一致。建議您一律使用組態端點來取得叢集內各種節點的端點。透過使用組態端點，您可以確保不會從在您面前「消失」的節點取得端點資料。

### 新增節點
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.AddNode"></a>

節點啟動期間，中繼資料內不會包含其端點。當節點可供使用時，它便會新增到每個叢集節點的中繼資料。在此案例中，所有節點內的中繼資料都會保持一致，並且您只能在新節點可供使用之後與它互動。在節點可供使用之前，您將無法得知它，並且您會以相同方式與叢集內的節點互動，就好像新節點不存在。

### 刪除節點
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.DelNode"></a>

移除節點時，會先從中繼資料移除其端點，然後再從叢集移除節點。在此案例中，所有節點內的中繼資料都會保持一致，並且不會在節點無法使用的同時包含要移除節點的端點。在移除節點期間，中繼資料內不會報告該節點，因此您的應用程式屆時只會與 n-1 個剩餘節點進行互動，宛如節點不存在。

### 取代節點
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.ReplaceNode"></a>

若節點失敗，ElastiCache 會撤下該節點，並啟用替代節點。取代程序可能需要幾分鐘。在此期間，所有節點內的中繼資料仍會顯示失敗節點的端點，但任何嘗試與該節點進行的互動都會失敗。因此，建議您的邏輯一律包含重試邏輯。

# 使用自動探索
<a name="AutoDiscovery.Using"></a>

若要開始將 Auto Discovery 與 ElastiCache for Memcached 搭配使用，請遵循下列步驟：
+ [取得組態端點](#AutoDiscovery.Using.ConfigEndpoint)
+ [下載 ElastiCache 叢集用戶端](#AutoDiscovery.Using.ClusterClient)
+ [修改您的應用程式](#AutoDiscovery.Using.ModifyApp)

## 取得組態端點
<a name="AutoDiscovery.Using.ConfigEndpoint"></a>

為了連線到叢集，用戶端程式必須知道叢集的組態端點。請參閱主題：[尋找叢集的端點 （主控台） (Memcached)](Endpoints.md#Endpoints.Find.Memcached)

您也可以使用 `aws elasticache describe-cache-clusters` 命令搭配 `--show-cache-node-info` 參數：

無論您用來尋找叢集端點的方法為何，組態端點的地址內都會一律包含 **.cfg**。

**Example 使用 AWS CLI for ElastiCache 尋找端點**  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
針對 Windows：  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
此作業會產生類似下列的輸出 (JSON 格式)：  

```
{
    "CacheClusters": [
        {
            "Engine": "memcached", 
            "CacheNodes": [
                {
                    "CacheNodeId": "0001", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0001.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1e"
                }, 
                {
                    "CacheNodeId": "0002", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0002.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1a"
                }
            ], 
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [], 
                "CacheParameterGroupName": "default.memcached1.4", 
                "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "Multiple", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-10-12T21:39:28.001Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 2, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "sat:06:00-sat:07:00", 
            "CacheNodeType": "cache.r3.large"
        }
    ]
}
```

## 下載 ElastiCache 叢集用戶端
<a name="AutoDiscovery.Using.ClusterClient"></a>

若要利用自動探索功能，用戶端程式必須使用 *ElastiCache 叢集用戶端*。ElastiCache 叢集用戶端適用於 Java、PHP 及 .NET，並包含探索及連線到所有快取節點的必要邏輯。

**下載 ElastiCache 叢集用戶端**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 從 ElastiCache 主控台中，選擇 **ElastiCache Cluster Client (ElastiCache 叢集用戶端)**，然後選擇 **Download (下載)**。

如需適用於 Java 的 ElastiCache 叢集用戶端原始碼，請前往 [https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java](https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java)。此程式庫是以熱門的 Spymemcached 用戶端為基礎。ElastiCache 叢集用戶端是根據 Amazon 軟體授權 ([https://aws.amazon.com/asl](https://aws.amazon.com/asl)) 發行。您可以視需要自由修改來源碼。您甚至可以將程式碼併入其他開放原始碼 Memcached 程式庫，或是併入您自己的用戶端程式碼。

**注意**  
若要使用適用於 PHP 的 ElastiCache 叢集用戶端，您必須先在 Amazon EC2 執行個體上安裝它。如需詳細資訊，請參閱[安裝適用於 PHP 的 ElastiCache 叢集用戶端](Appendix.PHPAutoDiscoverySetup.md)。  
若為支援 TLS 的用戶端，請下載 PHP 7.4 或更高版本的二進位檔。  
若要使用適用於 .NET 的 ElastiCache 叢集用戶端，您必須先在 Amazon EC2 執行個體上安裝它。如需詳細資訊，請參閱[安裝適用於 .NET 的 ElastiCache 叢集用戶端](Appendix.DotNETAutoDiscoverySetup.md)。

## 修改您的應用程式
<a name="AutoDiscovery.Using.ModifyApp"></a>

修改您的應用程式以使用自動探索。以下各節示範如何使用適用於 Java、PHP 及 .NET 的 ElastiCache 叢集用戶端。

**重要**  
指定叢集的組態端點時，請務必確認端點的地址內包含 ".cfg"，如以下所示。請不要使用未包含 ".cfg" 的 CNAME 或端點。  

```
"mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
```
 明確指定叢集組態端點失敗，可能會導致設定至特定節點。

# 使用適用於 Java 的 ElastiCache 叢集用戶端
<a name="AutoDiscovery.Using.ModifyApp.Java"></a>

以下程式會示範如何使用 ElastiCache 叢集用戶端連線到叢集組態端點，然後將資料項目新增到快取。使用自動探索，程式便會連線到叢集內的所有節點，而不會進行其他介入。

```
package com.amazon.elasticache;

import java.io.IOException;
import java.net.InetSocketAddress;

// Import the &AWS;-provided library with Auto Discovery support 
import net.spy.memcached.MemcachedClient;  

public class AutoDiscoveryDemo {

    public static void main(String[] args) throws IOException {
            
        String configEndpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
        Integer clusterPort = 11211;

        MemcachedClient client = new MemcachedClient(
                                 new InetSocketAddress(configEndpoint, 
                                                       clusterPort));       
        // The client will connect to the other cache nodes automatically.

        // Store a data item for an hour.  
        // The client will decide which cache host will store this item. 
        client.set("theKey", 3600, "This is the data value");
    }
}
```

# 使用適用於 PHP 的 ElastiCache 叢集用戶端
<a name="AutoDiscovery.Using.ModifyApp.PHP"></a>

以下程式會示範如何使用 ElastiCache 叢集用戶端連線到叢集組態端點，然後將資料項目新增到快取。使用自動探索，程式將會連線到叢集內的所有節點，而不會進行其他介入。

若要使用適用於 PHP 的 ElastiCache 叢集用戶端，您必須先在 Amazon EC2 執行個體上安裝它。如需詳細資訊，請參閱[安裝適用於 PHP 的 ElastiCache 叢集用戶端](Appendix.PHPAutoDiscoverySetup.md)

```
<?php
	
 /**
  * Sample PHP code to show how to integrate with the Amazon ElastiCache
  * Auto Discovery feature.
  */

  /* Configuration endpoint to use to initialize memcached client. 
   * This is only an example. 	*/
  $server_endpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
  
  /* Port for connecting to the ElastiCache cluster. 
   * This is only an example 	*/
  $server_port = 11211;

 /**
  * The following will initialize a Memcached client to utilize the Auto Discovery feature.
  * 
  * By configuring the client with the Dynamic client mode with single endpoint, the
  * client will periodically use the configuration endpoint to retrieve the current cache
  * cluster configuration. This allows scaling the cluster up or down in number of nodes
  * without requiring any changes to the PHP application. 
  *
  * By default the Memcached instances are destroyed at the end of the request. 
  * To create an instance that persists between requests, 
  *    use persistent_id to specify a unique ID for the instance. 
  * All instances created with the same persistent_id will share the same connection. 
  * See [http://php.net/manual/en/memcached.construct.php](http://php.net/manual/en/memcached.construct.php) for more information.
  */
  $dynamic_client = new Memcached('persistent-id');
  $dynamic_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_MODE);
  $dynamic_client->addServer($server_endpoint, $server_port);
  
  /**
  * Store the data for 60 seconds in the cluster. 
  * The client will decide which cache host will store this item.
  */  
  $dynamic_client->set('key', 'value', 60);  


 /**
  * Configuring the client with Static client mode disables the usage of Auto Discovery
  * and the client operates as it did before the introduction of Auto Discovery. 
  * The user can then add a list of server endpoints.
  */
  $static_client = new Memcached('persistent-id');
  $static_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::STATIC_CLIENT_MODE);
  $static_client->addServer($server_endpoint, $server_port);

 /**
  * Store the data without expiration. 
  * The client will decide which cache host will store this item.
  */  
  $static_client->set('key', 'value');  
  ?>
```

如需如何使用已啟用 TLS 的 ElastiCache 叢集用戶端範例，請參閱[使用傳輸中加密搭配 PHP 和 Memcached](in-transit-encryption.md#in-transit-encryption-connect-php-mc)。

# 使用適用於 .NET 的 ElastiCache 叢集用戶端
<a name="AutoDiscovery.Using.ModifyApp.DotNET"></a>

**注意**  
自 2022 年 5 月起，已淘汰 ElastiCache .NET 叢集用戶端。

適用於 ElastiCache 的 .NET 用戶端為開放原始碼資源，位於 [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net)。

 .NET 應用程式通常會從其組態檔取得組態。以下是範例應用程式組態檔。

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section 
            name="clusterclient" 
            type="Amazon.ElastiCacheCluster.ClusterConfigSettings, Amazon.ElastiCacheCluster" />
    </configSections>

    <clusterclient>
        <!-- the hostname and port values are from step 1 above -->
        <endpoint hostname="mycluster.fnjyzo.cfg.use1.cache.amazonaws.com" port="11211" />
    </clusterclient>
</configuration>
```

以下 C\$1 程式示範如何使用 ElastiCache 叢集用戶端連線到叢集組態端點，然後將資料項目新增到快取。使用自動探索，程式將會連線到叢集內的所有節點，而不會進行其他介入。

```
// *****************
// Sample C# code to show how to integrate with the Amazon ElastiCcache Auto Discovery feature.

using System;

using Amazon.ElastiCacheCluster;

using Enyim.Caching;
using Enyim.Caching.Memcached;

public class DotNetAutoDiscoveryDemo  {

    public static void Main(String[] args)  {
    
        // instantiate a new client.
        ElastiCacheClusterConfig config = new ElastiCacheClusterConfig();
        MemcachedClient memClient = new MemcachedClient(config);
        
        // Store the data for 3600 seconds (1hour) in the cluster. 
        // The client will decide which cache host will store this item.
        memClient.Store(StoreMode.Set, 3600, "This is the data value.");
        
    }  // end Main
    
}  // end class DotNetAutoDiscoverDemo
```

# 手動連線至 Memcached 快取節點
<a name="AutoDiscovery.Manual"></a>

如果您的用戶端程式不使用 Auto Discovery，則可以手動連線到每個 Memcached 快取節點。這是 Memcached 用戶端的預設行為。

您可以從 [AWS管理主控台](https://aws.amazon.com/console/)取得快取節點主機名稱及連接埠號碼的清單。您也可以使用AWS CLI`aws elasticache describe-cache-clusters`命令搭配 `--show-cache-node-info` 參數。

**Example**  
下列 Java 程式碼片段示範如何連線到四節點叢集中的所有節點：  

```
...

ArrayList<String> cacheNodes = new ArrayList<String>(
	Arrays.asList(
	    "mycachecluster.fnjyzo.0001.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0002.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0003.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0004.use1.cache.amazonaws.com:11211"));
	      
MemcachedClient cache = new MemcachedClient(AddrUtil.getAddresses(cacheNodes));

...
```

**重要**  
如果您透過新增或移除節點來擴展或縮減叢集，則需要更新用戶端程式碼中的節點清單。

# 將自動探索新增至 Memcached 用戶端程式庫
<a name="AutoDiscovery.AddingToYourClientLibrary"></a>

Auto Discovery 的組態資訊會以備援方式存放在每個 Memcached 叢集節點中。用戶端應用程式可查詢任何快取節點，並取得叢集內所有節點的組態資訊。

應用程式執行此作業的方式取決於快取引擎版本：
+ 若快取引擎版本為 **1.4.14 或更高版本**，請使用 `config` 命令。
+ 若快取引擎版本**低於 1.4.14**，請使用 `get AmazonElastiCache:cluster` 命令。

這兩個命令的輸出完全相同，並且會在以下的[輸出格式](#AutoDiscovery.AddingToYourClientLibrary.OutputFormat)一節中說明。

## 快取引擎版本 1.4.14 或更新版本
<a name="AutoDiscovery.AddingToYourClientLibrary.1-4-14-plus"></a>

針對 1.4.14 或更高的快取引擎版本，請使用 `config` 命令。此命令已新增到 ElastiCache 的 Memcached ASCII 及二進位通訊協定中，並且已在 ElastiCache 叢集用戶端中實作。若您希望搭配其他用戶端程式庫使用自動探索，該程式庫必須進行擴充以支援 `config` 命令。

**注意**  
以下文件適用於 ASCII 通訊協定。但是，`config` 命令同時支援 ASCII 及二進位。若您希望新增支援使用二進位通訊協定的自動探索功能，請參閱 [ElastiCache 叢集用戶端的原始碼](https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java/tree/master/src/main/java/net/spy/memcached/protocol/binary)。

**語法**

`config [sub-command] [key]`

### 選項
<a name="AutoDiscovery.AddingToYourClientLibrary.1-4-14-plus.Options"></a>


| 名稱 | 描述 | 必要 | 
| --- | --- | --- | 
| sub-command |  用來與快取節點互動的子命令。針對自動探索，此子命令為 `get`。  | 是 | 
| key |  鍵名稱，叢集組態會存放在該鍵之下。針對自動探索，此鍵名為 `cluster`。  | 是 | 

若要取得叢集組態資訊，請使用以下命令：

```
config get cluster
```

## 快取引擎 1.4.14 版或更低版本
<a name="AutoDiscovery.AddingToYourClientLibrary.pre-1-4-14"></a>

若要取得叢集組態資訊，請使用以下命令：

```
get AmazonElastiCache:cluster
```

**注意**  
請勿竄改 "AmazonElastiCache:cluster" 鍵，因為這是保存叢集組態資訊的位置。若您覆寫了此鍵，則不正確的用戶端設定可能持續短暫的期間 (不超過 15 秒)，之後 ElastiCache 便會自動並正確地更新組態資訊。

## 輸出格式
<a name="AutoDiscovery.AddingToYourClientLibrary.OutputFormat"></a>

無論您使用 `config get cluster` 或 `get AmazonElastiCache:cluster`，回應都由兩行文字組成：
+ 組態資訊的版本編號。每次從叢集新增或移除節點時，版本編號都會增加 1。
+ 快取節點的清單。清單中的每個節點都會以 *hostname\$1ip-address\$1port* 群組表示，並且每個節點都會以一個空格分隔。

歸位字元和換行字元 (CR \$1 LF) 會出現在每一行的結尾。資料行的結尾包含一個換行字元 (LF)，CR \$1 LF 會新增到該處。組態版本行會以不帶 CR 的 LF 終止。

包含三個節點的叢集將如下所示：

```
configversion\n
hostname|ip-address|port hostname|ip-address|port hostname|ip-address|port\n\r\n
```

每個節點都會同時顯示 CNAME 及私有 IP 地址。CNAME 一律會存在。若私有 IP 地址無法使用，便不會顯示。但是，仍會印出管道字元 "`|`"。

**Example**  
以下是當您查詢組態資訊時，所傳回承載的範例：  

```
CONFIG cluster 0 136\r\n
12\n
myCluster.pc4ldq.0001.use1.cache.amazonaws.com|10.82.235.120|11211 myCluster.pc4ldq.0002.use1.cache.amazonaws.com|10.80.249.27|11211\n\r\n 
END\r\n
```

**注意**  
第二行指出組態資訊至今已經過修改十二次。
在第三行中，節點清單是以主機名稱的字母順序排序。此順序的排列方式可能會跟您目前於用戶端應用程式中使用的順序不同。

# 具有自動探索功能的 ElastiCache 用戶端
<a name="Clients"></a>

叢集用戶端程式可以自動識別並連線至執行 Memcached 引擎的所有叢集節點。

本節討論如何安裝和設定 ElastiCache PHP 和 .NET 用戶端以搭配自動探索使用。

**Topics**
+ [安裝及編譯叢集用戶端](Appendix.InstallingClients.md)
+ [設定 ElastiCache 用戶端](ClientConfig.md)

# 安裝及編譯叢集用戶端
<a name="Appendix.InstallingClients"></a>

本節介紹安裝、設定及編譯 PHP 和 .NET Amazon ElastiCache 自動探索叢集用戶端的內容。

**Topics**
+ [安裝適用於 .NET 的 ElastiCache 叢集用戶端](Appendix.DotNETAutoDiscoverySetup.md)
+ [安裝適用於 PHP 的 ElastiCache 叢集用戶端](Appendix.PHPAutoDiscoverySetup.md)
+ [編譯適用於 PHP 的 ElastiCache 叢集用戶端原始碼](Appendix.PHPAutoDiscoveryCompile.md)

# 安裝適用於 .NET 的 ElastiCache 叢集用戶端
<a name="Appendix.DotNETAutoDiscoverySetup"></a>

適用於 ElastiCache .NET 叢集用戶端的程式碼為開放原始碼，如有需要請前往 [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net)。

本節說明如何在 Amazon EC2 執行個體上安裝、更新及移除適用於 ElastiCache 叢集用戶端的 .NET 元件。如需自動探索的詳細資訊，請參閱[自動識別叢集中的節點 (Memcached)](AutoDiscovery.md)。如需使用用戶端的範例 .NET 程式碼，請參閱[使用適用於 .NET 的 ElastiCache 叢集用戶端](AutoDiscovery.Using.ModifyApp.DotNET.md)。

**Topics**
+ [安裝 .NET](#Appendix.DotNETAutoDiscoverySetup.DotNET)
+ [下載適用於 ElastiCache 的 ElastiCache .NET 叢集用戶端](#Appendix.DotNETAutoDiscoverySetup.Downloading)
+ [使用 NuGet 安裝 AWS 組件](#Appendix.DotNETAutoDiscoverySetup.Installing)

## 安裝 .NET
<a name="Appendix.DotNETAutoDiscoverySetup.DotNET"></a>

您必須安裝 .NET 3.5 或更新版本，才能使用適用於 ElastiCache 的 AWS .NET 開發套件。如果您未安裝 .NET 3.5 或更新版本，您可以從 [http://www.microsoft.com/net](http://www.microsoft.com/net) 下載及安裝最新版本。

## 下載適用於 ElastiCache 的 ElastiCache .NET 叢集用戶端
<a name="Appendix.DotNETAutoDiscoverySetup.Downloading"></a>

**下載 ElastiCache .NET 叢集用戶端**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格上，按一下 **ElastiCache Cluster Client (ElastiCache 叢集用戶端)**。

1. 在 **Download ElastiCache Memcached Cluster Client (下載 ElastiCache Memcached 叢集用戶端)** 清單中，選取 **.NET**，然後按一下 **Download (下載)。**

## 使用 NuGet 安裝 AWS 組件
<a name="Appendix.DotNETAutoDiscoverySetup.Installing"></a>

NuGet 是適用於 .NET 平台的套件管理系統。NuGet 知道組件的依存性，並會自動安裝所需的檔案。NuGet 安裝的組件會與您的解決方案一同存放，而非位於一個中央位置 (例如 `Program Files`)。這可讓您安裝應用程式的特定組件版本，而不會產生相容性問題。

### 安裝 NuGet
<a name="Appendix.DotNETAutoDiscoverySetup.Installing.NuGet"></a>

NuGet 可從 MSDN 上的安裝資源庫安裝。請參閱 [https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c](https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c)。若您使用 Visual Studio 2010 或更新版本，NuGet 便已自動安裝。

您可以從 **Solution Explorer (方案總管)** 或 **Package Manager Console (套件管理員主控台)** 使用 NuGet。

### 從方案總管使用 NuGet
<a name="Appendix.DotNETAutoDiscoverySetup.NuGet.SolutionExplorer"></a>

**在 Visual Studio 2010 中從方案總管使用 NuGet**

1. 從 **Tools (工具)** 選單，選取 **Library Package Manager (程式庫套件管理員)**。

1. 按一下 **Package Manager Console (套件管理員主控台)**。

**在 Visual Studio 2012 或 Visual Studio 2013 中從方案總管使用 NuGet**

1. 從 **Tools (工具)** 選單，選取 **NuGet Package Manager (NuGet 套件管理員)**。

1. 按一下 **Package Manager Console (套件管理員主控台)**。

從命令列，您可以使用 `Install-Package` 安裝組件，如下所示。

```
Install-Package Amazon.ElastiCacheCluster
```

若要查看透過 NuGet 提供的每個套件的頁面，例如 AWS SDK 和 AWS.Extensions 組件，請參閱 NuGet 網站 https：//[http://www.nuget.org](http://www.nuget.org)。每個套件的頁面都包含一個使用主控台安裝套件的範例命令列，以及一份可透過 NuGet 取得的先前版本套件清單。

如需 **Package Manager Console (套件管理員主控台)** 命令的詳細資訊，請參閱 [http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29](http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29)。

# 安裝適用於 PHP 的 ElastiCache 叢集用戶端
<a name="Appendix.PHPAutoDiscoverySetup"></a>

本節說明如何在 Amazon EC2 執行個體上安裝、更新及移除適用於 ElastiCache 叢集用戶端的 PHP 元件。如需自動探索的詳細資訊，請參閱[自動識別叢集中的節點 (Memcached)](AutoDiscovery.md)。如需要使用用戶端的範例 PHP 程式碼，請參閱[使用適用於 PHP 的 ElastiCache 叢集用戶端](AutoDiscovery.Using.ModifyApp.PHP.md)。

**Topics**
+ [下載安裝套件](Appendix.PHPAutoDiscoverySetup.Downloading.md)
+ [針對已安裝 *php-memcached* 延伸的使用者](#Appendix.PHPAutoDiscoverySetup.InstallingExisting)
+ [新使用者的安裝步驟](Appendix.PHPAutoDiscoverySetup.Installing.md)
+ [移除 PHP 叢集用戶端](Appendix.PHPAutoDiscoverySetup.Removing.md)

# 下載安裝套件
<a name="Appendix.PHPAutoDiscoverySetup.Downloading"></a>

為了確保所使用之適用於 PHP 的 ElastiCache 叢集用戶端是正確版本，您必須知道 Amazon EC2 執行個體上安裝的 PHP 版本。您還必須知道 Amazon EC2 執行個體是在 64 位元還是 32 位元版本的 Linux 上執行。

**判斷 Amazon EC2 執行個體上安裝的 PHP 版本**
+ 在命令提示中，執行下列命令：

  ```
  php -v
  ```

  PHP 版本將顯示在輸出中，如下列範例所示：

  ```
  PHP 5.4.10 (cli) (built: Jan 11 2013 14:48:57) 
  Copyright (c) 1997-2012 The PHP Group
  Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
  ```
**注意**  
如果 PHP 與 Memcached 版本不相容，您將收到類似下列內容的錯誤訊息：  

  ```
  PHP Warning: PHP Startup: memcached: Unable to initialize module
  Module compiled with module API=20100525
  PHP compiled with module API=20131226
  These options need to match
  in Unknown on line 0
  ```
如果發生這種情況，您需要從來源碼編譯模組。如需詳細資訊，請參閱[編譯適用於 PHP 的 ElastiCache 叢集用戶端原始碼](Appendix.PHPAutoDiscoveryCompile.md)。

**判斷 Amazon EC2 AMI 架構 (64 位元或 32 位元)**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 在 **Instances (執行個體)** 清單中，按一下 Amazon EC2 執行個體。

1. 在 **Description (描述)** 標籤中，查看 **AMI: (AMI：)** 欄位。64 位元執行個體應該使用 `x86_64` 做為描述的一部分；若為 32 位元執行個體，請在此欄位中尋找 `i386` 或 `i686`。

您現在可以下載 ElastiCache 叢集用戶端。

**下載適用於 PHP 的 ElastiCache 叢集用戶端**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從 ElastiCache 主控台選擇 **ElastiCache 叢集用戶端**。

1. 從 **Download ElastiCache Memcached Cluster Client (下載 ElastiCache Memcached 叢集用戶端**) 清單中，選擇符合您 PHP 版本和 AMI 架構的 ElastiCache 叢集用戶端，然後選擇 **Download (下載)** 按鈕。

## 針對已安裝 *php-memcached* 延伸的使用者
<a name="Appendix.PHPAutoDiscoverySetup.InstallingExisting"></a>

**更新 `php-memcached` 安裝**

1. 移除先前安裝之適用於 PHP 的 Memcached 延伸，如[移除 PHP 叢集用戶端](Appendix.PHPAutoDiscoverySetup.Removing.md)主題所述。

1. 安裝新的 ElastiCache `php-memcached` 延伸，如先前「[新使用者的安裝步驟](Appendix.PHPAutoDiscoverySetup.Installing.md)」中所述。

# 新使用者的安裝步驟
<a name="Appendix.PHPAutoDiscoverySetup.Installing"></a>

**Topics**
+ [為新使用者安裝 PHP 7.x](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x)
+ [為新使用者安裝 PHP 5.x](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x)

## 為新使用者安裝 PHP 7.x
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x"></a>

**Topics**
+ [在 Ubuntu 伺服器 14.04 LTS AMI (64 位元和 32 位元） 上安裝 PHP 7](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu)
+ [在 Amazon Linux 201609 AMI 上安裝 PHP 7](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux)
+ [在 SUSE Linux AMI 上安裝 PHP 7](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux)

### 在 Ubuntu 伺服器 14.04 LTS AMI (64 位元和 32 位元） 上安裝 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu"></a>

1. 從 AMI 啟動新的執行個體。

1. 執行下列命令：

   ```
   sudo apt-get update
   sudo apt-get install gcc g++
   ```

1. 安裝 PHP 7。

   ```
   sudo yum install php70
   ```

1. 下載 Amazon ElastiCache 叢集用戶端。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. 將 `latest-64bit` 解壓縮。

   ```
   tar -zxvf latest-64bit
   ```

1. 使用 root 許可，將解壓縮的成品檔案 `amazon-elasticache-cluster-client.so` 複製到 `/usr/lib/php/20151012`。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib/php/20151012
   ```

1. 將 `extension=amazon-elasticache-cluster-client.so` 這一行插入到 `/etc/php/7.0/cli/php.ini` 檔案。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php/7.0/cli/php.ini
   ```

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 Amazon Linux 201609 AMI 上安裝 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux"></a>

1. 從 AMI 啟動新的執行個體。

1. 執行以下命令：

   ```
   sudo yum install gcc-c++
   ```

1. 安裝 PHP 7。

   ```
   sudo yum install php70
   ```

1. 下載 Amazon ElastiCache 叢集用戶端。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. 將 `latest-64bit` 解壓縮。

   ```
   tar -zxvf latest-64bit
   ```

1. 使用 root 許可，將解壓縮的成品檔案 `amazon-elasticache-cluster-client.so` 複製到 `/usr/lib64/php/7.0/modules/`。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php/7.0/modules/
   ```

1. 建立 `50-memcached.ini` 檔案。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php-7.0.d/50-memcached.ini
   ```

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 SUSE Linux AMI 上安裝 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux"></a>

1. 從 AMI 啟動新的執行個體。

1. 執行以下命令：

   ```
   sudo zypper install gcc
   ```

1. 安裝 PHP 7。

   ```
   sudo yum install php70
   ```

1. 下載 Amazon ElastiCache 叢集用戶端。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. 將 `latest-64bit` 解壓縮。

   ```
   tar -zxvf latest-64bit
   ```

1. 使用 root 許可，將解壓縮的成品檔案 `amazon-elasticache-cluster-client.so` 複製到 `/usr/lib64/php7/extensions/`。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php7/extensions/
   ```

1. 將 `extension=amazon-elasticache-cluster-client.so` 這一行插入到 `/etc/php7/cli/php.ini` 檔案。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php7/cli/php.ini
   ```

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

## 為新使用者安裝 PHP 5.x
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x"></a>

**Topics**
+ [在 Amazon Linux AMI 2014.03 (64 位元及 32 位元) 上安裝 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux)
+ [在 Red Hat Enterprise Linux 7.0 AMI (64 位元及 32 位元) 上安裝 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL)
+ [在 Ubuntu Server 14.04 LTS AMI (64 位元及 32 位元) 上安裝 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu)
+ [為 SUSE Linux Enterprise Server 11 AMI (64 位元或 32 位元) 安裝 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux)
+ [其他 Linux 發行版本](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other)

### 在 Amazon Linux AMI 2014.03 (64 位元及 32 位元) 上安裝 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux"></a>

1. 啟動 Amazon Linux 執行個體 (64 位元或 32 位元)，並登入其中。

1. 安裝 PHP 相依性：

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. 下載適用於您 Amazon EC2 執行個體和 PHP 版本的正確 `php-memcached` 套件。如需詳細資訊，請參閱[下載安裝套件](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安裝 `php-memcached`。URI 應該是安裝套件的下載路徑：

   ```
   sudo pecl install <package download path>
   ```

   以下是 PHP 5.4、64 位元 Linux 的範例安裝命令。在此範例中，將 *X.Y.Z* 取代為實際版本號碼：

   ```
   sudo pecl install /home/AmazonElastiCacheClusterClient-X.Y.Z-PHP54-64bit.tgz
   ```
**注意**  
務必使用安裝成品的最新版本。

1. 使用 root/sudo 許可，在 `/etc/php.d` 目錄中新增名為 `memcached.ini` 的新檔案，並在該檔案中插入 "extension=amazon-elasticache-cluster-client.so"：

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php.d/memcached.ini
   ```

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 Red Hat Enterprise Linux 7.0 AMI (64 位元及 32 位元) 上安裝 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL"></a>

1. 啟動 Red Hat Enterprise Linux 執行個體 (64 位元或 32 位元)，並登入其中。

1. 安裝 PHP 相依性：

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. 下載適用於您 Amazon EC2 執行個體和 PHP 版本的正確 `php-memcached` 套件。如需詳細資訊，請參閱[下載安裝套件](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安裝 `php-memcached`。URI 應該是安裝套件的下載路徑：

   ```
   sudo pecl install <package download path>
   ```

1. 使用 root/sudo 許可，在 `/etc/php.d` 目錄中新增名為 `memcached.ini` 的新檔案，並在該檔案中插入 `extension=amazon-elasticache-cluster-client.so`。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php.d/memcached.ini
   ```

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 Ubuntu Server 14.04 LTS AMI (64 位元及 32 位元) 上安裝 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu"></a>

1. 啟動 Ubuntu Linux 執行個體 (64 位元或 32 位元)，並登入其中。

1. 安裝 PHP 相依性：

   ```
   sudo apt-get update 
   sudo apt-get install gcc g++ php5 php-pear
   ```

1. 下載適用於您 Amazon EC2 執行個體和 PHP 版本的正確 `php-memcached` 套件。如需詳細資訊，請參閱[下載安裝套件](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安裝 `php-memcached`。URI 應該是安裝套件的下載路徑。

   ```
   sudo pecl install <package download path>
   ```
**注意**  
此安裝步驟會將建置成品 `amazon-elasticache-cluster-client.so` 安裝到 `/usr/lib/php5/20121212*` 目錄。驗證組建成品的絕對路徑，因為您在下一個步驟中需要它。

   如果上一個命令無法運作，您需要從下載的 `*.tgz` 檔案以手動方式解壓縮 PHP 用戶端成品 `amazon-elasticache-cluster-client.so`，並將其複製到 `/usr/lib/php5/20121212*` 目錄。

   ```
   tar -xvf <package download path>
   cp amazon-elasticache-cluster-client.so /usr/lib/php5/20121212/
   ```

1. 使用 root/sudo 許可，在 `/etc/php5/cli/conf.d` 目錄中新增名為 `memcached.ini` 的新檔案，並在該檔案中插入 "extension=<amazon-elasticache-cluster-client.so 的絕對路徑>"。

   ```
   echo "extension=<absolute path to amazon-elasticache-cluster-client.so>" | sudo tee --append /etc/php5/cli/conf.d/memcached.ini
   ```

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 為 SUSE Linux Enterprise Server 11 AMI (64 位元或 32 位元) 安裝 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux"></a>

1. 啟動 SUSE Linux 執行個體 (64 位元或 32 位元)，並登入其中。

1. 安裝 PHP 相依性：

   ```
   sudo zypper install gcc php53-devel
   ```

1. 下載適用於您 Amazon EC2 執行個體和 PHP 版本的正確 `php-memcached` 套件。如需詳細資訊，請參閱[下載安裝套件](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安裝 `php-memcached`。URI 應該是安裝套件的下載路徑。

   ```
   sudo pecl install <package download path>
   ```

1. 使用 root/sudo 許可，在 `/etc/php5/conf.d` 目錄中新增名為 `memcached.ini` 的新檔案，並在該檔案中插入 **extension=`amazon-elasticache-cluster-client.so`**。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php5/conf.d/memcached.ini
   ```

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

**注意**  
如果步驟 5 對先前的任何平台沒有作用，請驗證 `amazon-elasticache-cluster-client.so` 的安裝路徑。同時，請指定延伸中二進位檔的完整路徑。此外，請驗證使用中的 PHP 是支援的版本。我們支援 5.3 版到 5.5 版。

 

### 其他 Linux 發行版本
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other"></a>

在某些系統上 (特別是 CentOS7 及 Red Hat Enterprise Linux (RHEL) 7.1)，`libsasl2.so.3` 已取代 `libsasl2.so.2`。在這些系統上，當您載入 ElastiCache 叢集用戶端時，它會嘗試尋找並載入 `libsasl2.so.2`，但這項嘗試失敗。若要解決此問題，請建立指向 `libsasl2.so.3` 的符號連結，以便在用戶端嘗試載入 libsasl2.so.2 時，將其重新導向至 `libsasl2.so.3`。下列程式碼會建立此符號連結。

```
cd /usr/lib64
sudo ln libsasl2.so.3 libsasl2.so.2
```

# 移除 PHP 叢集用戶端
<a name="Appendix.PHPAutoDiscoverySetup.Removing"></a>

**Topics**
+ [移除舊版的 PHP 7](#Appendix.PHPAutoDiscoverySetup.Removing.PHP7x)
+ [移除舊版的 PHP 5](#Appendix.PHPAutoDiscoverySetup.Removing.PHP5x)

## 移除舊版的 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP7x"></a>

**移除舊版的 PHP 7**

1. 從適當的 PHP lib 目錄中移除 `amazon-elasticache-cluster-client.so` 檔案，如之前在安裝指示中所述。請參閱[針對已安裝 *php-memcached* 延伸的使用者](Appendix.PHPAutoDiscoverySetup.md#Appendix.PHPAutoDiscoverySetup.InstallingExisting)中您的安裝所適用章節。

1. 從 `php.ini` 檔案中移除 `extension=amazon-elasticache-cluster-client.so` 這一行。

1. 啟動或重新啟動您的 Apache 伺服器。

   ```
   sudo /etc/init.d/httpd start
   ```

## 移除舊版的 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP5x"></a>

**移除舊版的 PHP 5**

1. 移除 `php-memcached` 延伸：

   ```
   sudo pecl uninstall __uri/AmazonElastiCacheClusterClient
   ```

1.  移除適當目錄中所新增的 `memcached.ini` 檔案，如先前安裝步驟中所述。

# 編譯適用於 PHP 的 ElastiCache 叢集用戶端原始碼
<a name="Appendix.PHPAutoDiscoveryCompile"></a>

本節說明如何取得及編譯適用於 PHP 的 ElastiCache 叢集用戶端之原始碼。

您需要從 GitHub 提取兩個套件並進行編譯：[aws-elasticache-cluster-client-libmemcached](https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached) 及 [aws-elasticache-cluster-client-memcached-for-php](https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php)。

**Topics**
+ [編譯 libmemcached 程式庫](#Appendix.PHPAutoDiscoveryCompile.Libmemcached)
+ [編譯適用於 PHP 的 ElastiCache Memcached 自動探索用戶端](#Appendix.PHPAutoDiscoveryCompile.Client)

## 編譯 libmemcached 程式庫
<a name="Appendix.PHPAutoDiscoveryCompile.Libmemcached"></a>

**編譯 aws-elasticache-cluster-client-libmemcached 程式庫**

1. 啟動 Amazon EC2 執行個體。

1. 安裝程式庫的依存項目。
   + Amazon Linux 201509 AMI

     ```
     sudo yum install gcc gcc-c++ autoconf libevent-devel
     ```
   + Ubuntu 14.04 AMI

     ```
     sudo apt-get update
     sudo apt-get install libevent-dev gcc g++ make autoconf libsasl2-dev
     ```

1. 提取儲存庫並編譯程式碼。

   ```
   Download and install [ https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz]( https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz)
   ```

## 編譯適用於 PHP 的 ElastiCache Memcached 自動探索用戶端
<a name="Appendix.PHPAutoDiscoveryCompile.Client"></a>

以下各節說明如何編譯 ElastiCache Memcached 自動探索用戶端

**Topics**
+ [編譯適用於 PHP 7 的 ElastiCache Memcached 用戶端](#Appendix.PHPAudiscoveryCompile.Client.PHP7)
+ [編譯適用於 PHP 5 的 ElastiCache Memcached 用戶端](#Appendix.PHPAudiscoveryCompile.PHP5)

### 編譯適用於 PHP 7 的 ElastiCache Memcached 用戶端
<a name="Appendix.PHPAudiscoveryCompile.Client.PHP7"></a>

在程式碼目錄下執行以下命令組。

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
git checkout php7
sudo yum install php70-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory> --disable-memcached-sasl
make
make install
```

**注意**  
您可以將 libmemcached 程式庫靜態連結至 PHP 二進位檔，讓它可以在各種 Linux 平台間移植。若要執行此作業，請在 `make` 前執行以下命令：  

```
sed -i "s#-lmemcached#<libmemcached-install-directory>/lib/libmemcached.a -lcrypt -lpthread -lm -lstdc++ -lsasl2#" Makefile 
```

### 編譯適用於 PHP 5 的 ElastiCache Memcached 用戶端
<a name="Appendix.PHPAudiscoveryCompile.PHP5"></a>

透過在 `aws-elasticache-cluster-client-memcached-for-php/` 資料夾下執行以下命令，來編譯 `aws-elasticache-cluster-client-memcached-for-php`。

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
sudo yum install zlib-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory>
make
make install
```

# 設定 ElastiCache 用戶端
<a name="ClientConfig"></a>

ElastiCache 叢集符合 Valkey、Memcached 和 Redis OSS 的通訊協定。您目前與現有環境搭配使用的程式碼、應用程式和最熱門的工具，將能順暢地與服務搭配使用。

本節討論連線到 ElastiCache 中快取節點的具體考量事項。

**Topics**
+ [受限制的命令](ClientConfig.RestrictedCommands.md)
+ [尋找節點端點及連接埠號碼](ClientConfig.FindingEndpointsAndPorts.md)
+ [進行連線以使用自動探索](ClientConfig.AutoDiscovery.md)
+ [連線至 Valkey 或 Redis OSS 叢集中的節點](ClientConfig.ReplicationGroup.md)
+ [DNS 名稱與基礎 IP](ClientConfig.DNS.md)

# 受限制的命令
<a name="ClientConfig.RestrictedCommands"></a>

為了提供受管服務體驗，ElastiCache 會限制存取某些需要進階權限的快取引擎特定命令。對於執行 Redis OSS 的叢集，無法使用下列命令：
+ `bgrewriteaof`
+ `bgsave`
+ `config`
+ `debug`
+ `migrate`
+ `replicaof`
+ `save`
+ `slaveof`
+ `shutdown`
+ `sync`

# 尋找節點端點及連接埠號碼
<a name="ClientConfig.FindingEndpointsAndPorts"></a>

若要連線到快取節點，您的應用程式需要知道該節點的端點及連接埠號碼。

## 尋找節點端點及連接埠號碼 (主控台)
<a name="ClientConfig.FindingEndpointsAndPorts.CON"></a>

 **判斷節點端點和連接埠號碼** 

1. 登入 [Amazon ElastiCache 管理主控台](https://aws.amazon.com/elasticache)，並選擇在您叢集上執行的引擎。

   接著會出現執行所選擇引擎的所有叢集清單。

1. 在您執行的引擎和組態下繼續。

1. 選擇您有興趣的叢集名稱。

1. 尋找您有興趣節點的 **Port (連接埠)** 及 **Endpoint (端點)** 欄。

## 尋找快取節點端點及連接埠號碼 (AWS CLI)
<a name="ClientConfig.FindingEndpointsAndPorts.CLI"></a>

若要判斷快取節點端點和連接埠號碼，請搭配 `--show-cache-node-info` 參數使用 `describe-cache-clusters` 命令。

```
aws elasticache describe-cache-clusters --show-cache-node-info 
```

完整 DNS 名稱和連接埠號碼會位於輸出的 Endpoint (端點) 區段。

## 尋找快取節點端點及連接埠號碼 (ElastiCache API)
<a name="ClientConfig.FindingEndpointsAndPorts.API"></a>

若要判斷快取節點端點和連接埠號碼，請搭配 `ShowCacheNodeInfo=true` 參數使用 `DescribeCacheClusters` 動作。

**Example**  

```
 1. https://elasticache.us-west-2.amazonaws.com /
 2.     ?Action=DescribeCacheClusters
 3.     &ShowCacheNodeInfo=true
 4.     &SignatureVersion=4
 5.     &SignatureMethod=HmacSHA256
 6.     &Timestamp=20140421T220302Z
 7.     &Version=2014-09-30   
 8.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
 9.     &X-Amz-Credential=<credential>
10.     &X-Amz-Date=20140421T220302Z
11.     &X-Amz-Expires=20140421T220302Z
12.     &X-Amz-Signature=<signature>
13.     &X-Amz-SignedHeaders=Host
```

# 進行連線以使用自動探索
<a name="ClientConfig.AutoDiscovery"></a>

若您的應用程式使用自動探索，您只需要知道叢集的組態端點，而無須知道每個快取節點的個別端點。如需詳細資訊，請參閱[自動識別叢集中的節點 (Memcached)](AutoDiscovery.md)。

**注意**  
目前，Auto Discovery 僅適用於執行 Memcached 的叢集。

# 連線至 Valkey 或 Redis OSS 叢集中的節點
<a name="ClientConfig.ReplicationGroup"></a>

**注意**  
目前，支援複寫和僅供讀取複本的叢集 (API/CLI：複寫群組） 僅支援執行 Valkey 或 Redis OSS 的叢集。

針對叢集，ElastiCache 提供主控台、CLI 及 API 界面來取得個別節點的連線資訊。

針對唯讀活動，應用程式可連線到叢集中的任何節點。不過，對於寫入活動，我們建議您的應用程式連接到叢集的主要端點 (Valkey 或 Redis OSS （停用叢集模式）) 或組態端點 (Valkey 或 Redis OSS （啟用叢集模式）)，而不是直接連接到節點。這可確保您的應用程式總能找到正確的節點，即使您決定透過將僅供讀取複本提升到主要角色來重新設定叢集也一樣。

## 連線到複寫群組中的叢集 (主控台)
<a name="ClientConfig.ReplicationGroup.CON"></a>

**判斷端點和連接埠號碼**
+ 請參閱主題：[尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)。

## 連線到複寫群組中的叢集 (AWS CLI)
<a name="ClientConfig.ReplicationGroup.CLI"></a>

 **判斷快取節點端點和連接埠號碼**

搭配您複寫群組的名稱，使用 `describe-replication-groups` 命令：

```
aws elasticache describe-replication-groups redis2x2
```

此命令應該產生類似下列的輸出：

```
{
    "ReplicationGroups": [
        {
            "Status": "available", 
            "Description": "2 shards, 2 nodes (1 + 1 replica)", 
            "NodeGroups": [
                {
                    "Status": "available", 
                    "Slots": "0-8191", 
                    "NodeGroupId": "0001", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2c", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0001-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0001-002"
                        }
                    ]
                }, 
                {
                    "Status": "available", 
                    "Slots": "8192-16383", 
                    "NodeGroupId": "0002", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2b", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0002-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0002-002"
                        }
                    ]
                }
            ], 
            "ConfigurationEndpoint": {
                "Port": 6379, 
                "Address": "redis2x2.9dcv5r.clustercfg.usw2.cache.amazonaws.com"
            }, 
            "ClusterEnabled": true, 
            "ReplicationGroupId": "redis2x2", 
            "SnapshotRetentionLimit": 1, 
            "AutomaticFailover": "enabled", 
            "SnapshotWindow": "13:00-14:00", 
            "MemberClusters": [
                "redis2x2-0001-001", 
                "redis2x2-0001-002", 
                "redis2x2-0002-001", 
                "redis2x2-0002-002"
            ], 
            "CacheNodeType": "cache.m3.medium", 
            "PendingModifiedValues": {}
        }
    ]
}
```

## 連線到複寫群組中的叢集 (ElastiCache API)
<a name="ClientConfig.ReplicationGroup.API"></a>

 **判斷快取節點端點和連接埠號碼** 

使用下列參數呼叫 `DescribeReplicationGroups`：

`ReplicationGroupId` = 您複寫群組的名稱。

**Example**  

```
 1. https://elasticache.us-west-2.amazonaws.com /
 2.     ?Action=DescribeCacheClusters
 3.     &ReplicationGroupId=repgroup01
 4.     &Version=2014-09-30   
 5.     &SignatureVersion=4
 6.     &SignatureMethod=HmacSHA256
 7.     &Timestamp=20140421T220302Z
 8.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
 9.     &X-Amz-Date=20140421T220302Z
10.     &X-Amz-SignedHeaders=Host
11.     &X-Amz-Expires=20140421T220302Z
12.     &X-Amz-Credential=<credential>
13.     &X-Amz-Signature=<signature>
```

# DNS 名稱與基礎 IP
<a name="ClientConfig.DNS"></a>

用戶端會維持一份伺服器清單，其中包含保有快取資料的伺服器地址及連接埠。使用 ElastiCache 時，DescribeCacheClusters API (或 describe-cache-clusters 命令列公用程式) 會傳回可用於伺服器清單的完整 DNS 項目和連接埠號碼。

**重要**  
將用戶端應用程式設為在嘗試連線到快取節點端點時頻繁解析快取節點的 DNS 名稱很重要。

ElastiCache 可確保快取節點的 DNS 名稱在故障時復原快取節點時保持不變。

根據預設，大多數的用戶端程式庫都支援持久性快取節點連線。建議使用 ElastiCache 時使用持久性快取節點連線。用戶端的 DNS 快取可能會在多個位置發生，包括用戶端程式庫、語言執行時間，或是用戶端作業系統。建議您檢閱每一個 layer 的應用程式組態，確保為您的快取節點頻繁解析 IP 地址。

# ElastiCache 中的資料分層
<a name="data-tiering"></a>

構成複寫群組並使用 r6gd 系列節點類型的 ElastiCache for Valkey 或 Redis OSS 叢集，其資料會在記憶體和本機 SSD （固態硬碟） 儲存體之間分層。資料分層除了在記憶體中存放資料之外，還在每個叢集節點中使用低成本固態硬碟 (SSDs)，為 Valkey 或 Redis OSS 工作負載提供新的價格效能選項。非常適合定期存取高達 20% 的整體資料集的工作負載，以及在存取 SSD 資料時可容忍額外延遲的應用程式。

在具有資料分層的 ElastiCache 叢集上，ElastiCache 會監控其存放的每個項目的上次存取時間。當可用記憶體 (DRAM) 完全耗盡時，ElastiCache 會使用最近使用的 (LRU) 演算法，自動將不常存取的項目從記憶體移至 SSD。當隨後存取 SSD 上的資料時，ElastiCache 會在處理請求之前自動並以異步的方式將其移回記憶體。如果您的工作負載只會定期存取其資料的子集，則資料分層是以符合成本效益的方式擴展容量的最佳方式。

請注意，使用資料分層時，金鑰本身一律會保留在記憶體中，而 LRU 則會控制記憶體與磁碟上值的位置。一般而言，建議在使用資料分層時，金鑰大小小於您值的大小。

資料分層專為盡量降低對應用程式工作負載的效能影響所設計。例如，假設 500 個位元組的字串值，與請求在記憶體中的資料相比，可以預期請求存放在 SSD 上的資料時會有額外 300 微秒的延遲。

使用最大的資料分層節點大小 (cache.r6gd.16xlarge)，可以在單一 500 個節點的叢集中存放高達 1 PB (使用 1 個僅供讀取複本時為 500 TB)。資料分層與 ElastiCache 中支援的所有 Valkey 或 Redis OSS 命令和資料結構相容。不需要任何用戶端變更就能使用此功能。

**Topics**
+ [最佳實務](#data-tiering-best-practices)
+ [限制](#data-tiering-prerequisites)
+ [定價](#data-tiering-pricing)
+ [監控](#data-tiering-monitoring)
+ [使用資料分層](#data-tiering-enabling)
+ [在資料分層啟用的情況下，將資料從備份還原到叢集](#data-tiering-enabling-snapshots)

## 最佳實務
<a name="data-tiering-best-practices"></a>

建議遵循下列最佳實務：
+ 資料分層非常適合定期存取高達 20% 的整體資料集的工作負載，以及在存取 SSD 資料時可容忍額外延遲的應用程式。
+ 使用資料分層節點上可用的 SSD 容量時，建議值的大小大於金鑰大小。項目在 DRAM 和 SSD 之間移動時，金鑰將一律保留在記憶體中，而且只有值會移至 SSD 層。

## 限制
<a name="data-tiering-prerequisites"></a>

資料分層具有下列限制：
+ 只能在屬於複寫群組一部分的叢集上使用資料分層。
+ 使用的節點類型必須來自 r6gd 系列，該系列在下列區域可用：`us-east-2`、`us-east-1`、`us-west-2`、`us-west-1`、`eu-west-1`、`eu-central-1`、`eu-north-1`、`eu-west-3`、`ap-northeast-1`、`ap-southeast-1`、`ap-southeast-2`、`ap-south-1`、`ca-central-1` 和 `sa-east-1`。
+ 您必須使用 Valkey 7.2 或更新版本的引擎，或 Redis OSS 6.2 或更新版本的引擎。
+ 無法將 r6gd 叢集的備份還原到另一個叢集，除非該叢集也使用 r6gd。
+ 無法將備份匯出到 Amazon S3 以用於資料分層叢集。　
+ 在 r6gd 節點類型上執行的叢集不支援線上遷移。
+ 不支援從資料分層叢集 (例如，使用 r6gd 節點類型的叢集) 擴展到未使用資料分層的叢集 (例如，使用 r6g 節點類型的叢集)。如需詳細資訊，請參閱[擴展 ElastiCache](Scaling.md)。
+ 針對 Valkey 7.2 版和更新版本以及 Redis OSS 7.0.7 版和更新版本使用資料分層的叢集支援自動擴展。如需詳細資訊，請參閱[Auto Scaling Valkey 和 Redis OSS 叢集](AutoScaling.md)
+ 資料分層僅支援 `volatile-lru`、`allkeys-lru`、`volatile-lfu`、`allkeys-lfu` 和 `noeviction` 最大記憶體政策。
+ Valkey 7.2 版和更新版本以及 Redis OSS 7.0.7 版和更新版本支援無痕儲存。如需詳細資訊，請參閱[同步與備份的實作方式](Replication.Redis.Versions.md)。
+ 大於 128 MiB 的項目不會移至固態硬碟。
+ 從 Valley 8.1 及更新版本開始，金鑰 \$1 值大小小於 40 個位元組的項目將不會移至 SSD。

## 定價
<a name="data-tiering-pricing"></a>

與 R6g 節點 (僅記憶體) 相比，R6gd 節點的總容量 (記憶體 \$1 SSD) 多出 4.8 倍，而且在以最大使用率執行時，可協助您節省 60% 以上的成本。如需詳細資訊，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/)。

## 監控
<a name="data-tiering-monitoring"></a>

ElastiCache 提供專為監控使用資料分層之效能叢集而設計的指標。若要監控 DRAM 中項目相較於 SSD 的比率，您可以在 [Valkey 和 Redis OSS 的指標](CacheMetrics.Redis.md)中使用 `CurrItems` 指標。您可以按照以下方式計算百分比：*(有維度的 CurrItems：分層 = 記憶體 \$1 100) / (沒有維度篩選條件的 CurrItems)*。

 如果設定的移出政策允許，則當記憶體中的項目百分比低於 5% 時，ElastiCache 會開始移出項目。在設定了封存政策的節點上，寫入操作將收到記憶體不足錯誤。

 當記憶體中的項目百分比低於 5% 時，仍建議您考慮擴展啟用叢集模式的叢集，或擴展停用叢集模式的叢集。如需擴展的詳細資訊，請參閱 [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。如需使用資料分層之 Valkey 或 Redis OSS 叢集指標的詳細資訊，請參閱 [Valkey 和 Redis OSS 的指標](CacheMetrics.Redis.md)。

## 使用資料分層
<a name="data-tiering-enabling"></a>

### 使用 使用資料分層 AWS 管理主控台
<a name="data-tiering-enabling-console"></a>

在建立叢集做為複寫群組的一部分時，可以從 r6gd 系列中選取節點類型來使用資料分層，例如*cache.r6gd.xlarge*。選取該節點類型會自動啟用資料分層。

如需有關建立叢集的詳細資訊，請參閱 [為 Valkey 或 Redis OSS 建立叢集](Clusters.Create.md)。

### 使用 啟用資料分層 AWS CLI
<a name="data-tiering-enabling-cli"></a>

使用 建立複寫群組時 AWS CLI，您可以從 r6gd 系列選取節點類型，例如 *cache.r6gd.xlarge，*並設定 `--data-tiering-enabled` 參數，以使用資料分層。

從 r6gd 系列中選取節點類型時，無法選擇退出資料分層。如果您設定 `--no-data-tiering-enabled` 參數，操作將會失敗。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id redis-dt-cluster \
   --replication-group-description "Redis OSS cluster with data tiering" \
   --num-node-groups 1 \
   --replicas-per-node-group 1 \
   --cache-node-type cache.r6gd.xlarge \
   --engine redis \   
   --cache-subnet-group-name default \
   --automatic-failover-enabled \
   --data-tiering-enabled
```

針對 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id redis-dt-cluster ^
   --replication-group-description "Redis OSS cluster with data tiering" ^
   --num-node-groups 1 ^
   --replicas-per-node-group 1 ^
   --cache-node-type cache.r6gd.xlarge ^
   --engine redis ^   
   --cache-subnet-group-name default ^
   --automatic-failover-enabled ^
   --data-tiering-enabled
```

執行此操作之後，將會看到類似如下的回應：

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "redis-dt-cluster",
        "Description": "Redis OSS cluster with data tiering",
        "Status": "creating",           
        "PendingModifiedValues": {},
        "MemberClusters": [
            "redis-dt-cluster"
        ],
        "AutomaticFailover": "enabled",
        "DataTiering": "enabled",
        "SnapshotRetentionLimit": 0,
        "SnapshotWindow": "06:00-07:00",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r6gd.xlarge",       
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false
    }
}
```

## 在資料分層啟用的情況下，將資料從備份還原到叢集
<a name="data-tiering-enabling-snapshots"></a>

在資料分層啟用的情況下，可以使用 (主控台)、(AWS CLI) 或 (ElastiCache API) 將備份還原到新的叢集。當使用 r6gd 系列中的節點類型建立叢集時，會啟用資料分層。

### 在資料分層啟用的情況下，將資料從備份還原到叢集 (主控台)
<a name="data-tiering-enabling-snapshots-console"></a>

**在資料分層啟用的情況下，將備份還原到新叢集 (主控台)**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從導覽窗格，選擇 **Backups (備份)**。

1. 在備份清單中，選擇您要從中還原之備份名稱左側的方塊。

1. 選擇 **Restore** (還原)。

1. 完成 **Restore Cluster (還原叢集)** 對話方塊。務必完成所有**必填**欄位，以及您想要變更預設值的任何其他欄位。

   1. **Cluster ID (叢集 ID** - 必要。新叢集的名稱。

   1. **啟用叢集模式 （向外擴展）** – 針對 Valkey 或 Redis OSS （啟用叢集模式） 叢集選擇此選項。

   1. **節點類型** – 指定 **cache.r6gd.xlarge** 或任何其他 r6gd 系列中的節點類型。

   1. **Number of Shards (碎片數)** - 選擇您要讓新叢集具備的碎片 (API/CLI：節點群組) 數。

   1. **Replicas per Shard (每個碎片的複本數)** - 選擇您要讓每個碎片具備的僅供讀取複本節點數。

   1. **Slots and keyspaces (位置和 Keyspace)** - 選擇您要如何將索引鍵分佈到不同的碎片中。如果您選擇指定金鑰分佈，請指定每個碎片的金鑰範圍，以完成資料表。

   1. **Availability zone(s) (可用區域)** - 指定您要如何選取叢集的可用區域。

   1. **Port (連接埠)** - 只有在您希望新叢集使用不同的連接埠時，才變更此選項。

   1. **Choose a VPC (選擇 VPC)** - 選擇要在其中建立此叢集的 VPC。

   1. **參數群組** – 選擇參數群組，為您選取的節點類型保留足夠的記憶體以用於 Valkey 或 Redis OSS 額外負荷。

1. 當您滿意設定後，請選擇 **Create (建立)**。

如需有關建立叢集的詳細資訊，請參閱 [為 Valkey 或 Redis OSS 建立叢集](Clusters.Create.md)。

### 在資料分層啟用的情況下，將資料從備份還原到叢集 (AWS CLI)
<a name="data-tiering-enabling-snapshots-cli"></a>

使用 建立複寫群組時 AWS CLI，預設會使用資料分層，方法是從 r6gd 系列選取節點類型，例如 *cache.r6gd.xlarge* 和設定 `--data-tiering-enabled` 參數。

從 r6gd 系列中選取節點類型時，無法選擇退出資料分層。如果您設定 `--no-data-tiering-enabled` 參數，操作將會失敗。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id redis-dt-cluster \
   --replication-group-description "Redis OSS cluster with data tiering" \
   --num-node-groups 1 \
   --replicas-per-node-group 1 \
   --cache-node-type cache.r6gd.xlarge \
   --engine redis \   
   --cache-subnet-group-name default \
   --automatic-failover-enabled \
   --data-tiering-enabled \
   --snapshot-name my-snapshot
```

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group ^
   --replication-group-id redis-dt-cluster ^
   --replication-group-description "Redis OSS cluster with data tiering" ^
   --num-node-groups 1 ^
   --replicas-per-node-group 1 ^
   --cache-node-type cache.r6gd.xlarge ^
   --engine redis ^   
   --cache-subnet-group-name default ^
   --automatic-failover-enabled ^
   --data-tiering-enabled ^
   --snapshot-name my-snapshot
```

執行此操作之後，將會看到類似如下的回應：

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "redis-dt-cluster",
        "Description": "Redis OSS cluster with data tiering",
        "Status": "creating",           
        "PendingModifiedValues": {},
        "MemberClusters": [
            "redis-dt-cluster"
        ],
        "AutomaticFailover": "enabled",
        "DataTiering": "enabled",
        "SnapshotRetentionLimit": 0,
        "SnapshotWindow": "06:00-07:00",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r6gd.xlarge",        
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false
    }
}
```

# 在 ElastiCache 中準備叢集
<a name="Clusters.Prepare"></a>

以下說明如何使用 ElastiCache 主控台、 AWS CLI或 ElastiCache API 來建立叢集。

您也可以使用 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 建立 ElastiCache 叢集。如需詳細資訊，請參閱《AWS ‬ Cloud Formation 使用者指南》中的 ‭[‬‭AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)‭，其中包括如何實作該做法的指引。

每當您建立叢集或複寫群組，建議您進行一些準備工作，將來就不需要升級或當下進行變更。

**Topics**
+ [判斷您的 ElastiCache 叢集需求](cluster-create-determine-requirements.md)
+ [選擇您的節點大小](CacheNodes.SelectSize.md)

# 判斷您的 ElastiCache 叢集需求
<a name="cluster-create-determine-requirements"></a>

**準備**  
了解下列問題的答案有助於更順暢地建立 ElastiCache 叢集：
+ 您需要哪種類型的節點執行個體？

  如需選擇執行個體節點類型的指導方針，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。
+ 您是否會在以 Amazon VPC 為基礎的 Virtual Private Cloud (VPC) 中啟動叢集？ 
**重要**  
如果您要在 VPC 中啟動叢集，請先在相同 VPC 中建立子網路群組，再開始建立叢集。如需詳細資訊，請參閱[子網路和子網路群組](SubnetGroups.md)。  
ElastiCache 旨在 AWS 使用 Amazon EC2 從 內部存取。不過，如果您在以 Amazon VPC 為基礎的 VPC 中啟動叢集，並且叢集在 VPC 中，則可以從 AWS外部提供存取。如需詳細資訊，請參閱[從外部存取 ElastiCache 資源AWS](accessing-elasticache.md#access-from-outside-aws)。
+ 您是否需要自訂任何參數值？

  如果需要，請建立自訂參數群組。如需詳細資訊，請參閱[建立 ElastiCache 參數群組](ParameterGroups.Creating.md)。

   如果您正在執行 Valkey 或 Redis OSS，請考慮設定 `reserved-memory`或 `reserved-memory-percent`。如需詳細資訊，請參閱[管理 Valkey 和 Redis OSS 的預留記憶體](redis-memory-management.md)。
+ 您是否需要建立自己的 *VPC 安全群組*？ 

  如需詳細資訊，請參閱 [VPC 中的安全性](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html)。
+ 您要如何實作容錯能力？

  如需詳細資訊，請參閱[減少故障](disaster-recovery-resiliency.md#FaultTolerance)。

**Topics**
+ [ElastiCache 記憶體和處理器需求](#cluster-create-determine-requirements-memory)
+ [Memcached 叢集組態](#memcached-cluster-configuration)
+ [Valkey 和 Redis OSS 叢集組態](#redis-cluster-configuration)
+ [ElastiCache 擴展需求](#cluster-create-determine-requirements-scaling)
+ [ElastiCache 存取需求](#cluster-create-determine-requirements-access)
+ [ElastiCache 的區域、可用區域和本機區域需求](#cluster-create-determine-requirements-region)

## ElastiCache 記憶體和處理器需求
<a name="cluster-create-determine-requirements-memory"></a>

Amazon ElastiCache 的基本建置區塊為節點。您可以逐一設定節點或以群組形式設定節點，以形成叢集。當您判斷要為叢集使用何種節點類型時，請一併考量叢集的節點組態和您要存放的資料量。

Memcached 是多執行緒的引擎，因此節點的核心數量會影響叢集可用的運算能力。

## Memcached 叢集組態
<a name="memcached-cluster-configuration"></a>

ElastiCache for Memcached 叢集由 1 到 60 個節點組成。Memcached 叢集中的資料會分割到叢集的各節點中。您的應用程式會使用網路位址 (稱為「端點」) 來與 Memcached 叢集連線。Memcached 叢集中的每個節點都有自己的端點，您的應用程式會使用這些端點來讀取或寫入特定節點。除了節點端點之外，Memcached 叢集本身還有一個端點名為*組態端點*。您的應用程式可使用此端點來讀取或寫入叢集，並由自動探索判斷要讀取或寫入哪些節點。

![\[顯示 Memcached 叢集如何跨叢集中的節點分割的影像。\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Memcached.png)


如需詳細資訊，請參閱[在 ElastiCache 中管理叢集](Clusters.md)。

## Valkey 和 Redis OSS 叢集組態
<a name="redis-cluster-configuration"></a>

ElastiCache for Valkey 和 Redis OSS 叢集由 0 到 500 個碎片 （也稱為節點群組） 組成。Valkey 或 Redis OSS 叢集中的資料會分割為叢集中的碎片。您的應用程式會使用稱為 端點的網路地址，與 Valkey 或 Redis OSS 叢集連線。Valkey 或 Redis OSS 碎片中的節點滿足兩個角色的其中之一：一個讀取/寫入主要節點和所有其他節點唯讀次要節點 （也稱為僅供讀取複本）。除了節點端點之外，Valkey 或 Redis OSS 叢集本身還有稱為*組態端點的端點*。您的應用程式可以使用此端點來讀取或寫入叢集，從而決定要讀取或寫入哪個節點至 ElastiCache for Redis OSS。

![\[以停用模式與啟用模式比較 Valkey 或 Redis OSS 叢集的影像。\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-Redis-ClustersRGs.png)


如需詳細資訊，請參閱[在 ElastiCache 中管理叢集](Clusters.md)。

## ElastiCache 擴展需求
<a name="cluster-create-determine-requirements-scaling"></a>

您可以使用更大的新節點類型來建立新叢集，以擴展所有叢集的規模。當您擴展 Memcached 叢集時，新叢集會開始清空。當您擴展 Valkey 或 Redis OSS 叢集時，您可以從備份植入它，並避免讓新叢集啟動為空。

您可以擴展或縮減 Amazon ElastiCache for Memcached 叢集的規模。若要擴展或縮減 Memcached 叢集的規模，您只要新增或移除叢集的節點即可。如果您已啟用 Automatic Discovery 且應用程式已連線至叢集的組態端點，則當您新增或移除節點時不需要對應用程式進行任何變更。

如需詳細資訊，請參閱本指南中的 [擴展 ElastiCache](Scaling.md)。

## ElastiCache 存取需求
<a name="cluster-create-determine-requirements-access"></a>

根據設計，Amazon ElastiCache 叢集是透過 Amazon EC2 執行個體來存取。僅有當初建立叢集的帳戶可以網路存取 ElastiCache 叢集。因此，在您從 Amazon EC2 執行個體存取叢集之前，必須先授權讓 Amazon EC2 執行個體存取叢集。執行此作業的步驟依據您要在 EC2-VPC 或 EC2-Classic 中啟動而異。

如果您是在 EC2-VPC 中啟動叢集，則需要授權網路輸入至您的叢集。如果您是在 EC2-Classic 中啟動叢集，則需要授權讓與執行個體相關聯的 Amazon Elastic Compute Cloud 安全群組存取 ElastiCache 安全群組。如需詳細說明，請參閱本指南的[步驟 3。授權對叢集的存取](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)。

## ElastiCache 的區域、可用區域和本機區域需求
<a name="cluster-create-determine-requirements-region"></a>

Amazon ElastiCache 支援所有 AWS 區域。透過將 ElastiCache 叢集放置在靠近應用程式 AWS 的區域，您可以減少延遲。如果您的叢集有多個節點，將節點安置在不同可用區域或 Local Zones 中可降低故障對叢集的影響。

如需詳細資訊，請參閱下列內容：
+ [選擇 ElastiCache 的區域和可用區域](RegionsAndAZs.md)
+ [搭配 ElastiCache 使用本地區域](Local_zones.md)
+ [減少故障](disaster-recovery-resiliency.md#FaultTolerance)

# 選擇您的節點大小
<a name="CacheNodes.SelectSize"></a>

您為 ElastiCache 叢集選取的節點大小會影響成本、效能和容錯能力。

## 節點大小 (Valkey 和 Redis OSS)
<a name="CacheNodes.SelectSize.redis"></a>

如需有關 Graviton 處理器優點的詳細資訊，請參閱 [AWS  Graviton 處理器](https://aws.amazon.com/pm/ec2-graviton/)。

回答下列問題可協助您判斷 Valkey 或 Redis OSS 實作所需的最低節點類型：
+ 您是否預期會有具有多個用戶端連線的輸送量繫結工作負載？

  如果是這種情況，而且您正在執行 Redis OSS 5.0.6 版或更高版本，您可以使用增強型 I/O 功能來獲得更好的輸送量和延遲，其中可用的 CPUs用於代表 Redis OSS 引擎卸載用戶端連線。如果您執行 Redis OSS 7.0.4 版或更新版本，除了增強型 I/O 之外，您還可以透過增強型 I/O 多工功能獲得額外的加速，其中每個專用網路 IO 執行緒管道命令都會從多個用戶端流向 Redis OSS 引擎，利用 Redis OSS 的 功能有效率地分批處理命令。在 ElastiCache for Redis OSS v7.1 及更高版本中，我們擴展了增強型 I/O 執行緒功能，以處理呈現層邏輯。依呈現層而言，我們的意思是增強型 I/O 執行緒現在不僅讀取用戶端輸入，還會將輸入剖析為 Redis OSS 二進位命令格式，然後轉送至主執行緒以執行，從而提高效能。如需其他詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/database/achieve-over-500-million-requests-per-second-per-cluster-with-amazon-elasticache-for-redis-7-1/)和[支援的版本](VersionManagement.md#supported-engine-versions)頁面。
+ 您是否有經常存取少量資料的工作負載？

  如果是這種情況，而且您在 Redis OSS 引擎 6.2 版或更新版本上執行，您可以選擇 r6gd 節點類型來利用資料分層。透過資料分層，最近使用的資料會存放在 SSD 中。當檢索資料時，會有少量的延遲成本，可藉由成本節省加以抵銷。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

  如需詳細資訊，請參閱[支援的節點類型](CacheNodes.SupportedTypes.md)。
+ 您的資料需要多少總記憶體？

  若要取得一般估計值，請使用要快取的項目大小。將此大小乘以您希望同時保持在快取中的項目數。若要取得合理的項目大小估計，收先請序列化您的快取項目，接著計算字元數。然後再除以您叢集中碎片數。

  如需詳細資訊，請參閱[支援的節點類型](CacheNodes.SupportedTypes.md)。
+ 您正在執行哪個版本的 Redis OSS？

  2.8.22 之前的 Redis OSS 版本要求您為容錯移轉、快照、同步和將複本提升為主要操作預留更多記憶體。此需求的原因是您必須針對處理期間所有發生的寫入擁有足夠的記憶體。

  Redis OSS 2.8.22 版和更新版本使用無分支儲存程序，需要的記憶體比先前程序更少。

  如需詳細資訊，請參閱下列內容：
  + [同步與備份的實作方式](Replication.Redis.Versions.md)
  + [確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)
+ 您應用程式所需要的大量寫入程度為何？

  需要大量寫入的應用程式可能需要在取得快照或容錯移轉時擁有大上許多的可用記憶體 (尚未由資料使用的記憶體)。每次執行 `BGSAVE` 處理序時，都必須有資料未使用的足夠記憶體，以容納執行 `BGSAVE` 處理序時產生的所有寫入。例如拍攝快照、將主要叢集與叢集中的複本同步，以及啟用僅限附加檔案 (AOF) 功能時。另一個範例是將複本提升為主要節點 (若您已啟用多個可用區) 時。最糟糕的情況是執行處理序過程中所有資料都被重寫。在這種情況下，節點執行個體的大小需為單純資料所需記憶體的兩倍。

  如需詳細資訊，請參閱[確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)。
+ 您的實作是獨立的 Valkey 或 Redis OSS （停用叢集模式） 叢集，還是具有多個碎片的 Valkey 或 Redis OSS （啟用叢集模式） 叢集？

**Valkey 或 Redis OSS （停用叢集模式） 叢集**  
如果您要實作 Valkey 或 Redis OSS （停用叢集模式） 叢集，您的節點類型必須能夠容納所有資料加上必要的額外負荷，如上一個項目符號所述。

  例如，假設您估計所有項目的總大小為 12 GB。在這種情況下，您可以使用具有 13.3 GB 記憶體的 `cache.m3.xlarge` 節點或記憶體為 13.5 GB 的 `cache.r3.large` 節點。但是，您可能需要更多記憶體以執行 `BGSAVE` 作業。如果您的應用程式需執行大量寫入，請將記憶體需求加倍為至少 24 GB。因此，可使用 `cache.m3.2xlarge` (含 27.9 GB 記憶體) 或 `cache.r3.xlarge` (含 30.5 GB 記憶體)。

**具有多個碎片的 Valkey 或 Redis OSS （啟用叢集模式）**  
如果您要實作具有多個碎片的 Valkey 或 Redis OSS （啟用叢集模式） 叢集，則節點類型必須能夠容納資料的`bytes-for-data-and-overhead / number-of-shards`位元組。

  例如，假設您估計所有項目的總大小為 12 GB 且有兩個碎片。在這種情況下，您可以使用具有 6.05 GB 記憶體 (12 GB/2) 的 `cache.m3.large` 節點。但是，您可能需要更多記憶體以執行 `BGSAVE` 作業。如果您的應用程式需執行大量寫入，請將記憶體需求加倍為每個碎片至少 12 GB。因此，可使用 `cache.m3.xlarge` (含 13.3 GB 記憶體) 或 `cache.r3.large` (含 13.5 GB 記憶體)。
+ 您是否有使用 Local Zones？

[Local Zones](Local_zones.md) 可讓您將資源 (例如 ElastiCache 叢集) 放置在靠近使用者的多個位置。但是選擇節點大小時請注意，無論容量要求為何，目前可用節點都會限制為下列大小：
  + 最新一代：

    **M5 節點類型：**`cache.m5.large`、`cache.m5.xlarge`、`cache.m5.2xlarge`、`cache.m5.4xlarge`、`cache.m5.12xlarge`、`cache.m5.24xlarge`

    **R5 節點類型：**`cache.r5.large`、`cache.r5.xlarge`、`cache.r5.2xlarge`、`cache.r5.4xlarge`、`cache.r5.12xlarge`、`cache.r5.24xlarge`

    **T3 節點類型：**`cache.t3.micro`、`cache.t3.small`、`cache.t3.medium`

在您的叢集執行中時，您可以監控發佈到 CloudWatch 的記憶體用量、處理器使用率、快取命中及快取未命中指標。您可能會注意到叢集沒有您想要的命中率，或是索引鍵被移出的頻率太頻繁。在這些情況下，您可以選擇 CPU 和記憶體規格較大的不同節點大小。

監控 CPU 用量時，請記住 Valkey 和 Redis OSS 是單執行緒。因此，將回報的 CPU 使用率乘上 CPU 核心數，可得出實際的使用率。例如，報告 20% 使用率的四核心 CPU 實際上是 Redis OSS 以 80% 使用率執行的一個核心。

## 節點大小 (Memcached)
<a name="CacheNodes.SelectSize.Mem"></a>

Memcached 叢集包含一或多個節點，其中叢集的資料會分割在各個節點中。因此，叢集的記憶體需求與節點的記憶體相關，但不相同。您可以透過擁有幾個大型節點或數個較小的節點，來達到您需要的叢集記憶體容量。除此之外，隨著您的需求變更，您可以新增節點或從叢集移除節點，來只為您需要的項目支付費用。

您叢集的總記憶體容量是透過將叢集中的節點數與每個節點的 RAM 容量相乘，再減去系統額外負荷計算而得。每個節點的容量是根據節點類型而定。

```
cluster_capacity = number_of_nodes * (node_capacity - system_overhead)
```

叢集中的節點數量是您執行 Memcached 叢集可用性的關鍵因素。單一節點發生故障，可能會影響您應用程式的可用性及後端資料庫的負載。在這種情況下，ElastiCache 會為失敗的節點佈建一個替代節點，並重新填入資料。您可以將記憶體和運算容量分散到更多容量較小的節點間，而非使用少數具備高容量的節點，藉此降低此可用性影響。

在希望擁有 35 GB 快取記憶體的案例中，可以透過以下任一組態進行設定：
+ 11 個 `cache.t2.medium` 節點，其具備 3.22 GB 的記憶體及 2 個執行緒，合計 35.42 GB 和 22 個執行緒。
+ 6 個 `cache.m4.large` 節點，其具備 6.42 GB 的記憶體及 2 個執行緒，合計 38.52 GB 和 12 個執行緒。
+ 3 個 `cache.r4.large` 節點，其具備 12.3 GB 的記憶體及 2 個執行緒，合計 36.90 GB 和 6 個執行緒。
+ 3 個 `cache.m4.xlarge` 節點，其具備 14.28 GB 的記憶體及 4 個執行緒，合計 42.84 GB 和 12 個執行緒。


**比較節點選項**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/CacheNodes.SelectSize.html)

這些選項每個都能提供相似的記憶體容量，但不同的運算容量及成本。若要比較您具體選項的成本，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/)。

針對執行 Memcached 的叢集，每個節點上一部分的可用記憶體會用於連線額外負荷。如需詳細資訊，請參閱 [Memcached 連線額外負荷](ParameterGroups.Engine.md#ParameterGroups.Memcached.Overhead)

使用多個節點需要將索引鍵分散到這些節點當中。每個節點都有自己的端點。為了簡化端點管理，您可以使用 ElastiCache 的自動探索功能，讓用戶端程式能自動識別叢集中的所有節點。如需詳細資訊，請參閱[自動識別叢集中的節點 (Memcached)](AutoDiscovery.md)。

在某些案例中，您可能不確定需要多少容量。這個情況下，建議從一個 `cache.m5.large` 節點開始測試。然後使用發佈到 Amazon CloudWatch 的 ElastiCache 指標，監控記憶體用量、CPU 使用率及快取命中率。如需有關 ElastiCache 的 CloudWatch 指標的詳細資訊，請參閱「[使用 CloudWatch 指標監控用量](CacheMetrics.md)」。針對生產及更大的工作負載，R5 節點可提供最佳效能及 RAM 成本值。

若您的叢集沒有達到所需的命中率，您可輕易新增更多節點來增加叢集中可用的總記憶體。

若您的叢集具備足夠的命中率，但受到 CPU 限制，請使用提供更強運算能力的節點類型設定新的叢集。

# 為 Valkey 或 Redis OSS 建立叢集
<a name="Clusters.Create"></a>

下列範例示範如何使用AWS 管理主控台AWS CLI和 ElastiCache API 建立 Valkey 或 Redis OSS 叢集。

## 建立 Valkey 或 Redis OSS （停用叢集模式） （主控台）
<a name="Clusters.Create.CON.Redis"></a>

當您使用 Valkey 或 Redis OSS 引擎時，ElastiCache 支援複寫。若要監控資料寫入 Valkey 或 Redis OSS 讀取/寫入主要叢集和傳播至唯讀次要叢集之間的延遲，ElastiCache 會將特殊金鑰 新增至叢集`ElastiCacheMasterReplicationTimestamp`。此鍵是目前國際標準時間 (UTC) 的時間。由於 Valkey 或 Redis OSS 叢集稍後可能會新增至複寫群組，因此此金鑰會包含在所有 Valkey 或 Redis OSS 叢集中，即使最初不是複寫群組的成員。如需複寫群組的詳細資訊，請參閱[使用複寫群組的高可用性](Replication.md)。

若要建立 Valkey 或 Redis OSS （停用叢集模式） 叢集，請遵循 中的步驟[建立 Valkey （停用叢集模式） 叢集 （主控台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)。

一旦叢集的狀態變為*可用*，您就可以為其授予 Amazon EC2 存取權限、連線至叢集並開始使用叢集。如需詳細資訊，請參閱[步驟 3。授權對叢集的存取](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)及[步驟 4. 連接至叢集的節點](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

## 建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）
<a name="Clusters.Create.CON.RedisCluster"></a>

如果您執行 Redis OSS 3.2.4 或更新版本，您可以建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集。Valkey 或 Redis OSS （啟用叢集模式） 叢集支援將您的資料分割到 1 到 500 個碎片 (API/CLI：節點群組），但有一些限制。如需 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 的比較，請參閱 [支援的引擎和版本](VersionManagement.md#supported-engine-versions)。

**使用 ElastiCache 主控台建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集**

1. 登入AWS 管理主控台，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 從右上角的清單中，選擇要啟動此叢集AWS的區域。

1. 從導覽窗格選擇 **Get started** (開始使用)。

1. 選擇 **Create VPC** (建立 VPC)，然後按照[建立虛擬私有雲端 (VPC)](VPCs.CreatingVPC.md) 中列出的步驟操作。

1. 在 ElastiCache 儀表板頁面上，選擇**建立叢集**，然後選擇**建立 Valkey 叢集**或**建立 Redis OSS 叢集**。

1. 在 **Cluster settings** (叢集設定) 中，執行下列動作：

   1. 選擇 **Configure and create a new cluster** (設定和建立新叢集)。

   1. 針對 **Cluster mode** (叢集模式)，選擇 **Enabled** (已啟用)。

   1. 針對 **Cluster info** (叢集資訊)，輸入 **Name** (名稱) 值。

   1. (選用) 輸入 **Description** (描述) 值。

1. 在 **Location** (位置) 中：

------
#### [ AWS Cloud  ]

   1. 針對 **AWS雲端**，建議您接受**多可用區域**和**自動容錯移轉**的預設設定。如需詳細資訊，請參閱[使用異地同步備份將 ElastiCache for Redis OSS 的停機時間降至最低](AutoFailover.md)。

   1. 在 **Cluster settings** (叢集設定) 中

      1. 針對 **Engine version** (引擎版本)，選擇可用的版本。

      1. 針對 **Port** (連接埠)，使用預設連接埠 6379。如果您基於任何原因需要使用不同的連接埠，請輸入連接埠號碼。

      1. 對於 **Parameter group (參數群組)**，請選擇參數群組或新建參數群組。參數群組可控制叢集的執行時間參數。如需參數群組的詳細資訊，請參閱 [Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)和[建立 ElastiCache 參數群組](ParameterGroups.Creating.md)。
**注意**  
當您選取參數群組來設定引擎組態值時，該參數群組會套用至全域資料存放區中的所有叢集。在 **Parameter Groups (參數群組)** 頁面上，yes/no (是/否) **Global (全域)** 屬性指出參數群組是否為全域資料存放區的一部分。

      1. 在 **Node type (節點類型)** 中，選擇向下箭頭 (![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png))。在 **Change node type (變更節點類型)** 對話方塊中，為您想要的節點類型選擇 **Instance family (執行個體系列)** 的值。然後選擇您要用於此叢集的節點類型，然後選擇 **Save (儲存)**。

         如需詳細資訊，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。

         如果選擇 r6gd 節點類型，將自動啟用資料分層。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

      1. 針對**碎片數量**，選擇您希望此 Valkey 或 Redis OSS （啟用叢集模式） 叢集的碎片數量 （分割區/節點群組）。

         對於某些版本的 Valkey 或 Redis OSS （啟用叢集模式），您可以動態變更叢集中的碎片數量：
         + **Redis OSS 3.2.10 和更新版本** – 如果您的叢集執行 Redis OSS 3.2.10 或更新版本，您可以動態變更叢集中的碎片數量。如需詳細資訊，請參閱[擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。
         + **其他 Redis OSS 版本** – 如果您的叢集在 3.2.10 版之前執行 Redis OSS 版本，則有其他方法。在這種情況下，若要變更叢集中的碎片數量，請使用新的碎片數量建立新的叢集。如需詳細資訊，請參閱[從備份還原到新的快取](backups-restoring.md)。

      1. 針對 **Replicas per shard (每個碎片的複本)**，選擇您要讓每個碎片具備的僅供讀取複本節點數目。

         下列限制適用於 Valkey 或 Redis OSS （啟用叢集模式）。
         + 如果您已啟用多個可用區，請確保每個碎片至少有一個複本。
         + 使用主控台建立叢集時，每個碎片的複本數都相同。
         + 每個碎片的僅供讀取複本數均固定而無法變更。如果您發現每個碎片 (API/CLI：節點群組) 需要更多或更少的複本，則必須使用新的複本數來建立新叢集。如需詳細資訊，請參閱[教學課程：使用外部建立的備份植入新的節點型叢集](backups-seeding-redis.md)。

   1. 在 **Connectivity** (連線) 下

      1. 針對 **Network type** (網路類型)，請選擇此叢集支援的 IP 版本。

      1. 在 **Subnet group** (子網路群組) 中，選擇要套用至此叢集的子網路。ElastiCache 會使用此子網路群組選擇子網路及該子網路中的 IP 地址，以與您的節點建立關聯。ElastiCache 叢集需要具有 IPv4 和 IPv6 地址的雙堆疊子網路，以便在雙堆疊模式下運作，且僅限 IPv6 的子網路僅會以 IPv6 運作。

         建立新的子網路群組時，請輸入其所屬的 **VPC ID**。

         選取 **Discovery IP type** (探索 IP 類型)。僅回傳您選擇的通訊協定 IP 地址。

         如需詳細資訊，請參閱：
         + [在 ElastiCache 中選擇網路類型](network-type.md).
         + [在 VPC 中建立子網路](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

         如果您是 [搭配 ElastiCache 使用本地區域](Local_zones.md)，必須建立或選擇位於本地區域中的子網路。

         如需詳細資訊，請參閱[子網路和子網路群組](SubnetGroups.md)。

   1. 針對 **Availability zone placements** (可用區域置放)，您有兩種選項：
      + **No preference (無偏好設定)** - ElastiCache 會選擇可用區域。
      + **Specify availability zones (指定可用區域)** - 您可為每個叢集指定可用區域。

        如果您選擇指定可用區域，請針對每個碎片中的每個叢集，從清單中選擇可用區域。

      如需詳細資訊，請參閱[選擇 ElastiCache 的區域和可用區域](RegionsAndAZs.md)。

   1. 選擇 **Next** (下一步)

   1. 在**進階 Valkey 設定**或**進階 Redis OSS 設定**下，或 

      1. 針對 **Security** (安全)：

        1. 若要加密資料，您有下列選項：
           + **Encryption at rest (靜態加密)** - 啟用存放在磁碟上的資料加密功能。如需詳細資訊，請參閱[靜態加密](at-rest-encryption.md)。
**注意**  
您可以選擇**客戶受管AWS KMS 金鑰**並選擇金鑰，以提供不同的加密金鑰。如需詳細資訊，請參閱[使用來自AWS KMS 的客戶受管金鑰](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
           + **Encryption in-transit (傳輸中加密)** - 啟用傳輸中資料加密功能。如需詳細資訊，請參閱[傳輸中加密](in-transit-encryption.md)。對於 Valkey 7.2 及更高版本或 Redis OSS 6.0 及更高版本，如果您啟用傳輸中加密，系統會提示您指定下列其中一個**存取控制**選項：
             + **No Access Control (無存取控制)** - 這是預設的設定。這表示使用者存取叢集時不受任何限制。
             + **User Group Access Control List (使用者群組存取控制清單)** - 選取的使用者群組需具有可存取叢集的已定義使用者集。如需詳細資訊，請參閱[使用主控台和 CLI 管理使用者群組](Clusters.RBAC.md#User-Groups)。
             + **AUTH 預設使用者** – Valkey 或 Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。
           + **AUTH** – Valkey 或 Redis OSS 伺服器的身分驗證機制。如需詳細資訊，請參閱 [AUTH](auth.md)。
**注意**  
對於 3.2.6 以上版本的 Redis OSS，除了 3.2.10 版之外，AUTH 是唯一的選項。

        1. 在 **Security groups (安全群組)** 中，選擇要用於此叢集的安全群組。*安全群組*可做為防火牆來控制叢集的網路存取。您可以使用 VPC 的預設安全群組，或建立新的安全群組。

           如需安全群組的詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

   1. 針對定期排程自動備份，請選取 **Enable automatic backups (啟用自動備份)**，然後輸入每份自動備份要保存的天數，過了此天數後即會自動將其刪除。如果您不想定期排程自動備份，請清除 **Enable automatic backups (啟用自動備份)** 核取方塊。在任何一種情況下，您都可以選擇建立手動備份。

      如需備份和還原的詳細資訊，請參閱[快照和還原](backups.md)。

   1. (選用) 指定維護時段。*維護時段*是 ElastiCache 排程的每週叢集系統維護時間，通常長度為一小時。您可以讓 ElastiCache 選擇維護時段的日期和時間 (*No preference* (無偏好設定))，或自行選擇日期、時間和持續時間 (*Specify maintenance window* (指定維護時段))。如果您從清單中選擇 *Specify maintenance window (指定維護時段)*，請為您的維護時段選擇 *Start day (開始日)*、*Start time (開始時間)* 和 *Duration (持續時間)*。所有時間都是 UCT 時間。

      如需詳細資訊，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

   1. (選用) 針對 **Logs (日誌)**：
      + 在 **Log format (日誌格式)** 下，選擇 **Text (文字)** 或 **JSON**。
      + 在 **Destination Type (目的地類型)** 下，選擇 **CloudWatch Logs** 或 **Kinesis Firehose**。
      + 在**日誌目的地**下，選擇**建立新** ，然後輸入您的 CloudWatch Logs 日誌群組名稱或 Firehose 串流名稱，或選擇**選取現有**，然後選擇您的 CloudWatch Logs 日誌群組名稱或您的 Firehose 串流名稱。

   1. 針對 **Tags** (標籤)，為協助您管理叢集和其他 ElastiCache 資源，您可以用標籤形式將自己的中繼資料指派給每個資源。如需詳細資訊，請參閱[為您的 ElastiCache 資源加上標籤](Tagging-Resources.md)。

   1. 選擇**下一步**。

   1. 檢閱所有項目和選項，然後進行任何所需的更正。當您準備好時，請選擇 **Create** (建立)。

------
#### [ On premises ]

   1. 針對 **On premises** (內部部署)，建議您將 **Auto-failover** (自動容錯移轉) 保持啟用。如需詳細資訊，請參閱[使用異地同步備份將 ElastiCache for Redis OSS 的停機時間降至最低](AutoFailover.md)

   1. 按照[使用 Outposts](ElastiCache-Outposts.md) 的步驟執行。

------

若要使用 ElastiCache API 或AWS CLI而非 ElastiCache 主控台建立對等項目，請參閱以下內容：
+ API：[CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI：[create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)

一旦叢集的狀態變為*可用*，您就可以為其授予 EC2 存取權限、連線至叢集並開始使用叢集。如需詳細資訊，請參閱[步驟 3。授權對叢集的存取](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)及[步驟 4. 連接至叢集的節點](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

## 建立叢集 (AWS CLI)
<a name="Clusters.Create.CLI"></a>

若要使用 建立叢集AWS CLI，請使用 `create-cache-cluster`命令。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

### 建立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (CLI)
<a name="Clusters.Create.CLI.Redis"></a>

**Example – 沒有僅供讀取複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集**  
下列 CLI 程式碼會建立沒有複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集。  
使用 r6gd 系列中的節點類型建立叢集時，必須傳遞 `data-tiering-enabled` 參數。
針對 Linux、macOS 或 Unix：  

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine redis \
--num-cache-nodes 1 \
--cache-parameter-group default.redis6.x \
--snapshot-arns arn:aws:s3:::amzn-s3-demo-bucket/snapshot.rdb
```
針對 Windows：  

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine redis ^
--num-cache-nodes 1 ^
--cache-parameter-group default.redis6.x ^
--snapshot-arns arn:aws:s3:::amzn-s3-demo-bucket/snapshot.rdb
```

### 建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (AWS CLI)
<a name="Clusters.Create.CLI.RedisCluster"></a>

無法使用 `create-cache-cluster`操作建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：複寫群組）。若要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：複寫群組），請參閱 [從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組 (AWS CLI)](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CLI)。

如需詳細資訊，請參閱AWS CLI適用於 ElastiCache 的 參考主題[https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)。

## 為 Valkey 或 Redis OSS 建立叢集 (ElastiCache API)
<a name="Clusters.Create.API.red-heading"></a>

若要使用 ElastiCache API 建立叢集，請使用 `CreateCacheCluster` 動作。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

**Topics**
+ [建立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (ElastiCache API)](#Clusters.Create.API.Redis)
+ [在 Valkey 或 Redis OSS 中建立叢集 （啟用叢集模式） (ElastiCache API)](#Clusters.Create.API.RedisCluster)

### 建立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (ElastiCache API)
<a name="Clusters.Create.API.Redis"></a>

下列程式碼會建立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (ElastiCache API)。

加上分行符號的用意是便於閱讀。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=CreateCacheCluster
    &CacheClusterId=my-cluster
    &CacheNodeType=cache.r4.large
    &CacheParameterGroup=default.redis3.2
    &Engine=redis
    &EngineVersion=3.2.4
    &NumCacheNodes=1
    &SignatureVersion=4       
    &SignatureMethod=HmacSHA256
    &SnapshotArns.member.1=arn%3Aaws%3As3%3A%3A%3AmyS3Bucket%2Fdump.rdb
    &Timestamp=20150508T220302Z
    &Version=2015-02-02
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Credential=<credential>
    &X-Amz-Date=20150508T220302Z
    &X-Amz-Expires=20150508T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Signature=<signature>
```

### 在 Valkey 或 Redis OSS 中建立叢集 （啟用叢集模式） (ElastiCache API)
<a name="Clusters.Create.API.RedisCluster"></a>

無法使用 `CreateCacheCluster`操作建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：複寫群組）。若要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：複寫群組），請參閱 [從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組 (ElastiCache API)](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.API)。

如需詳細資訊，請參閱 ElastiCache API 參考主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)。

# 為 Memcached 建立叢集
<a name="Clusters.Create-mc"></a>

下列範例示範如何使用AWS 管理主控台AWS CLI和 ElastiCache API 建立叢集。

## 建立 Memcached 叢集 (主控台)
<a name="Clusters.Create.CON.Memcached"></a>

使用 Memcached 引擎時，Amazon ElastiCache 支援將資料水平分割至多個節點。Memcached 可啟用自動探索功能，因此您不需要追蹤每個節點的端點。Memcached 可追蹤每個節點的端點，並隨著節點新增與移除節點而更新端點清單。您的應用程式只需要組態端點即可與叢集互動。

若要透過主控台建立 Memcached 叢集，請遵循[建立 Valkey （停用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster) 中的步驟。當您到達步驟五時，請選取**建立 Memcached 快取**。

一旦叢集的狀態變為*可用*，您就可以為其授予 Amazon EC2 存取權限、連線至叢集並開始使用叢集。如需詳細資訊，請參閱類似的步驟 [步驟 3。授權對叢集的存取](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)和 [步驟 4. 連接至叢集的節點](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

## 建立叢集 (AWS CLI)
<a name="Clusters.Create.CLI.memcached-intro"></a>

若要使用 建立叢集AWS CLI，請使用 `create-cache-cluster`命令。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

### 建立 Memcached 快取叢集 (AWS CLI)
<a name="Clusters.Create.CLI.Memcached"></a>

下列 CLI 程式碼會建立具有 3 個節點的 Memcached 叢集。

針對 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine memcached \
--engine-version 1.4.24 \
--cache-parameter-group default.memcached1.4 \
--num-cache-nodes 3
```

針對 Windows：

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine memcached ^
--engine-version 1.4.24 ^
--cache-parameter-group default.memcached1.4 ^
--num-cache-nodes 3
```

## 建立 Memcached 的叢集 (ElastiCache API)
<a name="Clusters.Create.API.mem-heading"></a>

若要使用 ElastiCache API 建立叢集，請使用 `CreateCacheCluster` 動作。

**重要**  
在您的叢集可用之後，系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未使用亦同)。若要停止此叢集產生費用，您必須將其刪除。請參閱 [在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

**Topics**
+ [建立 Memcached 叢集 (ElastiCache API)](#Clusters.Create.API.Memcached)

### 建立 Memcached 叢集 (ElastiCache API)
<a name="Clusters.Create.API.Memcached"></a>

下列程式碼會建立含 3 個節點的 Memcached 叢集 (ElastiCache API)。

加上分行符號的用意是便於閱讀。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=CreateCacheCluster
    &CacheClusterId=my-cluster
    &CacheNodeType=cache.r4.large
    &Engine=memcached
    &NumCacheNodes=3
    &SignatureVersion=4       
    &SignatureMethod=HmacSHA256
    &Timestamp=20150508T220302Z
    &Version=2015-02-02
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Credential=<credential>
    &X-Amz-Date=20150508T220302Z
    &X-Amz-Expires=20150508T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Signature=<signature>
```

# 檢視 ElastiCache 叢集的詳細資訊
<a name="Clusters.ViewDetails"></a>

您可以使用 ElastiCache 主控台或 AWS CLI ElastiCache API 檢視一或多個叢集的詳細資訊。

## 檢視 Memcached 叢集的詳細資訊 （主控台）
<a name="Clusters.ViewDetails.CON.Memcached"></a>

您可以使用 ElastiCache 主控台、 AWS CLI 適用於 ElastiCache 的 或 ElastiCache API 檢視 Memcached 叢集的詳細資訊。

下列程序詳細說明如何使用 ElastiCache 主控台來檢視 Memcached 叢集的詳細資訊。

**檢視 Memcached 叢集的詳細資訊**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 從右上角的清單中，選擇您感興趣的 AWS 區域。

1. 在 ElastiCache 引擎儀表板中，選擇 **Memcached**。這樣做會顯示 Memcached 引擎上執行的所有叢集清單。

1. 若要查看叢集的詳細資訊，請選擇叢集名稱左側的方塊。

1. 若要檢視節點資訊，請選擇 **Nodes** (節點) 標籤，此標籤會顯示節點狀態和端點的相關資訊。

1. 若要檢視指標，請選擇 **Metrics** (指標) 標籤，此標籤會顯示叢集中所有節點的相關指標。如需詳細資訊，請參閱[使用 CloudWatch 指標監控用量](CacheMetrics.md)

1. 選擇 **Network and security** (網路和安全性) 標籤，以檢視叢集的網路連線、子網路群組組態以及 VPC 安全群組的詳細資訊。如需詳細資訊，請參閱[子網路和子網路群組](SubnetGroups.md)。

1. 選擇 **Maintenance** (維護) 標籤，以檢視叢集維護設定的詳細資訊。如需詳細資訊，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

1. 選擇 **Tags** (標籤) 標籤，以檢視套用至叢集資源的任何標籤詳細資訊。如需詳細資訊，請參閱[為您的 ElastiCache 資源加上標籤](Tagging-Resources.md)。

## 檢視 Valkey 或 Redis OSS （停用叢集模式） 詳細資訊 （主控台）
<a name="Clusters.ViewDetails.CON.Redis"></a>

您可以使用 ElastiCache 主控台、 AWS CLI 適用於 ElastiCache 的 或 ElastiCache API，檢視 Valkey 或 Redis OSS （停用叢集模式） 叢集的詳細資訊。

下列程序詳細說明如何使用 ElastiCache 主控台檢視 Valkey 或 Redis OSS （停用叢集模式） 叢集的詳細資訊。

**檢視 Valkey 或 Redis OSS （停用叢集模式） 叢集的詳細資訊**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在 ElastiCache 引擎儀表板中，選擇 **Valkey** 或 **Redis OSS** 以顯示在該引擎上執行的所有叢集清單。

1. 要查看叢集的詳細資訊，請選擇叢集名稱左側的核取方塊。請務必選取執行 Valkey 或 Redis OSS 引擎的叢集，而非叢集 Valkey 或叢集 Redis OSS。這會顯示叢集的詳細資訊，包括叢集的主端點。

1. 檢視節點資訊：

   1. 選擇叢集名稱。

   1. 選擇 **Shards and nodes** (碎片和節點) 標籤。這會顯示各節點的詳細資訊，包括您必須用來讀取叢集的節點之端點。

1. 若要檢視指標，請選擇 **Metrics** (指標) 標籤，此標籤會顯示叢集中所有節點的相關指標。如需詳細資訊，請參閱[使用 CloudWatch 指標監控用量](CacheMetrics.md)

1. 若要檢視日誌，請選擇 **Logs** (日誌) 標籤，此標籤會指出叢集是否使用慢速日誌或引擎日誌，並提供相關詳細資訊。如需詳細資訊，請參閱[日誌傳送](Log_Delivery.md)。

1. 選擇 **Network and security** (網路和安全性) 標籤，以檢視叢集網路連線和子網路群組組態的詳細資訊。如需詳細資訊，請參閱[子網路和子網路群組](SubnetGroups.md)。

1. 選擇 **Maintenance** (維護) 標籤，以檢視叢集維護設定的詳細資訊。如需詳細資訊，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

1. 選擇 **Service updates** (服務更新) 標籤，以檢視任何可用的服務更新詳細資訊，以及其建議套用日期。如需詳細資訊，請參閱[ElastiCache 中的服務更新](Self-Service-Updates.md)。

1. 選擇 **Tags** (標籤) 標籤，以檢視套用至叢集資源的任何標籤詳細資訊。如需詳細資訊，請參閱[為您的 ElastiCache 資源加上標籤](Tagging-Resources.md)。

## 檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台） 的詳細資訊
<a name="Clusters.ViewDetails.CON.RedisCluster"></a>

您可以使用 ElastiCache 主控台、 AWS CLI 適用於 ElastiCache 的 或 ElastiCache API，檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集的詳細資訊。

下列程序詳細說明如何使用 ElastiCache 主控台檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集的詳細資訊。

**檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集的詳細資訊**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 從右上角的清單中，選擇您感興趣的 AWS 區域。

1. 在 ElastiCache 引擎儀表板中，選擇 **Valkey** 或 **Redis OSS**，以顯示在該引擎上執行的所有叢集清單。

1. 若要查看 Valkey 或 Redis OSS （啟用叢集模式） 叢集的詳細資訊，請選擇叢集名稱左側的方塊。請務必選擇執行 Valkey 或叢集 Redis OSS 引擎的叢集。

   叢集下方會展開一個畫面，並顯示叢集的詳細資訊，包括叢集的組態端點。

1. 若要查看叢集碎片的清單，以及每個碎片的節點數，請選擇 **Shards and nodes** (碎片與節點) 標籤。

1. 若要檢視節點的特定資訊：

   1. 選擇碎片的 ID。

     這麼做會顯示每個節點的資訊，包括您要用來讀取叢集資料之每個節點的端點。

1. 若要檢視指標，請選擇 **Metrics** (指標) 標籤，此標籤會顯示叢集中所有節點的相關指標。如需詳細資訊，請參閱[使用 CloudWatch 指標監控用量](CacheMetrics.md)

1. 若要檢視日誌，請選擇 **Logs** (日誌) 標籤，此標籤會指出叢集是否使用慢速日誌或引擎日誌，並提供相關詳細資訊。如需詳細資訊，請參閱[日誌傳送](Log_Delivery.md)。

1. 選擇 **Network and security** (網路和安全性) 標籤，以檢視叢集的網路連線、子網路群組組態、VPC 安全群組的詳細資訊，以及 (如果有) 叢集上啟用的加密方式。如需詳細資訊，請參閱[子網路和子網路群組](SubnetGroups.md)及[Amazon ElastiCache 的資料安全性](encryption.md)。

1. 選擇 **Maintenance** (維護) 標籤，以檢視叢集維護設定的詳細資訊。如需詳細資訊，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

1. 選擇 **Service updates** (服務更新) 標籤，以檢視任何可用的服務更新詳細資訊，以及其建議套用日期。如需詳細資訊，請參閱[ElastiCache 中的服務更新](Self-Service-Updates.md)。

1. 選擇 **Tags** (標籤) 標籤，以檢視套用至叢集資源的任何標籤詳細資訊。如需詳細資訊，請參閱[為您的 ElastiCache 資源加上標籤](Tagging-Resources.md)。

## 檢視 ElastiCache 叢集的詳細資訊 (AWS CLI)
<a name="Clusters.ViewDetails.CLI"></a>

以下程式碼會列出 *my-cluster* 的詳細資訊：

```
aws elasticache describe-cache-clusters --cache-cluster-id my-cluster
```

如果使用 `create-cache-cluster` 指令所建立的叢集有 1 個快取節點和 0 碎片，將 *my-cluster* 取代為您的叢集名稱。

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "wed:12:00-wed:13:00",
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "08:30-09:30",
            "TransitEncryptionEnabled": false,
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "my-cluster1",
            "CacheClusterCreateTime": "2018-02-26T21:06:43.420Z",
            "PreferredAvailabilityZone": "us-west-2c",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
           "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2"
            },
            "SnapshotRetentionLimit": 0,
            "AutoMinorVersionUpgrade": true,
            "EngineVersion": "3.2.10",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
```

```
{
    "CacheClusters": [
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.10",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
```

```
{
    "CacheClusters": [
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.6",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.6",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
    ]
}
```

如果使用 AWS 管理主控台 （啟用或停用具有 1 個或更多碎片的叢集節點） 建立叢集，請使用下列命令來描述叢集的詳細資訊 （將 *my-cluster* 取代為複寫群組的名稱 （叢集的名稱）：

```
aws elasticache describe-replication-groups --replication-group-id my-cluster 
```

如需詳細資訊，請參閱適用於 ElastiCache AWS CLI 的 主題[https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html)。

## 檢視 ElastiCache 叢集的詳細資訊 (ElastiCache API)
<a name="Clusters.ViewDetails.API"></a>

您可以使用 ElastiCache API `DescribeCacheClusters` 動作來檢視叢集的詳細資訊。如果包含 `CacheClusterId` 參數，則會傳回指定叢集的詳細資訊。如果省略 `CacheClusterId` 參數，則會傳回最多 `MaxRecords` 個叢集 (預設值為 100) 的詳細資訊。`MaxRecords` 的值不可小於 20 或大於 100。

以下程式碼會列出 `my-cluster` 的詳細資訊。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheClusters
   &CacheClusterId=my-cluster
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

以下程式碼清單會列出最多 25 個叢集的詳細資訊。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheClusters
   &MaxRecords=25
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱 ElastiCache API 參考主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html)。

# 修改 ElastiCache 叢集
<a name="Clusters.Modify"></a>

除了從 ElastiCache 叢集新增或移除節點之外，有時您可能需要進行其他變更，例如新增安全群組、變更維護時段或參數群組。

建議您將維護時段落在使用量最低的時段。您可能需要不時進行調整。

當變更叢集的參數時，變更即會立即套用至叢集，或在叢集重新啟動之後套用。無論是變更叢集的參數群組本身或是叢集的參數群組內的參數值，均適用此情況。若要判斷何時套用特定參數變更，請參閱 [Memcached 專用參數](ParameterGroups.Engine.md#ParameterGroups.Memcached)和 資料表中**詳細資訊**欄**的變更生效**一節[Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。如需重新啟動叢集節點的資訊，請參閱[重新啟動節點](nodes.rebooting.md)。

## 使用 ElastiCache AWS 管理主控台
<a name="Clusters.Modify.CON"></a>

**修改叢集**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 從右上角的清單中，選擇您要修改的叢集所在的 AWS 區域。

1. 在導覽窗格中，選擇您要修改之叢集所執行的引擎。

   接著會出現所選引擎的叢集清單。

1. 在叢集清單中，針對您要修改的叢集，選擇其名稱。

1. 選擇 **Actions (動作)**，然後選擇 **Modify (修改)**。

   **Modify Cluster (修改叢集)** 視窗隨即出現。

1. 在 **Modify Cluster (修改叢集)** 視窗中，進行所需的修改。選項包括：
   + 描述
   + 叢集模式 – 若要將叢集模式從**停用**修改為**啟用**，您必須先將叢集模式設定為**相容**。

     相容模式可讓您的 Valkey 或 Redis OSS 用戶端使用啟用叢集模式和停用叢集模式進行連線。遷移所有 Valkey 或 Redis OSS 用戶端以使用啟用的叢集模式後，您就可以完成叢集模式組態，並將叢集模式設定為**已啟用**。
   + 引擎版本相容性
**重要**  
您可以升級到較新的引擎版本。如果您升級主要引擎版本 (例如從 5.0.6 升級到 6.0)，則需要選取與新引擎版本相容的參數群組系列。如需這項作業的詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。不過，您無法降級至舊版引擎，除非您刪除現有的叢集，並重新建立叢集。
   + VPC 安全群組
   + 參數群組
   + 節點類型
**注意**  
如果叢集使用 r6gd 系列中的節點類型，則只能從該系列中選擇不同的節點大小。如果從 r6gd 系列中選擇節點類型，則將自動啟用資料分層。如需詳細資訊，請參閱[資料分層](data-tiering.md)。
   + Multi-AZ
   + 自動容錯移轉 (僅適用於停用叢集模式)
   + 啟用自動備份
   + 備份節點 ID
   + 備份保留期間
   + 備份時段
   + SNS 通知的主題
   + Memcached 引擎版本相容性
   + Network type (網路類型)
**注意**  
如果您要從 IPv4 切換到 IPv6，則須選取或建立與 IPv6 相容的子網路群組。如需詳細資訊，請參閱[在 ElastiCache 中選擇網路類型](network-type.md)。
   + VPC 安全群組
   + 參數群組
   + 維護時段
   + SNS 通知的主題

   「**立即套用**」方塊僅適用於引擎版本和節點類型修改。若要立即套用變更，請選擇 **Apply Immediately (立即套用)** 核取方塊。如果未選擇此方塊，引擎版本的修改將於下次維護時段套用。其他修改 (例如變更維護時段) 則會立即套用。

**啟用/停用 Redis 的日誌交付**

1. 從叢集清單中選擇您要修改的叢集。請選擇**叢集名稱**而不是名稱旁邊的核取方塊。

1. 在**叢集詳細資訊**頁面上，選擇**日誌**索引標籤。

1. 若要啟用或停用慢速日誌，請選擇**啟用或停用******。

   如果您選擇 Enable (啟用)：

   1. 在 **Log format** (日誌格式) 下，選擇 **JSON** 或 **Text** (文字)。

   1. 在 **Log destination type** (日誌目的地類型) 下，選擇 **CloudWatch Logs** 或 **Kinesis Firehose**。

   1. 在**日誌目的地**下，您可以選擇**建立新的** ，然後輸入您的 CloudWatchLogs 日誌群組名稱或 Kinesis Data Firehose 串流名稱。您也可以選擇**選取現有**，然後選擇 CloudWatchLogs 日誌群組名稱或 Kinesis Data Firehose 串流名稱。

   1. 選擇 **啟用** 。

**若要變更 Redis 的組態：**

1. 選擇 **Modify** (修改)。

1. 在 **Log format** (日誌格式) 下，選擇 **JSON** 或 **Text** (文字)。

1. 在 **Destination Type (目的地類型)** 下，選擇 **CloudWatch Logs** 或 **Kinesis Firehose**。

1. 在 **Log destination** (日誌目的地) 下，選擇 **Create new** (新建)，然後輸入您的 CloudWatchLogs 日誌群組名稱或 Kinesis Data Firehose 串流名稱。或是選擇 **Select existing** (選取現有)，然後選擇您的 CloudWatchLogs 日誌群組名稱或 Kinesis Data Firehose 串流名稱。

## AWS CLI 搭配 ElastiCache 使用
<a name="Clusters.Modify.CLI"></a>

您可以使用 操作修改現有的叢集 AWS CLI `modify-cache-cluster`。若要修改叢集的組態值，請指定叢集 ID、要變更的參數以及參數的新值。下方範例會變更名稱為 `my-cluster` 之叢集的維護時段，並立即套用變更。

**重要**  
您可以升級至較新的 Memcached 引擎版本。如需這項作業的詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。不過，您無法降級至舊版引擎，除非您刪除現有的叢集，並重新建立叢集。

**重要**  
您可以升級至較新的 Valkey 或 Redis OSS 引擎版本。如果您將主要引擎版本升級，例如從 Redis OSS 5.0.6 升級至 Redis OSS 6.0，則需要選取與新引擎版本相容的參數群組系列。如需這項作業的詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。不過，您無法降級至舊版引擎，除非您刪除現有的叢集，並重新建立叢集。

若為 Linux、macOS 或 Unix：

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --preferred-maintenance-window sun:23:00-mon:02:00
```

針對 Windows：

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --preferred-maintenance-window sun:23:00-mon:02:00
```

`--apply-immediately` 參數僅適用於節點類型、引擎版本和叢集節點數的修改。如果您要立即套用其中任何變更，請使用 `--apply-immediately` 參數。如果您想將這些變更延期至下一個維護時段，請使用 `--no-apply-immediately` 參數。其他修改 (例如變更維護時段) 則會立即套用。

如需詳細資訊，請參閱適用於 ElastiCache AWS CLI 的 主題[https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)。

## 使用 ElastiCache API
<a name="Clusters.Modify.API"></a>

您可以使用 ElastiCache API `ModifyCacheCluster` 作業修改現有的叢集。若要修改叢集的組態值，請指定叢集 ID、要變更的參數以及參數的新值。下方範例會變更名稱為 `my-cluster` 之叢集的維護時段，並立即套用變更。

**重要**  
您可以升級至較新的 Memcached 引擎版本。如需這項作業的詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。不過，您無法降級至舊版引擎，除非您刪除現有的叢集，並重新建立叢集。

**重要**  
您可以升級至較新的 Valkey 或 Redis OSS 引擎版本。如果您將主要引擎版本升級，例如從 Redis OSS 5.0.6 升級至 Redis OSS 6.0，則需要選取與新引擎版本相容的參數群組系列。如需這項作業的詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。不過，您無法降級至舊版引擎，除非您刪除現有的叢集，並重新建立叢集。

加上分行符號的用意是便於閱讀。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyCacheCluster
    &CacheClusterId=my-cluster
    &PreferredMaintenanceWindow=sun:23:00-mon:02:00
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150901T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20150202T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20150901T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

`ApplyImmediately` 參數僅適用於節點類型、引擎版本和叢集節點數的修改。如果您要立即套用其中任何變更，請將 `ApplyImmediately` 參數設為 `true`。如果您想將這些變更延期至下一個維護時段，請將 `ApplyImmediately` 參數設為 `false`。其他修改 (例如變更維護時段) 則會立即套用。

如需詳細資訊，請參閱 ElastiCache API 參考主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)。

# 將節點新增至 ElastiCache 叢集
<a name="Clusters.AddNode"></a>

將節點新增至 Memcached 叢集會增加叢集分割區的數量。當您變更叢集中的分割區數量時，您必須重新對應一些鍵空間，以讓它們對應到正確的節點。重新對應鍵空間時，會暫時增加叢集的快取未命中數。如需詳細資訊，請參閱[設定 ElastiCache 用戶端以實現高效率的負載平衡 (Memcached)](BestPractices.LoadBalancing.md)。

若要重新設定您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)

您可以使用 ElastiCache 管理主控台、AWS CLI或 ElastiCache API 將節點新增至叢集。

## 使用 ElastiCache AWS 管理主控台
<a name="Clusters.AddNode.CON"></a>

如果您想要將節點新增至單一節點 Valkey 或 Redis OSS （停用叢集模式） 叢集 （未啟用複寫），則這是一個兩步驟的程序：首先新增複寫，然後新增複本節點。

**主題**
+ [將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集](#AddReplication.CON)
+ [將節點新增至 ElastiCache 叢集 （主控台）](#AddNode.CON)

下列程序會將複寫新增至未啟用複寫的單一節點 Valkey 或 Redis OSS。當您新增複寫時，現有節點會變成已啟用複寫之叢集中的主要節點。新增複寫之後，您即可新增最多 5 個複本節點至該叢集。<a name="AddReplication.CON"></a>

**將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集**

1. 登入AWS 管理主控台並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

   隨即顯示執行該引擎的叢集清單。

1. 選擇您要為其新增節點的叢集名稱，而非叢集名稱左側的方塊。

   下列適用於未啟用複寫的 Redis OSS 叢集：
   + 它正在執行 Redis OSS，而非叢集 Redis OSS。
   + 它具有零個碎片。

     如果叢集有任何碎片，該叢集就已經啟用複寫，因此您可以繼續 [將節點新增至 ElastiCache 叢集 （主控台）](#AddNode.CON)。

1. 選擇 **Add replication (新增複寫)**。

1. 在 **Add Replication (新增複寫)** 中，為這個已啟用複寫的叢集輸入說明。

1. 選擇**新增**。

   只要叢集的狀態回到*「可用」*，您就可以繼續下一個程序並新增複本至叢集。<a name="AddNode.CON"></a>

**將節點新增至 ElastiCache 叢集 （主控台）**

下列程序可用來將節點新增至叢集。

1. 登入AWS 管理主控台並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇您要為其新增節點之叢集所執行的引擎。

   接著會出現執行所選引擎的叢集清單。

1. 從叢集清單中，針對您要新增節點的叢集，選擇其名稱。

   如果您的叢集是 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。

   如果您的叢集是具有零碎片的 Valkey 或 Redis OSS （停用叢集模式） 叢集，請先完成 中的步驟[將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集](#AddReplication.CON)。

1. 選擇 **Add node (新增節點)**。

1. 完成 **Add Node (新增節點)** 對話方塊中請求的資訊。

1. 選擇 **Apply Immediately - Yes (立即套用 - 是)** 按鈕可立即新增此節點；或選擇 **No (否)**，在此叢集的下一個維護時段期間，新增此節點。  
**新增和移除要求對待定請求的影響**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/Clusters.AddNode.html)

   若要判斷哪些作業處於待定狀態，請選擇 **Description (描述)** 索引標籤，並檢查顯示多少待定的建立或刪除項目。待定建立和待定刪除項目不能同時存在。

1. 選擇 **Add (新增)** 按鈕。

    在一段時間之後，新的節點應會顯示在節點清單中，且狀態為 **creating (建立中)**。如果並未顯示，請重新整理瀏覽器頁面。如果節點狀態變更為*「可用」*，新的節點即可供使用。

## AWS CLI搭配 ElastiCache 使用
<a name="Clusters.AddNode.CLI"></a>

若要使用 將節點新增至叢集AWS CLI，請使用AWS CLI操作`modify-cache-cluster`搭配下列參數：
+ `--cache-cluster-id` 您想為其新增節點的叢集 ID。
+ `--num-cache-nodes` `--num-cache-nodes` 參數可指定套用修改之後您要在此叢集中使用的節點數。若要新增節點至此叢集，`--num-cache-nodes` 必須大於此叢集中的目前節點數。如果此值小於目前節點數，ElastiCache 會預期收到 `cache-node-ids-to-remove` 參數以及要從叢集中移除的節點清單。如需詳細資訊，請參閱[AWS CLI搭配 ElastiCache 使用](Clusters.DeleteNode.md#Clusters.DeleteNode.CLI)。
+ `--apply-immediately` 或 `--no-apply-immediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。

針對 Linux、macOS 或 Unix：

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --num-cache-nodes 5 \
    --apply-immediately
```

針對 Windows：

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --num-cache-nodes 5 ^
    --apply-immediately
```

此作業會產生類似下列的輸出 (JSON 格式)：

```
{
    "CacheCluster": {
        "Engine": "memcached", 
        "CacheParameterGroup": {
            "CacheNodeIdsToReboot": [], 
            "CacheParameterGroupName": "default.memcached1.4", 
            "ParameterApplyStatus": "in-sync"
        }, 
        "CacheClusterId": "my-cluster", 
        "PreferredAvailabilityZone": "us-west-2b", 
        "ConfigurationEndpoint": {
            "Port": 11211, 
            "Address": "rlh-mem000.7alc7bf-example.cfg.usw2.cache.amazonaws.com"
        }, 
        "CacheSecurityGroups": [], 
        "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", 
        "AutoMinorVersionUpgrade": true, 
        "CacheClusterStatus": "modifying", 
        "NumCacheNodes": 2, 
        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
        "SecurityGroups": [
            {
                "Status": "active", 
                "SecurityGroupId": "sg-dbe93fa2"
            }
        ], 
        "CacheSubnetGroupName": "default", 
        "EngineVersion": "1.4.24", 
        "PendingModifiedValues": {
            "NumCacheNodes": 5
        }, 
        "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", 
        "CacheNodeType": "cache.m3.medium",
         "DataTiering": "disabled",
    }
}
```

如需詳細資訊，請參閱AWS CLI主題 [https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)。

## AWS CLI搭配 ElastiCache 使用
<a name="Clusters.AddNode.CLI"></a>

如果您想要將節點新增至未啟用複寫的現有 Valkey 或 Redis OSS （停用叢集模式） 叢集，您必須先建立將現有叢集指定為主要叢集的複寫群組。如需詳細資訊，請參閱[使用可用的 Valkey 或 Redis OSS 叢集建立複寫群組 (AWS CLI)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.CLI)。複寫群組為*「可用」*之後，您即可繼續下列程序。

若要使用 將節點新增至叢集AWS CLI，請使用AWS CLI操作`increase-replica-count`搭配下列參數：
+ `--replication-group-id` 您想為其新增節點的複寫群組 ID。
+ `--new-replica-count` 可指定套用修改之後您要在此複寫群組中使用的節點數。若要新增節點至此叢集，`--new-replica-count` 必須大於此叢集中的目前節點數。
+ `--apply-immediately` 或 `--no-apply-immediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。

針對 Linux、macOS 或 Unix：

```
aws elasticache increase-replica-count \
    --replication-group-id my-replication-group \
    --new-replica-count 4 \
    --apply-immediately
```

針對 Windows：

```
aws elasticache increase-replica-count ^
    --replication-group-id my-replication-group ^
    --new-replica-count 4 ^
    --apply-immediately
```

此作業會產生類似下列的輸出 (JSON 格式)：

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "node-test",
        "Description": "node-test",       
        "Status": "modifying",
        "PendingModifiedValues": {},
        "MemberClusters": [
            "node-test-001",
            "node-test-002",
            "node-test-003",
            "node-test-004",
            "node-test-005"
        ],
        "NodeGroups": [
            {
                "NodeGroupId": "0001",
                "Status": "modifying",
                "PrimaryEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "ReaderEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "NodeGroupMembers": [
                    {
                        "CacheClusterId": "node-test-001",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2a",
                        "CurrentRole": "primary"
                    },
                    {
                        "CacheClusterId": "node-test-002",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2c",
                        "CurrentRole": "replica"
                    },
                    {
                        "CacheClusterId": "node-test-003",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2b",
                        "CurrentRole": "replica"
                    }
                ]
            }
        ],
        "SnapshottingClusterId": "node-test-002",
        "AutomaticFailover": "enabled",
        "MultiAZ": "enabled",
        "SnapshotRetentionLimit": 1,
        "SnapshotWindow": "07:30-08:30",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r5.large",
         "DataTiering": "disabled",
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false,
        "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test"
    }
}
```

如需詳細資訊，請參閱AWS CLI主題 [https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html)。

## 使用 ElastiCache API
<a name="Clusters.AddNode.API"></a>

如果您想要將節點新增至未啟用複寫的現有 Valkey 或 Redis OSS （停用叢集模式） 叢集，您必須先建立將現有叢集指定為主要叢集的複寫群組。如需詳細資訊，請參閱[將複本新增至獨立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (ElastiCache API)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.API)。複寫群組為*「可用」*之後，您即可繼續下列程序。

**將節點新增至叢集 (ElastiCache API)**
+ 使用下列參數呼叫 `IncreaseReplicaCount` API 操作：
  + `ReplicationGroupId` 您想為其新增節點的叢集 ID。
  + `NewReplicaCount` `NewReplicaCount` 參數可指定套用修改之後您要在此叢集中使用的節點數。若要新增節點至此叢集，`NewReplicaCount` 必須大於此叢集中的目前節點數。如果此值小於目前節點數，請使用 `DecreaseReplicaCount` API 以及要從叢集中移除的節點數。
  + `ApplyImmediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。
  + `Region` 指定您要新增節點的叢集AWS區域。

  下列範例說明可將節點新增至叢集的呼叫。  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=true
      &NumCacheNodes=4
      &ReplicationGroupId=my-replication-group
      &Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
      &X-Amz-Date=20141201T220302Z
      &X-Amz-SignedHeaders=Host
      &X-Amz-Expires=20141201T220302Z
      &X-Amz-Credential=<credential>
      &X-Amz-Signature=<signature>
  ```

如需詳細資訊，請參閱 ElastiCache API 主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html)。

## 使用 ElastiCache API
<a name="Clusters.AddNode.API"></a>

**將節點新增至叢集 (ElastiCache API)**
+ 使用下列參數呼叫 `ModifyCacheCluster` API 操作：
  + `CacheClusterId` 您想為其新增節點的叢集 ID。
  + `NumCacheNodes` `NumCachNodes` 參數可指定套用修改之後您要在此叢集中使用的節點數。若要新增節點至此叢集，`NumCacheNodes` 必須大於此叢集中的目前節點數。如果此值小於目前節點數，ElastiCache 會預期收到 `CacheNodeIdsToRemove` 參數以及要從叢集中移除的節點清單 (請參閱「[搭配 Memcached 使用 ElastiCache API](Clusters.DeleteNode.md#Clusters.DeleteNode.API)」)。
  + `ApplyImmediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。
  + `Region` 指定您要新增節點的叢集AWS區域。

  下列範例說明可將節點新增至叢集的呼叫。  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=ModifyCacheCluster
      &ApplyImmediately=true
      &NumCacheNodes=5
  	&CacheClusterId=my-cluster
  	&Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
      &X-Amz-Date=20141201T220302Z
      &X-Amz-SignedHeaders=Host
      &X-Amz-Expires=20141201T220302Z
      &X-Amz-Credential=<credential>
      &X-Amz-Signature=<signature>
  ```

如需詳細資訊，請參閱 ElastiCache API 主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)。

# 從 ElastiCache 叢集移除節點
<a name="Clusters.DeleteNode"></a>

您可以使用 、 或 ElastiCache API AWS 管理主控台，從 Valkey AWS CLI、Memcached 或 Redis OSS 叢集刪除節點。

**注意**  
每當您變更 Memcached 叢集中的節點數量時，必須至少重新對應一些索引鍵空間，使其對應到正確的節點。如需有關負載平衡 Memcached 叢集的詳細資訊，請參閱[設定 ElastiCache 用戶端以實現高效率的負載平衡 (Memcached)](BestPractices.LoadBalancing.md)。

## 使用 ElastiCache AWS 管理主控台
<a name="Clusters.DeleteNode.CON"></a>

**從叢集中移除節點 (主控台)**

1. 登入AWS 管理主控台並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從右上角的清單中，選擇要從中移除節點的叢集AWS區域。

1. 在導覽窗格中，選擇您要從中移除節點之叢集所執行的引擎。

   接著會出現執行所選引擎的叢集清單。

1. 在叢集清單中，選擇您要從中移除節點的叢集名稱。

   接著會出現叢集的節點清單。

1. 選擇您要移除之節點的節點 ID 旁的方塊。使用 ElastiCache 主控台時，您一次只能刪除一個節點，因此選擇多個節點表示您無法使用 **Delete node (刪除節點)** 按鈕。

   *Delete Node (刪除節點)* 頁面隨即出現。

1. 若要刪除節點，請完成 **Delete Node (刪除節點)** 頁面，然後選擇 **Delete Node (刪除節點)**。如要保留節點，請選擇 **Cancel (取消)**。
**重要**  
使用 Valkey 或 Redis OSS，如果您刪除叢集中不再符合異地同步備份標準的節點結果，請務必先清除**異地同步**備份核取方塊，然後刪除節點。如果清除 **Multi-AZ (多個可用區)** 核取方塊，您可以選擇啟用 **Auto failover (自動容錯移轉)**。


**新增和移除請求對待定請求的影響**  

| 案例 | 待定作業 | 新請求 | 結果 | 
| --- | --- | --- | --- | 
|  案例 1 |  刪除 | 刪除 |  新的刪除請求 (待定或立即) 會取代待定的刪除請求。 例如，如果節點 0001、0003 和 0007 處於待定刪除狀態，並發出刪除節點 0002 和 0004 的新請求，則只會刪除節點 0002 和 0004。系統不會刪除節點 0001、0003 和 0007。 | 
|  案例 2 |  刪除 |  建立 |  新的建立請求 (待定或立即) 會取代待定的刪除請求。 例如，如果節點 0001、0003 和 0007 處於待定刪除狀態，並發出建立節點的新請求，則會建立新的節點，而不會刪除節點 0001、0003 和 0007。 | 
|  案例 3 |  建立 |  刪除 |  新的刪除請求 (待定或立即) 會取代待定的建立請求。 例如，若存在建立兩個節點的待定請求，並發出刪除節點 0003 的新請求，則不會建立新的節點，且會刪除節點 0003。 | 
|  案例 4 |  建立 |  建立 |  新的建立請求會新增至待定的建立請求。 例如，若存在建立兩個節點的待定請求，並發出建立三個節點的新請求，則新請求會新增至待定請求，並建立五個節點。 如果新的建立請求設定為 **Apply Immediately - Yes (立即套用 - 是)**，則會立即執行所有建立請求。如果新的建立請求設定為 **Apply Immediately - No (立即套用 - 否)**，則所有建立請求都處於待定狀態。 | 

若要判斷哪些作業處於待定狀態，請選擇 **Description (描述)** 索引標籤，並檢查顯示多少待定的建立或刪除項目。待定建立和待定刪除項目不能同時存在。

## AWS CLI搭配 ElastiCache 使用
<a name="Clusters.DeleteNode.CLI"></a>

1. 找出您要移除的節點 ID。如需詳細資訊，請參閱[檢視 ElastiCache 叢集的詳細資訊](Clusters.ViewDetails.md)。

1. 搭配使用 `decrease-replica-count` CLI 操作與要移除的節點清單，如下列範例所示。

   若要使用命令列界面移除叢集中的節點，請搭配使用 `decrease-replica-count` 命令與下列參數：
   + `--replication-group-id` 您想要從中移除節點的快取複寫群組 ID。
   + `--new-replica-count` `--new-replica-count` 參數可指定套用修改之後您要在此叢集中使用的節點數。
   + `--replicas-to-remove` 您要從這個叢集中移除的節點 ID 清單。
   + `--apply-immediately` 或 `--no-apply-immediately` 指定是否要立即移除這些節點，或等到下個維護時段再移除。
   + `--region` 指定您要從中移除節點的叢集AWS區域。
**注意**  
呼叫此作業時，您只能傳遞其中一個 `--replicas-to-remove` 或 `--new-replica-count` 參數。

   針對 Linux、macOS 或 Unix：

   ```
   aws elasticache decrease-replica-count \
       --replication-group-id my-replication-group \
       --new-replica-count 2 \   
       --region us-east-2 \
       --apply-immediately
   ```

   針對 Windows：

   ```
   aws elasticache decrease-replica-count ^
       --replication-group-id my-replication-group ^
       --new-replica-count 3 ^   
       --region us-east-2 ^
       --apply-immediately
   ```

   此作業會產生類似下列的輸出 (JSON 格式)：

   ```
   {
       "ReplicationGroup": {
           "ReplicationGroupId": "node-test",
           "Description": "node-test"
          },
           "Status": "modifying",
           "PendingModifiedValues": {},
           "MemberClusters": [
               "node-test-001",
               "node-test-002",
               "node-test-003",
               "node-test-004",
               "node-test-005",
               "node-test-006"
           ],
           "NodeGroups": [
               {
                   "NodeGroupId": "0001",
                   "Status": "modifying",
                   "PrimaryEndpoint": {
                       "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                       "Port": 6379
                   },
                   "ReaderEndpoint": {
                       "Address": "node-test-ro.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                       "Port": 6379
                   },
                   "NodeGroupMembers": [
                       {
                           "CacheClusterId": "node-test-001",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2a",
                           "CurrentRole": "primary"
                       },
                       {
                           "CacheClusterId": "node-test-002",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2c",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-003",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-004",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-004.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2c",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-005",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-005.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-006",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-006.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       }
                   ]
               }
           ],
           "SnapshottingClusterId": "node-test-002",
           "AutomaticFailover": "enabled",
           "MultiAZ": "enabled",
           "SnapshotRetentionLimit": 1,
           "SnapshotWindow": "07:30-08:30",
           "ClusterEnabled": false,
           "CacheNodeType": "cache.r5.large",
            "DataTiering": "disabled",
           "TransitEncryptionEnabled": false,
           "AtRestEncryptionEnabled": false,
           "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test"
       }
   }
   ```

或者，您可以呼叫 `decrease-replica-count`，不傳入 `--new-replica-count` 參數，而是可以傳遞 `--replicas-to-remove` 參數，如下所示：

針對 Linux、macOS 或 Unix：

```
aws elasticache decrease-replica-count \
    --replication-group-id my-replication-group \
    --replicas-to-remove node-test-003 \   
    --region us-east-2 \
    --apply-immediately
```

針對 Windows：

```
aws elasticache decrease-replica-count ^
    --replication-group-id my-replication-group ^
    --replicas-to-remove node-test-003 ^   
    --region us-east-2 ^
    --apply-immediately
```

如需詳細資訊，請參閱AWS CLI主題 [https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html)。

## 搭配 Valkey 或 Redis OSS 使用 ElastiCache API
<a name="Clusters.DeleteNode.API2"></a>

若要使用 ElastiCache API 移除節點，請搭配使用複寫群組 ID 與要移除的節點清單來呼叫 `DecreaseReplicaCount` API 作業，如下所示：
+ `ReplicationGroupId` 您想要從中移除節點的快取複寫群組 ID。
+ `ReplicasToRemove` `ReplicasToRemove` 參數可指定套用修改之後您要在此叢集中使用的節點數。
+ `ApplyImmediately` 指定是否要立即移除這些節點，或等到下個維護時段再移除。
+ `Region` 指定您要從中移除節點的叢集AWS區域。

下列範例會從 my-cluster 叢集中立即移除節點 0004 和 0005。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DecreaseReplicaCount
    &ReplicationGroupId=my-replication-group
    &ApplyImmediately=true
    &ReplicasToRemove=node-test-003    
    &Region us-east-2
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

如需詳細資訊，請參閱 ElastiCache API 主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html)。

## 搭配 Memcached 使用 ElastiCache API
<a name="Clusters.DeleteNode.API"></a>

若要使用 ElastiCache API 移除節點，請搭配使用快取叢集 ID 與要移除的節點清單來呼叫 `ModifyCacheCluster` API 作業，如下所示：
+ `CacheClusterId` 您要從中移除節點的叢集 ID。
+ `NumCacheNodes` `NumCacheNodes` 參數可指定套用修改之後您要在此叢集中使用的節點數。
+ `CacheNodeIdsToRemove.member.n` 要從叢集中移除的節點 ID 清單。
  + `CacheNodeIdsToRemove.member.1=0004`
  + `CacheNodeIdsToRemove.member.1=0005`
+ `ApplyImmediately` 指定是否要立即移除這些節點，或等到下個維護時段再移除。
+ `Region` 指定您要從中移除節點的叢集AWS區域。

下列範例會從 my-cluster 叢集中立即移除節點 0004 和 0005。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyCacheCluster
    &CacheClusterId=my-cluster
    &ApplyImmediately=true
    &CacheNodeIdsToRemove.member.1=0004
    &CacheNodeIdsToRemove.member.2=0005
    &NumCacheNodes=3   
    &Region us-east-2
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

如需詳細資訊，請參閱 ElastiCache API 主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)。

# 取消 ElastiCache 中的待定新增或刪除節點操作
<a name="Clusters.CancelPending"></a>

如果您選擇不立即套用 ElastiCache 叢集變更，則操作會處於**待**定狀態，直到在下一個維護時段執行為止。您可以取消任何待處理的新增或刪除操作。

若要使用 取消待定的新增或刪除節點操作 AWS CLI，請使用 `modify-cache-cluster`命令。將 `num-cache-nodes`設定為等於叢集中目前快取節點的數量，然後新增 `--apply-immediately`旗標。這將覆寫待定的變更。

若要取消待定節點新增或刪除：

```
aws elasticache modify-cache-cluster 
	--cache-cluster-id <your-cluster-id> 
	--num-cache-nodes <current-number-of-nodes> 
	--apply-immediately
```

如果不清楚是否有任何節點新增或刪除處於待定狀態，您可以使用 `describe-cache-clusters`命令確認其狀態：

```
aws elasticache describe-cache-clusters 
	--cache-cluster-id <your-cluster-id>
```

任何待定節點都應該出現在`PendingModifiedValues`輸出中。例如：

```
"PendingModifiedValues": {
	"NumCacheNodes": 3
	},
```

# 在 ElastiCache 中刪除叢集
<a name="Clusters.Delete"></a>

只要 ElastiCache 叢集處於*可用*狀態，就會向您收取費用，無論您是否正在使用它。若要停止產生費用，請刪除叢集。

**警告**  
當您刪除 ElastiCache 叢集時，會保留您的手動快照。您也可以在刪除叢集之前建立最終快照。自動快取快照則不會保留。

## 使用AWS 管理主控台
<a name="Clusters.Delete.CON"></a>

以下程序會從您的部署中刪除單一叢集。若要刪除多個叢集，請針對每個要刪除的叢集重複此程序。您不需要等待某個叢集完成刪除，即可開始刪除其他叢集。

**刪除叢集**

1. 登入AWS 管理主控台，並在 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)：// 開啟 Amazon ElastiCache 主控台。

1. 在 ElastiCache 引擎儀表板中，選擇您要刪除之叢集中執行的引擎。

   接著會出現執行該引擎的所有叢集清單。

1. 要選擇欲刪除的叢集，請從叢集清單選擇叢集的名稱。
**重要**  
您一次只能從 ElastiCache 主控台刪除一個叢集。選擇多個叢集會停用刪除操作。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 在 **Delete Cluster (刪除叢集)** 確認畫面中，選擇 **Delete (刪除)** 以刪除叢集，或選擇 **Cancel (取消)** 來保留叢集。

   如果您選擇 **Delete (刪除)**，叢集的狀態就會變更為 *deleting (正在刪除)*。

一旦您的叢集不再列於叢集清單，您就不會再因此產生費用。

## 使用AWS CLI刪除 ElastiCache 叢集
<a name="Clusters.Delete.CLI"></a>

下列程式碼會刪除 ElastiCache 叢集 `my-cluster`。

```
aws elasticache delete-cache-cluster --cache-cluster-id my-cluster
```

CLI `delete-cache-cluster` 動作只會刪除一個叢集。若要刪除多個叢集，`delete-cache-cluster`請針對您要刪除的每個快取叢集呼叫 。您不需要等待某個叢集完成刪除，即可刪除另一個叢集。

針對 Linux、macOS 或 Unix：

```
aws elasticache delete-cache-cluster \
    --cache-cluster-id my-cluster \
    --region us-east-2
```

針對 Windows：

```
aws elasticache delete-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --region us-east-2
```

如需詳細資訊，請參閱適用於 ElastiCache AWS CLI的 主題[https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html)。

## 使用 ElastiCache API
<a name="Clusters.Delete.API"></a>

下列程式碼會刪除 `my-cluster` 叢集。

```
https://elasticache.us-west-2.amazonaws.com/    
    ?Action=DeleteCacheCluster
    &CacheClusterId=my-cluster
    &Region us-east-2
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20150202T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20150202T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

`DeleteCacheCluster` API 操作只會刪除一個叢集。若要刪除多個叢集，`DeleteCacheCluster`請針對您要刪除的每個叢集呼叫 。您不需要等待某個叢集完成刪除，即可刪除另一個叢集。

如需詳細資訊，請參閱 ElastiCache API 參考主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html)。

# 存取您的 ElastiCache 叢集或複寫群組
<a name="accessing-elasticache"></a>

Amazon ElastiCache 執行個體設計為透過 Amazon EC2 執行個體來存取。

若您在 Amazon Virtual Private Cloud (Amazon VPC) 中啟動 ElastiCache 執行個體，您可以從同一個 Amazon VPC 中的 Amazon EC2 執行個體存取您的 ElastiCache 執行個體。或者，您可以透過使用 VPC 對等互連，從不同 Amazon VPC 中的 Amazon EC2 存取 ElastiCache 執行個體。

如果您在 EC2 Classic 中啟動了 ElastiCache 執行個體，則可透過授權讓與執行個體相關聯的 Amazon EC2 安全群組存取快取安全群組，允許 EC2 執行個體存取您的叢集。根據預設，僅有啟動叢集的帳戶才能存取該叢集。

**Topics**
+ [授權存取您的叢集或複寫群組](#grant-access)

## 授權存取您的叢集或複寫群組
<a name="grant-access"></a>

### 您在 EC2-VPC 中啟動了叢集
<a name="authorize-access-vpc"></a>

如果您將叢集啟動到 Amazon Virtual Private Cloud (Amazon VPC) 中，則只能從在同一個 Amazon VPC 中執行的 Amazon EC2 執行個體連接至 ElastiCache 叢集。在此情況下，您需要授權透過網路輸入至叢集。

**注意**  
如果您有使用 *Local Zones*，請確定已啟用。如需詳細資訊，請參閱[啟用 Local Zones](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/using-regions-availability-zones.html#opt-in-local-zone)。如此一來，您的 VPC 會擴展到該本地區域，且您的 VPC 會將該子網路視為任何其他可用區域中的任何子網路，並自動調整相關閘道、路由表和其他安全群組考量事項。

**授權從 Amazon VPC 安全群組透過網路輸入至叢集**

1. 登入AWS 管理主控台，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，在 **Network & Security (網路與安全)** 下，選擇 **Security Groups (安全群組)**。

1. 從安全群組的清單中，選擇要用於 Amazon VPC 的安全群組。除非您建立了安全群組供 ElastiCache 使用，否則此安全群組將會命名為 *default*。

1. 選擇 **Inbound (傳入)** 標籤，然後執行下列動作：

   1. 選擇**編輯**。

   1. 選擇**新增規則**。

   1. 在 **Type (類型)** 欄中，選擇 **Custom TCP rule (自訂 TCP 規則)**。

   1. 在 **Port range (連接埠範圍)** 方塊中，輸入要用於叢集節點的連接埠號碼。此號碼必須與您啟動叢集時指定的號碼相同。Memcached 的預設連接埠是 **11211** Valkey 和 Redis OSS 的預設連接埠是 **6379**。

   1. 在 **Source (來源)** 方塊中，選擇具有埠範圍 (0.0.0.0/0) 的 **Anywhere (隨處)**，讓任何您在 Amazon VPC 內啟動的 Amazon EC2 執行個體都能連接至 ElastiCache 節點。
**重要**  
向 0.0.0.0/0 開放 ElastiCache 叢集不會向網際網路公開該叢集，因為它沒有任何公有 IP 地址，因此無法從 VPC 外部進行存取。不過，預設安全群組可能會套用到客戶帳戶中的其他 Amazon EC2 執行個體，而這些執行個體可能有公有 IP 地址。如果他們正巧在預設連接埠上執行某些項目，就可能會意外公開該服務。因此，建議您建立一個 ElastiCache 專用的 VPC 安全群組。如需詳細資訊，請參閱[自訂安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#creating-your-own-security-groups)。

   1. 選擇**儲存**。

將 Amazon EC2 執行個體啟動至 Amazon VPC 中時，該執行個體就能連接至您的 ElastiCache 叢集。

### 從外部存取 ElastiCache 資源AWS
<a name="access-from-outside-aws"></a>

Amazon ElastiCache 是一種AWS服務，可提供雲端型記憶體內金鑰值存放區。此服務專為從內部存取而設計AWS。但是，若 ElastiCache 叢集託管在 VPC 內部，您可以使用網路位址轉譯 (NAT) 執行個體來提供外部存取。

#### 要求
<a name="access-from-outside-aws-requirements"></a>

您必須符合以下需求，才能從AWS外部存取 ElastiCache 資源：
+ 叢集必須位於 VPC 內，並且必須透過網路位址轉譯 (NAT) 執行個體存取。此需求沒有任何例外。
+ NAT 執行個體必須在與叢集相同的 VPC 內啟動。
+ NAT 執行個體必須在與叢集不同的公有子網路內啟動。
+ 彈性 IP 地址 (EIP) 必須與 NAT 執行個體建立關聯。iptable 的網路埠轉遞功能會用於將 NAT 執行個體上的連接埠轉送至 VPC 內的快取節點連接埠。

#### 考量事項
<a name="access-from-outside-aws-considerations"></a>

從 ElastiCache 外部存取您的 ElastiCache 資源時，應牢記以下幾點。
+ 用戶端會連線到 EIP 和 NAT 執行個體的快取連接埠。NAT 執行個體上的連接埠轉送會將流量轉送至適當的叢集節點。
+ 若新增或取代叢集節點，iptable 規則便需要更新以反映此變更。

#### 限制
<a name="access-from-outside-aws-limitations"></a>

此方法應僅用於測試及開發用途。基於下列限制，不建議用於生產用途：
+ NAT 執行個體的角色是用戶端與多個叢集間的代理。新增代理會影響叢集的效能。影響會隨著您透過 NAT 執行個體存取的叢集數量而增加。
+ 從用戶端到 NAT 執行個體的流量未經過加密。因此，建議您避免透過 NAT 執行個體傳送敏感性資料。
+ NAT 執行個體會增加維持另一個執行個體的額外負荷。
+ NAT 執行個體會做為故障的單一窗口。如需在 VPC 上設定高可用性 NAT 方式的資訊，請參閱 [Amazon VPC NAT 執行個體的高可用性：範例](https://aws.amazon.com/articles/2781451301784570)。

#### 如何從外部存取 ElastiCache 資源AWS
<a name="access-from-outside-aws-how-to"></a>

下列程序示範如何使用 NAT 執行個體連線到您的 ElastiCache 資源。

這些步驟假設下列事項：
+ `iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379`
+ `iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379`

接下來，您需要反向的 NAT：

`iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55`

您也需要啟用 IP 轉送 (預設為停用)：

`sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sudo sysctl --system`
+ 您是透過以下設定存取 Memcached 叢集：
  + IP 地址 - *10.0.1.230*
  + 預設 Memcached 連接埠 - *11211*。
  + 安全群組 - *\$110\$1.0\$1.0\$1.55\$1*
+ 您使用下列方式存取 Valkey 或 Redis OSS 叢集：
  + IP 地址 - *10.0.1.230*
  + 預設連接埠 – *6379*
  + 安全群組 - *sg-bd56b7da*
  + AWS執行個體 IP 地址 – *198.99.100.27*
+ 您信任的用戶端 IP 地址為 *198.51.100.27*。
+ 您的 NAT 執行個體具有彈性 IP 地址 *203.0.113.73*。
+ 您的 NAT 執行個體具有安全群組 *sg-ce56b7a9*。



**使用 NAT 執行個體連線到您的 ElastiCache 資源**

1. 在與叢集相同的 VPC 中，但在公有子網路中建立 NAT 執行個體。

   根據預設，VPC 精靈會啟動 *cache.m1.small* 節點類型。建議您根據需求選取節點大小。您必須使用 EC2 NAT AMI 才能從AWS外部存取 ElastiCache。

   如需有關建立 NAT 執行個體的資訊，請參閱AWS《VPC 使用者指南》中的 [NAT 執行個體](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)。

1. 建立叢集和 NAT 執行個體的安全群組規則。

   NAT 執行個體安全群組和叢集執行個體應具有以下規則：
   + 兩個傳入規則
     + 使用 Memcached 時，第一個規則是允許從信任用戶端到從 NAT 執行個體轉送的每個快取連接埠的 TCP 連線 (11211 - 11213)。
     + 透過 Valkey 和 Redis OSS，第一個規則是允許從受信任用戶端到從 NAT 執行個體轉送的每個快取連接埠 (6379 - 6381) 的 TCP 連線。
     + 允許 SSH 存取信任用戶端的第二個規則。  
**NAT 執行個體安全群組 - 使用 Memcached 的傳入規則**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/accessing-elasticache.html)  
**NAT 執行個體安全群組 - 使用 Valkey 或 Redis OSS 的傳入規則**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + 使用 Memcached 時，允許 TCP 連線快取連接埠 (11211) 的傳出規則。  
**NAT 執行個體安全群組 - 傳出規則**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + 使用 Valkey 或 Redis OSS 時，允許 TCP 連線快取連接埠 (6379) 的傳出規則。  
**NAT 執行個體安全群組 - 傳出規則**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + 使用 Memcached 時，叢集安全群組的傳入規則，允許從 NAT 執行個體到快取連接埠 (11211) 的 TCP 連線。  
**叢集執行個體安全群組 - 傳入規則**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + 使用 Valkey 或 Redis OSS 時，叢集安全群組的傳入規則，允許從 NAT 執行個體到快取連接埠 (6379) 的 TCP 連線。  
**叢集執行個體安全群組 - 傳入規則**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/accessing-elasticache.html)

1. 驗證規則。
   + 確認信任的用戶端能夠透過 SSH 連線到 NAT 執行個體。
   + 確認信任的用戶端能夠從 NAT 執行個體連線到叢集。

1. **Memcached**

   將 iptable 規則新增至 NAT 執行個體。

   iptable 規則必須新增到叢集中每個節點的 NAT 表，才能將來自 NAT 執行個體的快取連接埠轉送到叢集節點。範例看起來與以下內容相似：

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211
   ```

   叢集中每個節點的連接埠號碼必須是唯一的。例如，若搭配連接埠 11211 到 11213 使用一個三節點 Memcached 叢集，規則看起來會與以下內容相似：

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to 10.0.1.231:11211
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to 10.0.1.232:11211
   ```

   確認信任的用戶端能夠連線到叢集。

   信任的用戶端應會連線到與 NAT 執行個體相關聯的 EIP，以及對應到適當叢集節點的叢集連接埠。例如，PHP 的連接字串看起來類似如下：

   ```
   $memcached->connect( '203.0.113.73', 11211 );
   $memcached->connect( '203.0.113.73', 11212 );
   $memcached->connect( '203.0.113.73', 11213 );
   ```

   telnet 用戶端也能用於驗證連線。例如：

   ```
   telnet 203.0.113.73 11211
   telnet 203.0.113.73 11212
   telnet 203.0.113.73 11213
   ```

   **Valkey 或 Redis OSS**

   將 iptable 規則新增至 NAT 執行個體。

   iptable 規則必須新增到叢集中每個節點的 NAT 表，才能將來自 NAT 執行個體的快取連接埠轉送到叢集節點。範例看起來與以下內容相似：

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
   ```

   叢集中每個節點的連接埠號碼必須是唯一的。例如，如果使用連接埠 6379 - 6381 來使用三個節點 Redis OSS 叢集，則規則如下所示：

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379
   ```

   確認信任的用戶端能夠連線到叢集。

   信任的用戶端應會連線到與 NAT 執行個體相關聯的 EIP，以及對應到適當叢集節點的叢集連接埠。例如，PHP 的連接字串看起來類似如下：

   ```
   redis->connect( '203.0.113.73', 6379 );
   redis->connect( '203.0.113.73', 6380 );
   redis->connect( '203.0.113.73', 6381 );
   ```

   telnet 用戶端也能用於驗證連線。例如：

   ```
   telnet 203.0.113.73 6379
   telnet 203.0.113.73 6380
   telnet 203.0.113.73 6381
   ```

1. 儲存 iptable 組態。

   在測試及驗證過後儲存規則。如果您使用的是 Redhat 類型 Linux 發行版本 (例如 Amazon Linux)，我們建議使用以下命令：

   ```
   service iptables save
   ```

#### 相關主題
<a name="access-from-outside-aws-see-also"></a>

下列主題可能可以提供額外的資訊。
+ [用於存取 Amazon VPC 中 ElastiCache 快取的存取模式](elasticache-vpc-accessing.md)
+ [從在客戶資料中心執行的應用程式存取 ElastiCache 快取](elasticache-vpc-accessing.md#elasticache-vpc-accessing-data-center)
+ [NAT 執行個體](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)
+ [設定 ElastiCache 用戶端](ClientConfig.md)
+ [Amazon VPC NAT 執行個體的高可用性：範例](https://aws.amazon.com/articles/2781451301784570)

# 在 ElastiCache 中尋找連線端點
<a name="Endpoints"></a>

您的應用程式會使用端點連線至 ElastiCache 叢集。端點是節點或叢集的唯一位址。

您也可以透過建立界面 VPC 端點，在 VPC 和 ElastiCache API 端點之間建立私有連線 AWS PrivateLink。如需詳細資訊，請參閱[ElastiCache API 和界面 VPC 端點 (AWS PrivateLink)](elasticache-privatelink.md)。

**要與 Valkey 或 Redis OSS 搭配使用的端點。**
+ 對於**獨立節點**，請將節點的端點用於讀取和寫入操作。

   
+ 對於 **Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集**，請使用*主要端點*進行所有寫入操作。使用「讀取器端點」**來將傳入連線平均分散在所有讀取複本間的端點中。使用個別「節點端點」**以進行讀取操作 (在 API/CLI 中，它們稱為「讀取端點」)。

   
+ 針對 **Valkey 或 Redis OSS （啟用叢集模式） 叢集**，針對支援啟用叢集模式命令的所有操作，使用叢集的*組態端點*。您必須使用支援 Valkey Cluster 或 Redis OSS 3.2 及更高版本的 Redis OSS 叢集的用戶端。您仍然可以從個別節點端點讀取 (在 API/CLI 中，它們稱為「讀取端點」)。

   

以下各節可引導您探索執行引擎所需的端點。

**要與 Memcached 搭配使用的端點。**

對於適用於 **Memcached 的 ElastiCache 無伺服器快取**，只需從主控台取得叢集端點 DNS 和連接埠即可。

從 中 AWS CLI，使用 `describe-serverless-caches`命令來取得端點資訊。

Linux

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

Windows

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

上述操作的輸出看起來會像這樣 (JSON 格式)：

```
{
    "ServerlessCaches": [
        {
            "ServerlessCacheName": "serverless-memcached",
            "Description": "test",
            "CreateTime": 1697659642.136,
            "Status": "available",
            "Engine": "memcached",
            "MajorEngineVersion": "1.6",
            "FullEngineVersion": "21",
            "SecurityGroupIds": [
                "sg-083eda453e1e51310"
            ],
            "Endpoint": {
                "Address": "serverless-memcached-01.amazonaws.com",
                "Port":11211
            },
            "ARN": "<the ARN>",
            "SubnetIds": [
                "subnet-0cf759df15bd4dc65",
                "subnet-09e1307e8f1560d17"
            ],
            "SnapshotRetentionLimit": 0,
            "DailySnapshotTime": "03:00"
        }
    ]
}
```

對於以**執行個體為基礎的 Memcached 叢集**，如果您使用自動探索，則可以使用叢集的*組態端點*來設定 Memcached 用戶端。這表示您必須使用支援 Automatic Discovery 的用戶端。

如果您並未使用 Automatic Discovery，則必須將用戶端設定為使用個別的節點端點以進行讀取和寫入。您也必須在新增和移除節點時追蹤這些端點。

## 尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）
<a name="Endpoints.Find.Redis"></a>

如果 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集只有一個節點，則節點的端點會同時用於讀取和寫入。如果 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集有多個節點，則有三種類型的端點：*主要端點*、*讀取器端點*和*節點端點*。

主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動，我們建議您的應用程式連線到主要端點。

讀取器端點會在 ElastiCache for Redis OSS 叢集中的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除，讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache for Redis OSS 叢集的多個僅供讀取複本放在不同的 AWS 可用區域 (AZ)，以確保讀取器端點的高可用性。

**注意**  
讀取者端點並非負載平衡器。它是一筆 DNS 記錄，會以循環配置方式解析為其中一個複本節點的 IP 地址。

針對讀取活動，應用程式也可連線到叢集中的任何節點。與主要端點不同，節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本)，您必須更新您應用程式中的節點端點。

**尋找 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

   叢集畫面會顯示 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 叢集的清單。

1. 若要尋找叢集的主要和/或讀取器端點，請選擇叢集名稱 (而非左側的按鈕)。  
![\[影像：Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的主要端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的主要端點和讀取器端點*

   如果叢集中只有一個節點，就不會有主要端點，因此您必須繼續下一個步驟。

1. 如果 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集有複本節點，您可以選擇叢集的名稱，然後選擇**節點**索引標籤，以尋找叢集的複本節點端點。

   隨即顯示節點畫面，其顯示叢集中的每個節點、主要複本和複本，並與其端點一起列出。  
![\[影像：Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的節點端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的節點端點*

1. 將端點複製到剪貼簿：

   1. 逐一尋找您要複製的端點。

   1. 選擇端點前面的複製圖示。

   現在，端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊，請參閱 [連線至 Memcached 節點](nodes-connecting.md#nodes-connecting.mem)。

Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 主要端點看起來如下。其中的差異取決於是否啟用傳輸中加密。

**未啟用傳輸中加密**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**已啟用傳輸中加密**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

## 尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點 （主控台）
<a name="Endpoints.Find.RedisCluster"></a>

Valkey 或 Redis OSS （啟用叢集模式） 叢集具有單一組態端點。只要連線到組態端點，您的應用程式就可以探索叢集中每個碎片的主要和讀取端點。

**尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

   叢集畫面會顯示叢集清單。選擇您要連線的叢集。

1. 若要尋找叢集的組態端點，請選擇叢集名稱 (而非選項按鈕)。

1. **Configuration endpoint** (組態端點) 會顯示於 **Cluster details** (叢集詳細資訊) 中。若要加以複製，請選擇端點左側的複製圖示。

## 尋找叢集的端點 （主控台） (Memcached)
<a name="Endpoints.Find.Memcached"></a>

所有 Memcached 端點都是讀取/寫入端點。若要連線至 Memcached 叢集中的節點，您的應用程式可以使用每個叢集的端點，或搭配使用 Automatic Discovery 與叢集的組態端點。若要使用 Automatic Discovery，您必須使用支援 Automatic Discovery 的用戶端。

使用 Automatic Discovery 時，您的用戶端應用程式會使用組態端點連線至 Memcached 叢集。當您透過新增或移除節點以擴展叢集時，應用程式會自動「知道」叢集中的所有節點，並能連線至其中任何節點。如果未使用 Automatic Discovery，應用程式就無法完成上述作業；您必須在每次新增或移除節點時手動更新應用程式中的端點。

若要複製端點，請選擇端點位址前面的複製圖示。如需使用端點連線至節點的相關資訊，請參閱 [連線至 Memcached 節點](nodes-connecting.md#nodes-connecting.mem)。

組態端點和節點端點看起來非常類似。下列會將差異以**粗體**醒目提示。

```
myclustername.xxxxxx.cfg.usw2.cache.amazonaws.com:port   # configuration endpoint contains "cfg"
myclustername.xxxxxx.0001.usw2.cache.amazonaws.com:port  # node endpoint for node 0001
```

**重要**  
若您選擇為 Memcached 組態端點建立正式名稱記錄 (CNAME)，為了讓自動探索用戶端將正式名稱記錄 (CNAME) 辨識為組態端點，您必須在正式名稱記錄 (CNAME) 中包含 `.cfg.`。

## 尋找端點 (AWS CLI)
<a name="Endpoints.Find.CLI"></a>

對於 Memcached，您可以使用 AWS CLI for Amazon ElastiCache 來探索節點和叢集的端點。

對於 Redis OSS，您可以使用 AWS CLI 適用於 Amazon ElastiCache 的 來探索節點、叢集和複寫群組的端點。

**Topics**
+ [尋找節點和叢集的端點 (AWS CLI)](#Endpoints.Find.CLI.Nodes)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](#Endpoints.Find.CLI.ReplGroups)

### 尋找節點和叢集的端點 (AWS CLI)
<a name="Endpoints.Find.CLI.Nodes"></a>

您可以使用 AWS CLI ，透過 `describe-cache-clusters`命令探索叢集及其節點的端點。對於 Valkey 或 Redis OSS 叢集，命令會傳回叢集端點。 若是 Memcached 叢集，則命令會傳回組態端點。如果您包含選用參數 `--show-cache-node-info`，則命令也會傳回叢集中個別節點的端點。

**Example**  
以下命令會擷取 Memcached 叢集 *mycluster* 的組態端點 (`ConfigurationEndpoint`) 和個別節點端點 (`Endpoint`)。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
針對 Windows：  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
上述操作的輸出看起來應會與以下內容相似 (JSON 格式)。  

```
{
   "CacheClusters": [
   {
       "Engine": "memcached", 
       "CacheNodes": [
          {
             "CacheNodeId": "0001", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
             "CacheNodeId": "0002", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
                "CacheNodeId": "0003", 
                "Endpoint": {
                   "Port": 11211, 
                   "Address": "mycluster.amazonaws.com"
                }, 
                   "CacheNodeStatus": "available", 
                   "ParameterGroupStatus": "in-sync", 
                   "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                   "CustomerAvailabilityZone": "us-west-2b"
          }
       ], 
       "CacheParameterGroup": {
       "CacheNodeIdsToReboot": [], 
       "CacheParameterGroupName": "default.memcached1.4", 
       "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "us-west-2b", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-09-22T21:30:29.967Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 3, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "mon:09:00-mon:10:00", 
            "CacheNodeType": "cache.m4.large",
             "DataTiering": "disabled"
        }
    ]   
}
```
若您選擇為 Memcached 組態端點建立 CNAME，為了讓自動探索用戶端將 CNAME 辨識為組態端點，您必須在 CNAME 中包含 `.cfg.`。例如，`session.save_path` 參數 php.ini 檔案中的 `mycluster.cfg.local`。

**Example**  
針對 Valkey 和 Redis OSS，下列命令會擷取單一節點叢集 *mycluster* 的叢集資訊。  
參數`--cache-cluster-id`可與複寫群組中的單一節點 Valkey 或 Redis OSS （停用叢集模式） 叢集 ID 或特定節點 ID 搭配使用。複寫群組`--cache-cluster-id`的 是 4 位數的值，例如 `0001`。如果 `--cache-cluster-id`是複寫群組中叢集 （節點） 的 ID，則 `replication-group-id`會包含在輸出中。
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id redis-cluster \
    --show-cache-node-info
```
針對 Windows：  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id redis-cluster ^
    --show-cache-node-info
```
上述操作的輸出看起來應會與以下內容相似 (JSON 格式)。  

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "SecurityGroupId": "sg-77186e0d",
                    "Status": "active"
                }
            ],
            "CacheNodes": [
                {
                    "CustomerAvailabilityZone": "us-east-1b",
                    "CacheNodeCreateTime": "2018-04-25T18:19:28.241Z",
                    "CacheNodeStatus": "available",
                    "CacheNodeId": "0001",
                    "Endpoint": {
                        "Address": "redis-cluster.amazonaws.com",
                        "Port": 6379
                    },
                    "ParameterGroupStatus": "in-sync"
                }
            ],
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "redis-cluster",
            "TransitEncryptionEnabled": false,
            "CacheParameterGroup": {
                "ParameterApplyStatus": "in-sync",
                "CacheNodeIdsToReboot": [],
                "CacheParameterGroupName": "default.redis3.2"
            },
            "NumCacheNodes": 1,
            "PreferredAvailabilityZone": "us-east-1b",
            "AutoMinorVersionUpgrade": true,
            "Engine": "redis",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "PreferredMaintenanceWindow": "tue:08:30-tue:09:30",
            "CacheSecurityGroups": [],
            "CacheSubnetGroupName": "default",
            "CacheNodeType": "cache.t2.small",
             "DataTiering": "disabled"
            "EngineVersion": "3.2.10",
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "CacheClusterCreateTime": "2018-04-25T18:19:28.241Z"
        }
    ]
}
```

如需詳細資訊，請參閱 [describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html) 主題。

### 尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)
<a name="Endpoints.Find.CLI.ReplGroups"></a>

您可以使用 AWS CLI ，透過 `describe-replication-groups`命令探索複寫群組及其叢集的端點。此命令會傳回複寫群組的主要端點、複寫群組中所有叢集 (節點) 的清單和其端點，以及讀取器端點。

下列操作會擷取複寫群組 `myreplgroup` 的主要端點與讀取器端點。使用主要端點來進行所有寫入操作。

```
aws elasticache describe-replication-groups \
    --replication-group-id myreplgroup
```

針對 Windows：

```
aws elasticache describe-replication-groups ^
    --replication-group-id myreplgroup
```

此操作的輸出看起來應會與以下內容相似 (JSON 格式)。

```
{
   "ReplicationGroups": [
     {
       "Status": "available", 
       "Description": "test", 
       "NodeGroups": [
         {
            "Status": "available", 
               "NodeGroupMembers": [
                  {
                     "CurrentRole": "primary", 
                     "PreferredAvailabilityZone": "us-west-2a", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-001.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-001"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2b", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-002.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-002"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2c", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-003.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-003"
                  }
               ], 
               "NodeGroupId": "0001", 
               "PrimaryEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup.amazonaws.com"
               },
               "ReaderEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup-ro.amazonaws.com"
               }
            }
         ], 
         "ReplicationGroupId": "myreplgroup", 
         "AutomaticFailover": "enabled", 
         "SnapshottingClusterId": "myreplgroup-002", 
         "MemberClusters": [
            "myreplgroup-001", 
            "myreplgroup-002", 
            "myreplgroup-003"
         ], 
         "PendingModifiedValues": {}
      }
   ]
}
```

如需詳細資訊，請參閱 *AWS CLI CLI 命令參考*中的 [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)。

## 尋找端點 (ElastiCache API)
<a name="Endpoints.Find.API"></a>

對於 Memcached，您可以使用 Amazon ElastiCache API 來探索節點和叢集的端點。

對於 Redis OSS，您可以使用 Amazon ElastiCache API 探索節點、叢集和複寫群組的端點。

**Topics**
+ [找節點和叢集的端點 (ElastiCache API)](#Endpoints.Find.API.Nodes)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](#Endpoints.Find.API.ReplGroups)

### 找節點和叢集的端點 (ElastiCache API)
<a name="Endpoints.Find.API.Nodes"></a>

您可以使用 ElastiCache API 與 `DescribeCacheClusters` 動作，探索叢集和其節點的端點。對於 Valkey 或 Redis OSS 叢集，命令會傳回叢集端點。 若是 Memcached 叢集，則命令會傳回組態端點。如果您包含選用參數 `ShowCacheNodeInfo`，則動作也會傳回叢集中個別節點的端點。

**Example**  
對於 Memcached，下列命令會擷取 Memcached 叢集 *mycluster* 的組態端點 (`ConfigurationEndpoint`) 和個別節點端點 (`Endpoint`)。  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeCacheClusters
    &CacheClusterId=mycluster
    &ShowCacheNodeInfo=true
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```
若您選擇為 Memcached 組態端點建立 CNAME，為了讓自動探索用戶端將 CNAME 辨識為組態端點，您必須在 CNAME 中包含 `.cfg.`。例如，`session.save_path` 參數 php.ini 檔案中的 `mycluster.cfg.local`。

### 尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)
<a name="Endpoints.Find.API.ReplGroups"></a>

您可以使用 ElastiCache API 與 `DescribeReplicationGroups` 動作，探索複寫群組和其叢集的端點。此動作會傳回複寫群組的主要端點、複寫群組中所有叢集的清單和其端點，以及讀取器端點。

下列操作會擷取複寫群組 `myreplgroup` 的主要端點 (PrimaryEndpoint)、讀取器端點 (ReaderEndpoint) 與個別節點端點 (ReadEndpoint)。使用主要端點來進行所有寫入操作。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReplicationGroups
    &ReplicationGroupId=myreplgroup
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)。

# 在 ElastiCache 中使用碎片
<a name="Shards"></a>

碎片 (API/CLI：節點群組） 是一到六個 ElastiCache for Valkey 或 Redis OSS 節點的集合。Valkey 或 Redis OSS （停用叢集模式） 叢集絕不會有多個碎片。使用碎片，您可以將大型資料庫分成較小、更快速且更易於管理的部分，稱為資料碎片。這可以透過將操作分散到多個不同的區段來提高資料庫效率。使用碎片可以提供許多好處，包括改善效能、可擴展性和成本效益。

您可以建立具有較高數量碎片和較低數量複本的叢集，每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。叢集的資料會分割到叢集的各個碎片中。如果一個碎片中有超過一個節點，碎片會實作複寫，其中一個節點為讀取/寫入主要節點，其他節點則為僅供讀取複本節點。

如果引擎版本為 Valkey 7.2 及更高版本，或 Redis OSS 5.0.6 至 7.1，則每個叢集的節點或碎片限制最多可增加至 500 個。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

 對於 5.0.6 以下的版本，每個叢集的限制為 250 個。

若要請求提高配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選擇配額類型 **Nodes per cluster per instance type (每執行個體類型每叢集的節點數)**。

當您使用 ElastiCache 主控台建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集時，您可以指定叢集中的碎片數量和碎片中的節點數量。如需詳細資訊，請參閱[建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。如果您使用 ElastiCache API 或 AWS CLI 來建立叢集 （在 API/CLI 中稱為*複寫群組*)，您可以獨立設定碎片 (API/CLI：節點群組） 中的節點數量。如需詳細資訊，請參閱下列內容：
+ API：[CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI：[create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)

碎片中的每個節點都具有相同的運算、儲存體及記憶體規格。ElastiCache API 可讓您控制碎片的屬性，例如節點數、安全設定，以及系統維護時間。

![\[影像：Valkey 或 Redis OSS 碎片組態。\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-RedisShards.png)


*Valkey 或 Redis OSS 碎片組態*

如需詳細資訊，請參閱[Valkey 或 Redis OSS 的離線重新分片 （啟用叢集模式）](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-offline)及[Valkey 或 Redis OSS 的線上重新分片 （啟用叢集模式）](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)。

## 尋找碎片的 ID
<a name="shard-find-id"></a>

您可以使用 AWS 管理主控台、 AWS CLI 或 ElastiCache API 尋找碎片的 ID。

### 使用 AWS 管理主控台
<a name="shard-find-id-con"></a>



**Topics**
+ [針對 Valkey 或 Redis OSS （停用叢集模式）](#shard-find-id-con-classic)
+ [針對 Valkey 或 Redis OSS （啟用叢集模式）](#shard-find-id-con-cluster)

#### 針對 Valkey 或 Redis OSS （停用叢集模式）
<a name="shard-find-id-con-classic"></a>

Valkey 或 Redis OSS （停用叢集模式） 複寫群組碎片 IDs 一律為 `0001`。

#### 針對 Valkey 或 Redis OSS （啟用叢集模式）
<a name="shard-find-id-con-cluster"></a>

下列程序使用 AWS 管理主控台 尋找 Valkey 或 Redis OSS （啟用叢集模式） 的複寫群組碎片 ID。

**在 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組中尋找碎片 ID**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**，然後選擇您要尋找碎片 IDs 的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組的名稱。

1. 在 **Shard Name (碎片名稱)** 欄中，碎片 ID 是碎片名稱的最後四位數。

### 使用 AWS CLI
<a name="shard-find-id-cli"></a>

若要尋找 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組的碎片 （節點群組） ID，請使用 AWS CLI 操作`describe-replication-groups`搭配下列選用參數。
+ **`--replication-group-id`** - 選用參數，使用時會將輸出限制為指定複寫群組的詳細資訊。若忽略此參數，則最多會傳回 100 個複寫群組詳細資訊。

**Example**  
此命令將傳回 `sample-repl-group` 的詳細資訊。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-replication-groups \
    --replication-group-id sample-repl-group
```
針對 Windows：  

```
aws elasticache describe-replication-groups ^
    --replication-group-id sample-repl-group
```
此命令的輸出看起來會與以下內容相似。碎片 (節點群組) ID 已在此 *highlighted* (反白)，可讓您更輕易地找到。  

```
{
    "ReplicationGroups": [
        {
            "Status": "available", 
            "Description": "2 shards, 2 nodes (1 + 1 replica)", 
            "NodeGroups": [
                {
                    "Status": "available", 
                    "Slots": "0-8191", 
                    "NodeGroupId": "0001", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2c", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0001-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0001-002"
                        }
                    ]
                }, 
                {
                    "Status": "available", 
                    "Slots": "8192-16383", 
                    "NodeGroupId": "0002", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2b", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0002-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0002-002"
                        }
                    ]
                }
            ], 
            "ConfigurationEndpoint": {
                "Port": 6379, 
                "Address": "sample-repl-group.9dcv5r.clustercfg.usw2.cache.amazonaws.com"
            }, 
            "ClusterEnabled": true, 
            "ReplicationGroupId": "sample-repl-group", 
            "SnapshotRetentionLimit": 1, 
            "AutomaticFailover": "enabled", 
            "SnapshotWindow": "13:00-14:00", 
            "MemberClusters": [
                "sample-repl-group-0001-001", 
                "sample-repl-group-0001-002", 
                "sample-repl-group-0002-001", 
                "sample-repl-group-0002-002"
            ], 
            "CacheNodeType": "cache.m3.medium", 
            "DataTiering": "disabled",
            "PendingModifiedValues": {}
        }
    ]
}
```

### 使用 ElastiCache API
<a name="shard-find-id-api"></a>

若要尋找 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組的碎片 （節點群組） ID，請使用 AWS CLI 操作`describe-replication-groups`搭配下列選用參數。
+ **`ReplicationGroupId`** - 選用參數，使用時會將輸出限制為指定複寫群組的詳細資訊。若忽略此參數，則最多會傳回 *xxx* 個複寫群組詳細資訊。

**Example**  
此命令將傳回 `sample-repl-group` 的詳細資訊。  
若為 Linux、macOS 或 Unix：  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroup
   &ReplicationGroupId=sample-repl-group
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

# 比較節點型 Valkey、Memcached 和 Redis OSS 叢集
<a name="SelectEngine"></a>

Amazon ElastiCache 支援 Valkey、Memcached 和 Redis OSS 快取引擎。每個引擎都提供一些優點。使用本主題中的資訊來協助您選擇最符合您需求的引擎和版本。

**重要**  
建立快取、節點型叢集或複寫群組之後，您可以升級至較新的引擎版本，但無法降級至較舊的引擎版本。如果您想要使用較舊的引擎版本，則必須刪除現有的快取、節點型叢集或複寫群組，並使用較舊的引擎版本再次建立。

這兩個引擎表面上看起來很類似。每個引擎都是記憶體內金鑰/值存放區。不過，實際上有顯著的差異。

**如果適用下列情況，請選擇 Memcached：**
+ 您需要盡可能最簡單的模型。
+ 您需要執行具有多個核心或執行緒的大型節點。
+ 您需要能夠向外和向內擴展，並視您系統需求增加和減少來新增和移除節點。
+ 您需要快取物件。

**如果下列適用於您，請選擇具有 ElastiCache 的 Valkey 或 Redis OSS：**
+ **適用於 Valkey 的 ElastiCache 7.2 版或適用於 Redis OSS 的 7.0 版 （增強版）**

  您想要使用 [函數](https://valkey.io/topics/functions-intro/)、[碎片 Pub/Sub ](https://valkey.io/topics/pubsub/)或 [ACL 改進](https://valkey.io/topics/acl/)。如需詳細資訊，請參閱 [Redis OSS 7.0 版 （增強版）。](engine-versions.md#redis-version-7.0)
+ **適用於 Redis OSS 的 ElastiCache 6.2 版 （增強版）**

  您希望能夠使用 r6gd 節點類型在記憶體和 SSD 之間將資料分層。如需詳細資訊，請參閱[資料分層](data-tiering.md)。
+ **適用於 Redis OSS 的 ElastiCache 6.0 版 （增強版）**

  您想要使用角色型存取控制驗證使用者。

  如需詳細資訊，請參閱 [Redis OSS 6.0 版 （增強版）。](engine-versions.md#redis-version-6.0)
+ **適用於 Redis OSS 的 ElastiCache 5.0.0 版 （增強版）**

  您想要使用 [ Redis OSS 串流](https://redis.io/topics/streams-intro)，這是一種日誌資料結構，可讓生產者即時附加新項目，也允許取用者以封鎖或非封鎖方式取用訊息。

  如需詳細資訊，請參閱 [Redis OSS 5.0.0 版 （增強版）](engine-versions.md#redis-version-5-0)。
+ **適用於 Redis OSS 的 ElastiCache 4.0.10 版 （增強版）**

  支援加密，以及動態新增或移除 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片。

  如需詳細資訊，請參閱 [Redis OSS 4.0.10 版 （增強版）](engine-versions.md#redis-version-4-0-10)。

以下版本已棄用、已達到或即將達到生命週期結束。
+ **適用於 Redis OSS 的 ElastiCache 3.2.10 版 （增強版）**

  支援從 Valkey 或 Redis OSS （啟用叢集模式） 叢集動態新增或移除碎片的功能。
**重要**  
目前 ElastiCache 3.2.10 for Redis OSS 不支援加密。

  如需詳細資訊，請參閱下列內容：
  + [Redis OSS 3.2.10 版 （增強版）](engine-versions.md#redis-version-3-2-10)
  + Redis OSS 的線上重新分片最佳實務。如需詳細資訊，請參閱以下內容：
    + [最佳實務：線上重新分片](best-practices-online-resharding.md)
    + [Valkey 或 Redis OSS 的線上重新分片和碎片重新平衡 （啟用叢集模式）](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)
  + 如需擴展 Redis OSS 叢集的詳細資訊，請參閱[擴展](Scaling.md)。

    
+ **適用於 Redis OSS 的 ElastiCache 3.2.6 版 （增強版）**

  如果您需要舊版 Redis OSS 的功能以及下列功能，請選擇 3.2.6：
  + 傳輸中加密。如需詳細資訊，請參閱 [Amazon ElastiCache for Redis OSS 傳輸中加密](in-transit-encryption.md)。
  + 靜態加密。如需詳細資訊，請參閱 [Amazon ElastiCache for Redis OSS 靜態加密](at-rest-encryption.md)。
+ **適用於 Redis OSS 的 ElastiCache （啟用叢集模式） 3.2.4 版**

  如果您需要 2.8.x 的功能加上下列功能，請選擇 3.2.4 （叢集模式）：
  + 您需要將資料分割到 2 至 500 個節點群組中 (僅限叢集模式)。
  + 您需要地理空間索引 (叢集模式或非叢集模式)。
  + 您不需要支援多個資料庫。
+ **適用於 Redis OSS 的 ElastiCache （非叢集模式） 2.8.x 和 3.2.4 （增強版）**

  如果下列適用於您，則為 2.8.x 或 3.2.4 （非叢集模式）：
  + 您需要複雜資料類型，例如字串、雜湊、清單、集合、有序集合及點陣圖。
  + 您需要排序或排名記憶體內資料集。
  + 您的金鑰存放區必須具備持久性。
  + 您需要針對讀取密集型應用程式，將資料從主要複本複寫到一或多個僅供讀取複本。
  + 您需要在主要節點失敗時自動容錯移轉。
  + 您需要發佈和訂閱 (pub/sub) 功能，用於通知用戶端伺服器上的事件。
  + 您需要節點型叢集以及無伺服器快取的備份和還原功能。
  + 您需要支援多個資料庫。


**Memcached、Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 的比較摘要**  

|  |  Memcached  |  Valkey 或 Redis OSS （停用叢集模式）  |  Valkey 或 Redis OSS （啟用叢集模式）  | 
| --- |--- |--- |--- |
| Engine versions\$1 | 1.4.5 and later | 4.0.10 and later | 4.0.10 and later | 
| Data types | Simple  | 2.8.x - Complex \$1 | 3.2.x and later - Complex  | 
| Complex  | 
| Data partitioning | Yes | No | Yes | 
| Cluster is modifiable | Yes | Yes | 3.2.10 and later - Limited | 
| Online resharding | No | No | 3.2.10 and later | 
| Encryption | in-transit 1.6.12 and later | 4.0.10 and later | 4.0.10 and later | 
| Data tiering | No | 6.2 and later | 6.2 and later | 
| 合規認證 | 
| --- |
| Compliance Certification     FedRAMP     HIPAA     PCI DSS |   是 - 1.6.12 和更新版本 是 - 1.6.12 和更新版本 是 |   4.0.10 和更新版本 4.0.10 和更新版本 4.0.10 和更新版本 |   4.0.10 和更新版本 4.0.10 和更新版本 4.0.10 和更新版本 | 
| Multi-threaded | Yes | No | No | 
| Node type upgrade | No | Yes | Yes | 
| Engine upgrading | Yes | Yes | Yes | 
| High availability (replication) | No | Yes | Yes | 
| Automatic failover | No | Optional | Required | 
| Pub/Sub capabilities | No | Yes | Yes | 
| Sorted sets | No | Yes | Yes | 
| Backup and restore | For serverless caches only, not applicable to node-based clusters | Yes | Yes | 
| Geospatial indexing | No | 4.0.10 and later | Yes | 
| 備註： | 
|  string, objects (like databases) | 
| \$1 string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog | 
|  string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog, geospatial indexes | 
| \$1 Excludes versions which are deprecated, have reached or soon to reach end of life. | 

選擇適用於您叢集的引擎之後，我們建議您使用該引擎的最新版本。如需詳細資訊，請參閱[支援的節點類型](CacheNodes.SupportedTypes.md)。

# Valkey 或 Redis OSS 的線上遷移
<a name="OnlineMigration"></a>

 透過使用線上遷移，您可以將資料從 Amazon EC2 上的自我託管開放原始碼 Valkey 或 Redis OSS 遷移至 Amazon ElastiCache。

這是指從自我託管執行個體遷移到 ElastiCache 服務。如需從 Redis OSS 升級到 ElastiCache 上 Valkey 的資訊，請參閱 [升級引擎版本，包括跨引擎升級升級引擎版本](VersionManagement.HowTo.md)。

**注意**  
在 r6gd 節點類型上執行的 ElastiCache 無伺服器快取或叢集不支援線上遷移。

## 概觀
<a name="Migration-Overview"></a>

若要將資料從在 Amazon EC2 上執行的開放原始碼 Valkey 或 Redis OSS 遷移至 Amazon ElastiCache，需要現有或新建立的 Amazon ElastiCache 部署。此部署必須有可以遷移的組態。此叢集也必須與您要使用的組態相符，包括如執行個體類型、碎片數目和複本數目等屬性。

線上遷移旨在將資料從 Amazon EC2 上的自我託管開放原始碼 Valkey 或 Redis OSS 遷移至 ElastiCache，而不是在 ElastiCache 叢集之間移動資料。

**重要**  
強烈建議您先讀完下列段落，再開始線上遷移程序。

遷移會在您呼叫 `StartMigration` API 操作或 AWS CLI 命令時開始。遷移停用 Valkey 或 Redis OSS 叢集模式的叢集時，遷移程序會讓 ElastiCache Valkey 或 Redis OSS 叢集的主要節點成為來源 Valkey 或 Redis OSS 主要叢集的複本。遷移啟用 Valkey 或 Redis OSS 叢集模式的叢集時，遷移程序會讓每個 ElastiCache 碎片的主要節點成為擁有相同插槽之來源叢集對應碎片的複本。

在用戶端變更準備好之後，呼叫 `CompleteMigration` API 操作。此 API 操作會使用主要節點和複本節點 （如適用），將 ElastiCache 部署提升為主要 Valkey 或 Redis OSS 部署。現在您可以重新引導用戶端應用程式開始在 ElastiCache 寫入資料。在整個遷移過程中，您可以透過在 [Valkey 節點和 ElastiCache 主節點上執行 valkey-cli INFO](https://valkey.io/commands/info) 命令來檢查複寫狀態。 ElastiCache 

## 遷移步驟
<a name="Migration-Steps"></a>

以下主題說明遷移資料的程序：
+ [準備您的來源和目標以進行遷移](Migration-Prepare.md)
+ [測試資料遷移](Migration-Test.md)
+ [開始遷移](Migration-Initiate.md)
+ [驗證資料遷移程序](Migration-Verify.md)
+ [完成資料遷移](Migration-Complete.md)

# 準備您的來源和目標以進行遷移
<a name="Migration-Prepare"></a>

透過這些步驟，您可以準備將資料從 EC2 上的自我託管 Valkey 或 Redis 來源遷移至 ElastiCache，或從 Redis OSS 叢集遷移至 ElastiCache Valkey 叢集。

這是指從自我託管執行個體遷移到 ElastiCache 服務。如需從 Redis OSS 升級到 ElastiCache 上 Valkey 的資訊，請參閱 [升級引擎版本，包括跨引擎升級升級引擎版本](VersionManagement.HowTo.md)。

開始從 ElastiCache 主控台、API 或 AWS CLI 遷移之前，您必須確定滿足下列所有四個先決條件。

**準備您的來源和目標 Valkey 或 Redis OSS 節點以進行遷移**

1. 辨識目標 ElastiCache 部署，確認您可以將資料遷移至該部署。

   現有或新建立的 ElastiCache 部署應符合以下遷移要求：
   + 它使用 Valkey 或 Redis OSS 5.0.6 或更高版本。
   + 它未啟用傳輸中加密。
   + 已啟用多個可用區。
   + 它有足夠的記憶體可以容納來自您的 Valkey 或 Redis OSS 叢集的資料。若要設定合適的保留記憶體設定，請參閱 [管理 Valkey 和 Redis OSS 的預留記憶體](redis-memory-management.md)。
   + 對於停用叢集模式，如果使用 CLI 或 Valkey 或 Redis OSS 版本 5.0.6 之後使用 CLI 或 Valkey 或 Redis OSS 版本 5.0.6，則可以直接從 Valkey 或 Redis OSS 版本 之後遷移2.8.21到 Valkey 或 Redis OSS 版本 5.0.6 之後。對於啟用叢集模式，如果使用 CLI 或 Redis OSS 5.0.6 版以上，您可以使用 CLI 或主控台，從任何啟用叢集模式的 Valkey 或 Redis OSS 版本直接遷移至 Redis OSS 5.0.6 版以上。
   + 來源與目標中的碎片數目相符。
   + 它不屬於全域資料儲存的一部分。
   + 它的資料分層已停用。

1. 請確定開放原始碼 Valkey 或 Redis OSS 和 ElastiCache 部署的組態相容。

   至少，目標 ElastiCache 部署中的所有下列項目都應該與您的 Valkey 或 Redis OSS 組態相容，以進行複寫：
   + 您的叢集不應啟用 AUTH。
   + 組態`protected-mode`應該設定為 `no`。
   + 如果您的 Valkey 或 Redis OSS 組態中有`bind`組態，則應將其更新為允許來自 ElastiCache 節點的請求。
   + ElastiCache 節點和您的 Valkey 或 Redis OSS 叢集上的邏輯資料庫數目應該相同。此值是在 Valkey 或 Redis OSS 組態`databases`中使用 設定。
   + 不應重新命名執行資料修改的 Valkey 或 Redis OSS 命令，以允許資料複寫成功。例如 `sync`、、`psync``info`、 `config` `command`和 `cluster`。
   + 若要將資料從 Valkey 或 Redis OSS 叢集複寫至 ElastiCache，請確定有足夠的 CPU 和記憶體來處理此額外負載。此負載來自您的 Valkey 或 Redis OSS 叢集建立的 RDB 檔案，並透過網路傳輸到 ElastiCache 節點。
   + 來源叢集中的所有 Valkey 或 Redis OSS 執行個體都應在相同的連接埠上執行。

1. 執行以下操作，確認您的執行個體可與 ElastiCache 連線：
   + 確認每個執行個體的 IP 地址都是私有。
   + 在與執行個體上的 Valkey 或 Redis OSS 相同的虛擬私有雲端 (VPC) 中指派或建立 ElastiCache 部署 （建議）。
   + 如果 VPC 不同，請設定 VPC 對等互連以允許節點之間的存取。如需 VPC 對等互連的詳細資訊，請參閱 [用於存取 Amazon VPC 中 ElastiCache 快取的存取模式](elasticache-vpc-accessing.md)。
   + 連接到您的 Valkey 或 Redis OSS 執行個體的安全群組應允許來自 ElastiCache 節點的傳入流量。

1. 確保您的應用程式可在資料遷移完成後將流量引導至 ElastiCache 節點。如需詳細資訊，請參閱[用於存取 Amazon VPC 中 ElastiCache 快取的存取模式](elasticache-vpc-accessing.md)。

# 測試資料遷移
<a name="Migration-Test"></a>

完成所有先決條件之後，您就可以使用 AWS 管理主控台、ElastiCache API 或 AWS CLI 驗證遷移設定。以下範例顯示使用 CLI。

使用以下參數呼叫 `test-migration` 命令以測試遷移：
+ `--replication-group-id` – 做為資料遷移目標位置的複寫群組 ID。
+ `--customer-node-endpoint-list` – 做為資料遷移來源位置的端點清單。清單應只有一個元素。

以下是使用 CLI 的範例。

```
aws elasticache test-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"
```

ElastiCache 將會驗證遷移設定，而不需任何實際的資料遷移。

# 開始遷移
<a name="Migration-Initiate"></a>

完成所有先決條件之後，您就可以開始使用 AWS 管理主控台、ElastiCache API 或 AWS CLI進行資料遷移。若叢集模式已啟用，在槽位遷移不同的情況下，則會先進行重新分片，再進行即時遷移。以下範例顯示使用 CLI。

**注意**  
我們建議使用 `TestMigration` API 驗證遷移設定。不過這僅限選用。

使用以下參數呼叫 `start-migration` 命令以開始遷移：
+ `--replication-group-id` - 目標 ElastiCache 複寫群組的識別碼
+ `--customer-node-endpoint-list` – 端點清單，其中包含 DNS 或 IP 地址，以及執行來源 Valkey 或 Redis OSS 叢集的連接埠。此清單針對叢集模式已停用和叢集模式已啟用只能採用一個元素。如果您已啟用鏈結複寫，端點可以指向複本，而不是 Valkey 或 Redis OSS 叢集中的主節點。

以下是使用 CLI 的範例。

```
aws elasticache start-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"
```

當您執行此命令時，ElastiCache 主節點 （在每個碎片中） 會自行設定成 Valkey 或 Redis OSS 執行個體的複本 （在叢集中擁有相同插槽的對應碎片中）。ElastiCache 叢集的狀態會變更為**遷移**，而資料會從 Valkey 或 Redis OSS 執行個體開始遷移至 ElastiCache 主節點。視您 Valkey 或 Redis OSS 執行個體上的資料大小和負載而定，遷移可能需要一些時間才能完成。您可以在 [Valkey 執行個體和 ElastiCache 主節點上執行 valkey-cli INFO](https://valkey.io/commands/info) 命令，以檢查遷移進度。 ElastiCache 

複寫成功後，所有寫入您的 Valkey 或 Redis OSS 執行個體都會傳播至 ElastiCache 叢集。您可以針對讀取使用 ElastiCache 節點。不過，您無法寫入至 ElastiCache 叢集。如果 ElastiCache 主節點有其他連線的複本節點，這些複本節點會持續從 ElastiCache 主節點複寫。如此一來，Valkey 或 Redis OSS 叢集中的所有資料都會複寫到 ElastiCache 叢集中的所有節點。

如果 ElastiCache 主節點無法成為 Valkey 或 Redis OSS 執行個體的複本，它會重試數次，最後將自己提升回主節點。然後 ElastiCache 叢集的狀態會變更為 **available (可用)**，也會傳送有關起始遷移作業失敗的複寫群組事件。若要對此類失敗進行故障診斷，請執行以下檢查：
+ 查看複寫群組事件。任何有關事件的特定資訊以修正遷移失敗的問題。
+ 如果事件不提供任何特定資訊，請確保您已遵循 [準備您的來源和目標以進行遷移](Migration-Prepare.md) 中的指導方針。
+ 確保 VPC 和子網路的路由組態允許 ElastiCache 節點與 Valkey 或 Redis OSS 執行個體之間的流量。
+ 確保連接到您的 Valkey 或 Redis OSS 執行個體的安全群組允許來自 ElastiCache 節點的輸入繫結流量。
+ 如需複寫特定故障的詳細資訊，請檢查執行個體的 Valkey 或 Redis OSS 日誌。

# 驗證資料遷移程序
<a name="Migration-Verify"></a>

遷移開始後，您可以執行以下操作以追蹤其進度：
+ 確認 Valkey 或 Redis OSS `master_link_status` 位於 ElastiCache 主節點 (ElastiCache) 上的 `INFO`命令`up`中。這些資訊也列在 ElastiCache 主控台中。選取叢集並在 **CloudWatch metrics** (CloudWatch 指標) 下，觀察 **Primary Link Health Status** (主要連結運作狀態)。一旦值達到 1，資料就會同步。
+ 您可以在您的 Valkey 或 Redis OSS 執行個體上執行 `INFO`命令，以檢查 ElastiCache 複本是否具有**線上**狀態。執行此操作，也可以提供有關複寫延遲的資訊。
+ 在 Valkey 或 Redis OSS 執行個體上使用 [CLIENT LIST](https://valkey.io/commands/client-list) 命令來驗證低用戶端輸出緩衝區。

資料遷移完成後，資料會與進入您 Valkey 或 Redis OSS 叢集 （主節點） 的任何新寫入同步。

# 完成資料遷移
<a name="Migration-Complete"></a>

當您準備好轉換至 ElastiCache 叢集時，請搭配以下參數使用 `complete-migration`CLI 命令：
+ `--replication-group-id` - 複寫群組的識別碼。
+ `--force` - 此值會強迫遷移停止且不確認資料是否正在同步。

以下是範例。

```
aws elasticache complete-migration --replication-group-id test-cluster
```

當您執行此命令時，ElastiCache 主節點 （在每個碎片中） 會停止從 Valkey 或 Redis OSS 執行個體複寫，並將其提升為主節點。此提升通常會在幾分鐘之內完成。若要確認提升至主要層級，請檢查事件 `Complete Migration successful for test-cluster`。此時，您可以將應用程式引導至 ElastiCache 寫入和讀取。ElastiCache 叢集狀態應會從 **migrating (遷移中)** 變為 **available (可用)**。

如果升級至主要節點失敗，ElastiCache 主要節點會繼續從 Valkey 或 Redis OSS 執行個體複寫。ElastiCache 叢集會持續顯示 m**migrating(遷移中)** 狀態，且有關失敗的複寫群組事件訊息已經送出。若要就此失敗進行故障診斷，請進行以下檢查：
+ 檢查複寫群組事件。使用有關事件的特定資訊以修正失敗的問題。
+ 您或許會收到有關資料沒有同步的事件訊息。如果是這樣，請確定 ElastiCache 主要執行個體可以從您的 Valkey 或 Redis OSS 執行個體複寫，而且兩者都處於同步狀態。如果您仍要停止遷移，您可以使用 `—force` 選項執行處理命令。
+ 如果 ElastiCache 節點其中之一正在進行更換，您可能會收到事件訊息。您可以在取代完成後重試一次完成遷移步驟。

# 使用主控台執行線上資料遷移
<a name="Migration-Console"></a>

您可以使用 AWS 管理主控台 將資料從叢集遷移到 Valkey 或 Redis OSS 叢集。

**使用主控台執行線上資料遷移**

1. 登入主控台並前往 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/home/home) 開啟 ElastiCache 主控台。

1. 建立新的 Valkey 或 Redis OSS 叢集，或選擇現有的叢集。確認叢集符合下列需求：
   + 您的引擎版本應為 Valkey 7.2 及更高版本，或 Redis OSS 5.0.6 或更高版本。
   + 您的叢集不應啟用 AUTH。
   + 組態`protected-mode`應該設定為 `no`。
   + 如果您的 Valkey 或 Redis OSS 組態中有`bind`組態，則應將其更新為允許來自 ElastiCache 節點的請求。
   + ElastiCache 節點與 Valkey 或 Redis OSS 叢集之間的資料庫數目應該相同。此值是在引擎組態`databases`中使用 設定。
   + 不應重新命名執行資料修改的 Valkey 或 Redis OSS 命令，以允許資料複寫成功。
   + 若要將資料從 Valkey 或 Redis OSS 叢集複寫至 ElastiCache，請確定有足夠的 CPU 和記憶體來處理此額外負載。此負載來自您的 Valkey 或 Redis OSS 叢集建立的 RDB 檔案，並透過網路傳輸到 ElastiCache 節點。
   + 叢集的狀態為 **available** (可用)。

1. 選取叢集後，**Actions (動作)** 請 選擇**Migrate Data from Endpoint (從端點遷移資料)**。

1. 在**從端點遷移資料**對話方塊中，輸入 IP 地址，以及您的 Valkey 或 Redis OSS 叢集可用的連接埠。
**重要**  
IP 位址必須完全相同。如果輸入錯誤的位址，遷移就會失敗。

1. 選擇 **Start Migration** (開始遷移)。

   當叢集開始遷移時，叢集的狀態會變更為 **Modifying** (修改中)，然後 **Migrating** (遷移中)。

1. 在瀏覽窗格中選擇 **Events** (事件) 以監控遷移程序。

遷移程序進行期間，您隨時都可以停止遷移。若要執行此操作，請選擇您的叢集，並為 **Actions (動作)**選擇 **Stop Data Migration (停止資料遷移)**。之後叢集就會進入 **Available** (可用) 狀態。

如果遷移成功，叢集的狀態就會變成 **Available** (可用)，而且事件記錄會顯示以下項目：

`Migration operation succeeded for replication group ElastiCacheClusterName.`

如果遷移失敗，叢集的狀態就會變成 **Available** (可用)，而且事件記錄會顯示以下項目：

`Migration operation failed for replication group ElastiCacheClusterName.`

# 選擇 ElastiCache 的區域和可用區域
<a name="RegionsAndAZs"></a>

您可以使用對應的端點指定區域和可用區域，為您的 ElastiCache 叢集提供額外的可擴展性和可靠性。

AWS 雲端運算資源存放在高可用性的資料中心設施中。為了提供額外的可擴展性和可靠性，這些資料中心設施會位在不同的實體位置。這些地點是依*「區域」*及*「可用區域」*分類。

AWS 區域很大，廣泛分散到不同的地理位置。可用區域是 AWS 區域內的不同位置，旨在與其他可用區域中的故障隔離。它們提供相同 AWS 區域中其他可用區域的低成本、低延遲網路連線能力。

**重要**  
每個區域都是完全獨立的。您啟動的任何 ElastiCache 活動 (例如建立叢集) 都只會在您目前的預設區域中執行。

若要在特定區域中建立或使用叢集，請使用對應的區域服務端點。如需了解服務端點，請參閱[支援的區域和端點](#SupportedRegions)。

![\[圖片： 區域和可用區域\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-RegionsAndAZs.png)


*區域與可用區域*

**Topics**
+ [使用 Memcached 的可用區域考量事項](#CacheNode.Memcached.AvailabilityZones)
+ [安置您的節點](#RegionsAndAZs.AZMode)
+ [支援的區域和端點](#SupportedRegions)
+ [搭配 ElastiCache 使用本地區域](Local_zones.md)
+ [搭配 ElastiCache 使用 Outpost](ElastiCache-Outposts.md)

## 使用 Memcached 的可用區域考量事項
<a name="CacheNode.Memcached.AvailabilityZones"></a>

將 Memcached 節點散佈在一個區域內的多個可用區域，有助於保護您免受災難性故障的影響，例如可用區域內停電。

**無伺服器快取**

ElastiCache 無伺服器快取會建立跨多個可用區域的高度可用快取。您可以在建立無伺服器叢集時指定來自不同可用區域和相同 VPC 的子網路，否則 ElastiCache 會自動從預設 VPC 中選擇子網路。

**自行設計 ElastiCache for Memcached 叢集**

Memcached 叢集最多可以有 300 個節點。建立節點或將節點新增至 Memcached 叢集時，您可以為所有節點指定單一可用區域、允許 ElastiCache 為所有節點選擇單一可用區域、為每個節點指定可用區域，或允許 ElastiCache 為每個節點選擇可用區域。將新節點新增至現有的 Memcached 叢集時，您可以在不同的可用區域中建立新節點。快取節點一旦建立，就無法修改其可用區域。

如果您希望單一可用區域叢集中的叢集將其節點分佈於多個可用區域，ElastiCache 可以在不同可用區域中建立新節點。接著您可以刪除部分或所有原始快取節點。建議您使用此方法。

**將 Memcached 節點從單一可用區域遷移至多個可用區域**

1. 在需要的可用區域中建立新的快取節點，藉此修改叢集。在請求中執行下列操作：
   + 將 `AZMode` (CLI：`- -az-mode`) 設定為 `cross-az`。
   + 將 `NumCacheNodes` (CLI：`- -num-cache-nodes`) 設定為目前作用中快取節點的數目，以及您要建立的新快取節點數目。
   + 將 `NewAvailabilityZones` (CLI：`- -new-availability-zones`) 設定為您要在其中建立新快取節點的區域清單。若要讓 ElastiCache 決定每個新節點的可用區域，請勿指定清單。
   +  將 `ApplyImmediately` (CLI：`- -apply-immediately`) 設定為 true。
**注意**  
如果您沒有使用自動探索功能，請務必使用新的快取節點端點來更新用戶端應用程式。

   繼續進行下一個步驟之前，請確定 Memcached 節點已完全建立且可用。

1. 移除原始可用區域中不再需要的節點，藉此修改叢集。在請求中執行下列操作：
   + 將 `NumCacheNodes` (CLI：`- -num-cache-nodes`) 設定為套用此修改之後您想要的作用中快取節點數目。
   + 將 `CacheNodeIdsToRemove` (CLI：`- -nodes-to-remove`) 設定為您要從叢集中移除的快取節點清單。

     列出的快取節點 ID 數量必須等於目前作用中的節點數減去 `NumCacheNodes` 中的值。
   + (選用) 將 `ApplyImmediately` (CLI：`- -apply-immediately`) 設定為 true。

     如果您沒有將 `ApplyImmediately` (CLI：`- -apply-immediately`) 設定為 true，節點刪除作業將在下一個維護時段進行。

## 安置您的節點
<a name="RegionsAndAZs.AZMode"></a>

Amazon ElastiCache 支援將所有的叢集節點安置在單一或多個可用區域 (AZ) 中。如果您進一步選擇將節點安置在多個 AZ (建議做法)，ElastiCache 可讓您選擇每個節點的 AZ，或允許 ElastiCache 為您選擇。

將節點安置在不同 AZ 時，您可以避免某個 AZ 的故障 (例如停電) 就造成整個系統故障。測試已證實將所有節點安置在一個 AZ 或分散在多個 AZ 之間並不會有顯著的延遲差異。

您可以在建立叢集時指定每個節點的 AZ，或在修改現有叢集時新增節點。建立叢集時為每個節點指定 AZ 時，該子網路群組中必須有可用 AZ。如需詳細資訊，請參閱下列內容：
+ [為 Memcached 建立叢集](Clusters.Create-mc.md)
+ [為 Valkey 或 Redis OSS 建立叢集](Clusters.Create.md)
+ [修改 ElastiCache 叢集](Clusters.Modify.md)
+ [將節點新增至 ElastiCache 叢集](Clusters.AddNode.md)

## 支援的區域和端點
<a name="SupportedRegions"></a>

Amazon ElastiCache 可在多個 AWS 區域中使用。這表示您可以在符合您需求的位置啟動 ElastiCache 叢集。例如，您可以在最接近客戶的 AWS 區域中啟動 ，或在特定區域中啟動 AWS ，以符合特定法律要求。

每個 區域皆設計為與其他 區域完全隔離。各個區域包含多個可用區域 (AZ)。ElastiCache Serverless 快取會自動跨多個可用區域複寫資料 （除了 `us-west-1`，其中資料會在兩個可用區域中複寫），以獲得高可用性。自行設計 ElastiCache 叢集時，您可以選擇在不同的 AZ 中啟動節點，以實現容錯能力。如需區域和可用區域的詳細資訊，請參閱本主題最上方的 [選擇 ElastiCache 的區域和可用區域](#RegionsAndAZs)。


**支援 ElastiCache 的區域**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/RegionsAndAZs.html)

有些區域支援節點類型的子集。如需各 AWS 區域支援的節點類型資料表，請參閱 [支援的節點類型 (依AWS區域)](CacheNodes.SupportedTypes.md#CacheNodes.SupportedTypesByRegion)。

大多數區域支援透過建立介面 VPC 端點，在 VPC 和 ElastiCache API 端點之間建立私有連線 AWS PrivateLink。如需詳細資訊，請參閱[ElastiCache API 和界面 VPC 端點 (AWS PrivateLink)](elasticache-privatelink.md)。

如需依區域列出的 AWS 產品和服務資料表，請參閱[依區域列出的產品和服務](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。

# 搭配 ElastiCache 使用本地區域
<a name="Local_zones"></a>

*Local Zone* 是地理位置接近您使用者的 AWS 區域延伸。您可以透過建立新的子網路並將其指派給 Local Zone，將父 AWS 區域的任何虛擬私有雲端 (VPC) 延伸到 Local Zones。當您在本機區域中建立子網路時，VPC 也會擴展到該本機區域。本機區域中的子網路與 VPC 中的其他子網路的運作方式相同。

使用本地區域，您可將資源 (例如 ElastiCache 叢集) 放置在靠近使用者的多個位置。

建立 ElastiCache 叢集時，您可以選擇本地區域的子網路。Local Zones 有自己的網際網路連線，並支援 Direct Connect。因此，在本機區域中建立的資源可以為本機使用者提供非常低延遲的通訊服務。如需詳細資訊，請參閱 [AWS Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/)。

Local Zone 是以 AWS 區域代碼表示，後面接著表示位置的識別符，例如 `us-west-2-lax-1a`。

目前可用的本地區域有 `us-west-2-lax-1a` 和 `us-west-2-lax-1b`。

ElastiCache 適用下列本地區域限制：
+ 不支援全域資料存放區。
+ 不支援線上遷移。
+ 本地區域目前支援以下節點類型：
  + 最新一代：

    **M5 節點類型：**`cache.m5.large`、`cache.m5.xlarge`、`cache.m5.2xlarge`、`cache.m5.4xlarge`、`cache.m5.12xlarge`、`cache.m5.24xlarge`

    **R5 節點類型：**`cache.r5.large`、`cache.r5.xlarge`、`cache.r5.2xlarge`、`cache.r5.4xlarge`、`cache.r5.12xlarge`、`cache.r5.24xlarge`

    **T3 節點類型：**`cache.t3.micro`、`cache.t3.small`、`cache.t3.medium`

## 啟用本地區域
<a name="Local_zones-using"></a>

1. 在 Amazon EC2 主控台中啟用本機區域。

   如需詳細資訊，請參閱 *Amazon EC2 使用者指南*中的[啟用本地區域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#enable-zone-group)。

1. 在本機區域中建立子網路。

   如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[在您的 VPC 中建立子網路](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

1. 在本地區域中建立 ElastiCache 子網路群組。

   建立 ElastiCache 子網路群組時，請選擇本地區域的可用區域群組。

   如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

1. 在本地區域中建立使用 ElastiCache 子網路的 ElastiCache for Memcached 叢集。

    如需詳細資訊，請參閱[建立 Memcached 叢集 (主控台)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached)。

1. 在本機區域中建立使用 ElastiCache 子網路的 ElastiCache for Redis OSS 叢集。如需詳細資訊，請參閱下列其中一個主題：
   +  [建立 Valkey （停用叢集模式） 叢集 （主控台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)
   +  [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)

# 搭配 ElastiCache 使用 Outpost
<a name="ElastiCache-Outposts"></a>

您可以搭配 ElastiCache 使用AWS Outposts。Outposts 是一項全受管服務，可將AWS基礎設施、服務、APIs 和工具延伸到客戶內部部署。透過提供AWS受管基礎設施的本機存取權，AWS Outposts 可讓客戶使用與AWS區域相同的程式設計界面在內部部署中建置和執行應用程式，同時使用本機運算和儲存資源來降低延遲和本機資料處理需求。Outpost 是在客戶網站部署的AWS運算和儲存容量集區。 會AWS操作、監控和管理此容量，做為AWS區域的一部分。您可以在 Outpost 上建立子網路，並在建立 ElastiCache 叢集等AWS資源時指定子網路。

**注意**  
此版本具有下列限制：  
ElastiCache for Outposts 僅支援 M5 和 R5 節點系列。
多可用區域 (不支援跨 Outpost 複寫)。
不支援即時遷移。
不支援本機快照。
無法啟用引擎日誌和慢速日誌。
ElastiCache on Outposts 不支援 CoIP。
下列區域不支援 ElastiCache for Outposts：cn-north-1、cn-northwest-1 和 ap-northeast-3。

## 搭配 ElastiCache 主控台使用 Outpost
<a name="Outposts.Details"></a>

1. 登入AWS 管理主控台並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey 快取**、**Redis OSS 快取**或 **Memcached 快取**。

1.  如果您選擇 **Valkey 快取**，請選取**建立 Valkey 快取**。如果您選擇 **Redis OSS 快取**，請選取**建立 Redis OSS 快取**。如果您選擇 **Memcached 快取**，請選取**建立 Memcached 快取**。

1. 在**叢集設定**下，選取**設計您自己的快取**和**叢集快取**。將**叢集模式**設定為**已停用**。然後建立快取的名稱和選用描述。

1. 針對位置，選擇**內部部署**。

1. 在內部部署區段中，您會看到 **Outpost ID** 欄位。輸入叢集執行位置的 ID。

   **叢集設定下的所有進一步設定**都可以保留為預設值。

1. 在**連線**中，選取**建立新的子網路群組**，然後輸入 **VPC ID**。將其餘部分保留為預設值，然後選取**下一步**。

### 設定內部部署選項
<a name="Outposts.Creating.Console.RedisMultiAZ.Details"></a>

 您可以選取可用的 Outpost 來新增叢集，或者，如果沒有可用的 Outpost，請使用下列步驟建立新的 Outpost：

**在 **On-Premises options (內部部署選項)** 底下：**

1. 在 **Valkey 設定**、**Redis OSS 設定**或 **Memcached 設定**下，視您偏好的引擎而定：

   1. **名稱**：輸入叢集的名稱

   1. **描述**：輸入叢集的描述。

   1. **引擎版本相容性**：引擎版本以AWS Outpost 區域為基礎 

   1. **連接埠**：對於 Valkey 或 Redis OSS，接受預設連接埠 6379。對於 Memcached，接受預設連接埠 11211。如果您偏好使用不同的連接埠，請輸入連接埠號碼。

   1. **Parameter group (參數群組)**：使用下拉式選單選取預設或自訂參數群組。

   1. **Node Type (節點類型)**：可用的執行個體取決於 Outpost 可用性。如果使用 Valkey 或 Redis OSS，.NET for Outposts 的移植助理僅支援 M5 和 R5 節點系列。從下拉式清單中，選取 **Outposts**，然後選取您要用於此叢集的可用節點類型。然後選取 **Save (儲存)**。

   1. **Number of Replicas (複本數量)**：輸入您要讓此複寫群組建立的僅供讀取複本數目。您必須至少有一個僅供讀取複本，且不能超過五個。預設值為 2。

      僅供讀取複本的自動產生名稱會遵循與主叢集名稱相同的模式，結尾會加上破折號和連續的三位數字，開頭為 `-002`。例如，如果您的複寫群組名為 `MyGroup`，那麼次要複本的名稱就會是 `MyGroup-002`、`MyGroup-003`、`MyGroup-004`、`MyGroup-005`、`MyGroup-006`。

1. 在**連線**能力下：

   1. **Subnet Group (子網路群組)**：從清單中選取 **Create new (新建)**。
      + **Name (名稱)**：輸入子網路群組的名稱
      + **Description (描述)**：輸入子網路群組的描述
      + **VPC ID**：VPC ID 應與 Outpost VPC 一致。如果您選取的 VPC 沒有 Outpost 的子網路 ID，則清單會傳回空白。
      + **Availability Zone or Outpost (可用區域或 Outpost)**：選取您正在使用的 Outpost。
      + **Subnet ID (子網路 ID)**：選取可用於 Outpost 的子網路 ID。如果沒有可用的子網路 ID，您需要建立。如需詳細資訊，請參閱「[建立子網路](https://docs.aws.amazon.com/outposts/latest/userguide/launch-instance.html#create-subnet)」。

   1. 選取**建立**。

### 檢視 Outpost 叢集詳細資訊
<a name="Outposts.Creating.Console.Outpost-Details-Redis"></a>

在清單頁面上，選取屬於AWS Outpost 的叢集，並在檢視**叢集詳細資訊**時注意下列事項：
+ **可用區域**：這將使用 ARN (Amazon Resource Name) 和AWS資源編號來代表 Outpost。
+ **Outpost 名稱**：AWS Outpost 的名稱。

## 搭配 CLI AWS使用 Outpost
<a name="Outposts.Using.CLI"></a>

您可以使用AWS Command Line Interface(AWS CLI) 從命令列控制多個AWS服務，並透過指令碼將其自動化。您可以使用AWS CLI 進行臨機操作 （一次性）。

### 下載和設定AWS CLI
<a name="Redis-Global-Clusters-Downloading-CLI"></a>

AWS CLI會在 Windows、macOS 或 Linux 上執行。請使用下列程序來下載並進行設定。

**下載、安裝及設定 CLI**

1. 在[AWS命令列界面](https://aws.amazon.com/cli)網頁上下載AWS CLI。

1. 遵循*AWS Command Line Interface《 使用者指南*》中[安裝AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 和[設定AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 的指示。

### 將AWS CLI 與 Outposts 搭配使用
<a name="Outposts-Using-CLI"></a>

使用下列 CLI 操作來建立使用 Outposts 的叢集：
+  [create-cache-cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/CommandLineReference/CLIReference-cmd-CreateCacheCluster.html) – 使用此操作時， `outpost-mode` 參數會接受指定叢集中節點是在單一 Outpost 中還是跨多個 Outpost 建立的值。
**注意**  
目前只支援 `single-outpost` 模式。

  ```
  aws elasticache create-cache-cluster \
     --cache-cluster-id cluster id \
     --outpost-mode single-outpost \
  ```