

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

# 使用複寫群組的高可用性
<a name="Replication"></a>

單節點 Amazon ElastiCache Valkey 和 Redis OSS 叢集是具有有限資料保護服務 (AOF) 的記憶體內實體。若您的叢集因任何原因失敗，您會遺失所有叢集的資料。不過，如果您執行 Valkey 或 Redis OSS 引擎，您可以將 2 到 6 個節點分組到具有複本的叢集中，其中 1 到 5 個唯讀節點包含群組單一讀取/寫入主節點的複寫資料。在此案例中，若一個節點因任何原因失敗，因為其已在一或多個其他節點中複寫，因此您也不會遺失所有資料。因為複寫延遲，若失敗的是主要讀取/寫入節點，有些資料可能會遺失。

如下圖所示，複寫結構包含在包含在 Valkey 或 Redis OSS 叢集中的碎片 （在 API/CLI 中稱為*節點群組*) 中。Valkey 或 Redis OSS （停用叢集模式） 叢集一律有一個碎片。Valkey 或 Redis OSS （啟用叢集模式） 叢集最多可以有 500 個碎片，其中叢集的資料分割於碎片。您可以建立具有較高數量碎片和較低數量複本的叢集，每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

使用 ElastiCache for Valkey 和 ElastiCache 5.0.6 版或更新版本的 Redis OSS 時，每個叢集的節點或碎片限制最多可增加至 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 （停用叢集模式） 叢集有一個碎片和 0 到 5 個複本節點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-Redis-Replicas.png)


*Valkey 或 Redis OSS （停用叢集模式） 叢集有一個碎片和 0 到 5 個複本節點*

若帶有複本的叢集已啟用多個可用區，並且當主要節點故障時，主要節點會容錯移轉至僅供讀取複本。因為資料會以非同步的方式在複本節點上更新，可能會因更新複本節點時發生延遲而導致某些資料遺失。如需詳細資訊，請參閱[緩解執行 Valkey 或 Redis OSS 時的故障](disaster-recovery-resiliency.md#FaultTolerance.Redis)。

**Topics**
+ [了解 Valkey 和 Redis OSS 複寫](Replication.Redis.Groups.md)
+ [複寫：停用 Valkey 和 Redis OSS 叢集模式與啟用](Replication.Redis-RedisCluster.md)
+ [搭配 Valkey 和 Redis OSS 使用異地同步備份，將 ElastiCache 中的停機時間降至最低](AutoFailover.md)
+ [同步與備份的實作方式](Replication.Redis.Versions.md)
+ [建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingRepGroup.md)
+ [檢視複寫群組詳細資訊](Replication.ViewDetails.md)
+ [尋找複寫群組端點](Replication.Endpoints.md)
+ [修改複寫群組](Replication.Modify.md)
+ [刪除複寫群組](Replication.DeletingRepGroup.md)
+ [變更複本的數量](increase-decrease-replica-count.md)
+ [針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)

# 了解 Valkey 和 Redis OSS 複寫
<a name="Replication.Redis.Groups"></a>

Redis OSS 以兩種方式實作複寫：
+ 使用包含每個節點中叢集所有資料的單一碎片：Valkey 或 Redis OSS （停用叢集模式）
+ 資料分割最多 500 個碎片：Valkey 或 Redis OSS （啟用叢集模式）

複寫群組中的每個碎片都具備單一讀/寫主節點，以及最多 5 個僅供讀取複本節點。您可以建立具有較高數量碎片和較低數量複本的叢集，每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

如果 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 (每執行個體類型每叢集的節點數)**。

**Topics**
+ [Valkey 或 Redis OSS （停用叢集模式）](#Replication.Redis.Groups.Classic)
+ [Valkey 或 Redis OSS （啟用叢集模式）](#Replication.Redis.Groups.Cluster)

## Valkey 或 Redis OSS （停用叢集模式）
<a name="Replication.Redis.Groups.Classic"></a>

Valkey 或 Redis OSS （停用叢集模式） 叢集具有單一碎片，其中包含節點集合；一個主要讀取/寫入節點和最多五個次要唯讀複本節點。每個僅供讀取複本都會保有從叢集主要節點取得的資料複本。非同步複寫機制會用於將僅供讀取複本與主要節點保持同步。應用程式可從叢集內的任何節點進行讀取。應用程式只能寫入主要節點。僅供讀取複本可改善讀取輸送量，並在節點故障時保護資料，避免遺失。

![\[影像：具有單一碎片和複本節點的 Valkey 或 Redis OSS （停用叢集模式） 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-Redis-Replicas.png)


*具有單一碎片和複本節點的 Valkey 或 Redis OSS （停用叢集模式） 叢集*

您可以使用具有複本節點的 Valkey 或 Redis OSS （停用叢集模式） 叢集來擴展您的解決方案，讓 ElastiCache 處理讀取密集型應用程式，或支援同時從相同叢集讀取的大量用戶端。

Valkey 或 Redis OSS （停用叢集模式） 叢集中的所有節點都必須位於相同的區域。

當您將僅供讀取複本新增到叢集時，所有來自主要節點的資料都會複製到新節點。之後，每當資料寫入到主要節點時，變更都會以非同步方式散佈到所有僅供讀取複本。

若要改善容錯能力並減少寫入停機時間，請為具有複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集啟用具有自動容錯移轉的異地同步備份。如需詳細資訊，請參閱[搭配 Valkey 和 Redis OSS 使用異地同步備份，將 ElastiCache 中的停機時間降至最低](AutoFailover.md)。

您可以變更 Valkey 或 Redis OSS （停用叢集模式） 叢集內節點的角色，主要複本和其中一個複本會交換角色。您可能會為了調校效能而執行此作業。例如，針對需要大量寫入活動的 web 應用程式，您可以選擇網路延遲最低的節點。如需詳細資訊，請參閱[針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)。

## Valkey 或 Redis OSS （啟用叢集模式）
<a name="Replication.Redis.Groups.Cluster"></a>

Valkey 或 Redis OSS （啟用叢集模式） 叢集由 1 到 500 個碎片 (API/CLI：節點群組） 組成。每個碎片都有一個主節點，以及最多 5 個僅供讀取複本節點。組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

如果引擎版本為 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 （啟用叢集模式） 叢集的*組態端點*來與叢集中的節點連線。如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

![\[影像：具有多個碎片和複本節點的 Valkey 或 Redis OSS （啟用叢集模式） 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-RedisClusters.png)


*具有多個碎片和複本節點的 Valkey 或 Redis OSS （啟用叢集模式） 叢集*

Valkey 或 Redis OSS （啟用叢集模式） 叢集中的所有節點必須位於相同的區域。若要改善容錯能力，您可以在該區域中的多個可用區域內同時佈建主要節點及僅供讀取複本。

目前，Valkey 或 Redis OSS （啟用叢集模式） 功能有一些限制。
+ 您無法將任何複本節點手動提升為主要節點。

# 複寫：停用 Valkey 和 Redis OSS 叢集模式與啟用
<a name="Replication.Redis-RedisCluster"></a>

從 Valkey 7.2 和 Redis OSS 3.2 版開始，您可以建立兩種不同類型叢集的其中之一 (API/CLI：複寫群組）。Valkey 或 Redis OSS （停用叢集模式） 叢集一律具有單一碎片 (API/CLI：節點群組），最多可有 5 個僅供讀取複本節點。Valkey 或 Redis OSS （啟用叢集模式） 叢集最多有 500 個碎片，每個碎片都有 1 到 5 個僅供讀取複本節點。

![\[影像：Valkey 或 Redis OSS （停用叢集模式），以及 Valkey 或 Redis OSS （啟用叢集模式） 叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-NodeGroups.png)


*Valkey 或 Redis OSS （停用叢集模式），以及 Valkey 或 Redis OSS （啟用叢集模式） 叢集*

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


**比較 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 叢集**  

| 功能 | Valkey 或 Redis OSS （停用叢集模式） | Valkey 或 Redis OSS （啟用叢集模式） | 
| --- | --- | --- | 
| 可修改 | 是。支援新增和刪除複本節點，以及向上擴展節點類型。 | 有限。如需更多詳細資訊，請參閱「[ElastiCache 的版本管理](VersionManagement.md)」及「[擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)」。 | 
| 資料分割 | 否 | 是 | 
| 碎片 | 1 | 1 到 500  | 
| 僅供讀取複本 | 0 到 5 若您沒有複本而節點失敗，則可能會發生資料遺失。 | 每個碎片 0 到 5 個。若您沒有複本而節點失敗，您可能遺失該碎片中的所有資料。 | 
| Multi-AZ  | 是，至少 1 個複本。選用。預設開啟。 | 是選用。預設開啟。 | 
| 快照 (備份) | 是，建立單一 .rdb 檔案。 | 是，為每個碎片建立唯一 .rdb 檔案。 | 
| 還原 | 是，使用來自 Valkey 或 Redis OSS （停用叢集模式） 叢集的單一 .rdb 檔案。 | 是，使用來自 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 叢集的 .rdb 檔案。 | 
| 支援 | 所有 Valkey 和 Redis OSS 版本 | 所有 Valkey 版本，以及 Redis OSS 3.2 和更新版本 | 
| 引擎是否可升級 | 是，但包含限制。如需詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。 | 是，但包含限制。如需詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。 | 
| 加密 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 
| HIPAA 合格服務 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 
| PCI DSS 合規 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 3.2.6 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和 4.0.10 及更新版本。 | 
| 線上重新分片 | N/A | 3.2.10 版 （針對 EOL 排程，請參閱 [Redis OSS 版本生命週期結束排程](engine-versions.md#deprecated-engine-versions)) 和更新版本。 | 

## 我應該選擇哪一個？
<a name="Replication.Redis-RedisCluster.Choose"></a>

在 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 之間進行選擇時，請考慮下列因素：
+ **擴展與分割** - 業務需求變動。您需要為峰值需求佈建，或在需求變更時擴展。Valkey 或 Redis OSS （停用叢集模式） 支援擴展。您可以透過新增或刪除複本節點來擴展讀取容量，或是透過向上擴展至更大的節點類型來擴展容量。這些操作都需要時間。如需詳細資訊，請參閱 [擴展 Valkey 或 Redis OSS 的複本節點 （停用叢集模式）](Scaling.RedisReplGrps.md)。

   

  Valkey 或 Redis OSS （啟用叢集模式） 支援將您的資料分割到最多 500 個節點群組。您可以在商業需求變更時動態調整碎片的數量。分割的其中一項優勢，便是您會將負載擴張到更大量的端點，減少尖峰需求期間的存取瓶頸。此外，因為資料可擴張到多個伺服器，您可以容納更大的資料集。如需擴展分割區的資訊，請參閱 [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。

   
+ **節點大小與節點數量** – 由於 Valkey 或 Redis OSS （停用叢集模式） 叢集只有一個碎片，因此節點類型必須足夠大，以容納叢集的所有資料加上必要的額外負荷。另一方面，由於在使用 Valkey 或 Redis OSS （啟用叢集模式） 叢集時，您可以將資料分割成數個碎片，因此節點類型可以更小，不過您需要更多的類型。如需詳細資訊，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。

   
+ **讀取與寫入** – 如果叢集上的主要負載是讀取資料的應用程式，您可以透過新增和刪除僅供讀取複本來擴展 Valkey 或 Redis OSS （停用叢集模式） 叢集。不過，僅供讀取複本的數量上限為 5 個。如果叢集上的負載具有大量寫入，您可以受益於具有多個碎片的 Valkey 或 Redis OSS （啟用叢集模式） 叢集的其他寫入端點。

無論您選擇實作的叢集類型為何，請務必選擇適合您目前及未來需求的節點類型。

# 搭配 Valkey 和 Redis OSS 使用異地同步備份，將 ElastiCache 中的停機時間降至最低
<a name="AutoFailover"></a>

有些執行個體 ElastiCache for Valkey 和 Redis OSS 可能需要取代主節點；這些執行個體包括特定類型的計劃維護，以及不太可能發生的主節點或可用區域故障事件。

此取代會導致叢集出現一些停機情況，但如果啟用異地同步備份，停機時間可降至最低。主節點的角色會自動容錯移轉到其中一個僅供讀取複本。不需要建立和佈建新的主節點，因為 ElastiCache 會透明地處理這個問題。此容錯移轉及複本提升可確保您能在提升完成時立即繼續寫入新的主要節點。

ElastiCache 也會傳播所提升複本的網域名稱服務 (DNS)。它會執行這項操作的原因在於，若您的應用程式正在寫入主要端點，您的應用程式中便不需要變更任何端點。如果您是從個別端點讀取，則請確保將提升至主要端點的複本讀取端點變更為新複本的端點。

如果是計劃的節點替換，這些替換因維護更新或自助式更新而啟動，請留意以下事項：
+ 對於 Valkey 和 Redis OSS 叢集，計劃的節點取代會在叢集提供傳入寫入請求時完成。
+ 對於在 5.0.6 或更新版本引擎上執行且已啟用異地同步備份的停用 Valkey 和 Redis OSS 叢集模式叢集，計劃的節點替換會在叢集提供傳入寫入請求時完成。
+ 對於已啟用異地同步備份且在 4.0.10 或更早的引擎上執行的停用 Valkey 和 Redis OSS 叢集模式叢集，您可能會注意到與 DNS 更新相關的短暫寫入中斷。此中斷最多可能需要幾秒鐘的時間。此程序的速度比重新建立及佈建新的主節點更快 (也就是沒有啟用異地同步備份時發生的程序)。

您可以使用 ElastiCache 管理主控台、 AWS CLI或 ElastiCache API 啟用異地同步備份。

在 Valkey 或 Redis OSS 叢集 （在 API 和 CLI 中，複寫群組） 上啟用 ElastiCache 異地同步備份可改善容錯能力。當您的叢集的讀取/寫入主要叢集因任何原因變得無法連線或失敗的情況下，這特別有用。僅在每個碎片中具有多個節點的 Valkey 和 Redis OSS 叢集上支援異地同步備份。

**Topics**
+ [啟用多個可用區](#AutoFailover.Enable)
+ [具有異地同步備份回應的故障案例](#AutoFailover.Scenarios)
+ [測試自動容錯移轉](#auto-failover-test)
+ [多可用區的限制](#AutoFailover.Limitations)

## 啟用多個可用區
<a name="AutoFailover.Enable"></a>

您可以在使用 ElastiCache 主控台或 ElastiCache API 建立或修改叢集 (API 或 CLI AWS CLI、複寫群組） 時啟用異地同步備份。

您只能在至少有一個可用僅供讀取複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集上啟用異地同步備份。沒有僅供讀取複本的叢集無法提供高度可用性或容錯能力。如需建立附帶複寫叢集的資訊，請參閱[建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingRepGroup.md)。如需將僅供讀取複本新增到附帶複寫叢集的資訊，請參閱[新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)。

**Topics**
+ [啟用異地同步備份 (主控台)](#AutoFailover.Enable.Console)
+ [啟用異地同步備份 (AWS CLI)](#AutoFailover.Enable.CLI)
+ [啟用異地同步備份 (ElastiCache API)](#AutoFailover.Enable.API)

### 啟用異地同步備份 (主控台)
<a name="AutoFailover.Enable.Console"></a>

您可以在建立新的 Valkey 或 Redis OSS 叢集或修改具有複寫的現有叢集時，使用 ElastiCache 主控台啟用異地同步備份。

根據預設，Valkey 或 Redis OSS （啟用叢集模式） 叢集上會啟用異地同步備份。

**重要**  
只有當叢集的所有碎片中至少有一個複本的可用區域與主節點不同時，ElastiCache 才會自動啟用異地同步備份。

#### 使用 ElastiCache 主控台建立叢集時啟用異地同步備份
<a name="AutoFailover.Enable.Console.NewCacheCluster"></a>

如需此程序的詳細資訊，請參閱[建立 Valkey （停用叢集模式） 叢集 （主控台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)。請務必確保您有一或多個複本，並啟用多個可用區。

#### 在現有叢集上啟用異地同步備份 (主控台)
<a name="AutoFailover.Enable.Console.ReplGrp"></a>

如需此程序的詳細資訊，請參閱[使用 ElastiCache AWS 管理主控台](Clusters.Modify.md#Clusters.Modify.CON)修改叢集。

### 啟用異地同步備份 (AWS CLI)
<a name="AutoFailover.Enable.CLI"></a>

下列程式碼範例使用 AWS CLI 為複寫群組 啟用異地同步備份`redis12`。

**重要**  
複寫群組 `redis12` 必須已存在，並且其中必須至少要有一個可用的僅供讀取複本。

若為 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
    --replication-group-id redis12 \
    --automatic-failover-enabled \
    --multi-az-enabled \
    --apply-immediately
```

針對 Windows：

```
aws elasticache modify-replication-group ^
    --replication-group-id redis12 ^
    --automatic-failover-enabled ^
    --multi-az-enabled ^
    --apply-immediately
```

此命令的 JSON 輸出看起來會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "modifying", 
        "Description": "One shard, two nodes", 
        "NodeGroups": [
            {
                "Status": "modifying", 
                "NodeGroupMembers": [
                    {
                        "CurrentRole": "primary", 
                        "PreferredAvailabilityZone": "us-west-2b", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis12-001.v5r9dc.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis12-001"
                    }, 
                    {
                        "CurrentRole": "replica", 
                        "PreferredAvailabilityZone": "us-west-2a", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis12-002.v5r9dc.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis12-002"
                    }
                ], 
                "NodeGroupId": "0001", 
                "PrimaryEndpoint": {
                    "Port": 6379, 
                    "Address": "redis12.v5r9dc.ng.0001.usw2.cache.amazonaws.com"
                }
            }
        ], 
        "ReplicationGroupId": "redis12", 
        "SnapshotRetentionLimit": 1, 
        "AutomaticFailover": "enabling", 
        "MultiAZ": "enabled", 
        "SnapshotWindow": "07:00-08:00", 
        "SnapshottingClusterId": "redis12-002", 
        "MemberClusters": [
            "redis12-001", 
            "redis12-002"
        ], 
        "PendingModifiedValues": {}
    }
}
```

如需詳細資訊，請參閱 *AWS CLI 命令參考*中的下列主題：
+ [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html)
+ [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)
+ *AWS CLI 命令參考*中的 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)。

### 啟用異地同步備份 (ElastiCache API)
<a name="AutoFailover.Enable.API"></a>

下列程式碼範例使用 ElastiCache API 為複寫群組 `redis12` 啟用異地同步備份。

**注意**  
若要使用此範例，複寫群組 `redis12` 必須已存在，並且其中必須至少要有一個可用的僅供讀取複本。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyReplicationGroup
    &ApplyImmediately=true
    &AutoFailover=true
    &MultiAZEnabled=true
    &ReplicationGroupId=redis12
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20140401T192317Z
    &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱 *ElastiCache API 參考*中的下列主題：
+ [CreateCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html)
+ [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)

## 具有異地同步備份回應的故障案例
<a name="AutoFailover.Scenarios"></a>

在引入異地同步備份之前，ElastiCache 是透過重新建立及重新佈建故障的節點，來偵測並取代叢集中故障的節點。如果啟用多個可用區，故障的主要節點會容錯移轉至複寫延遲最短的複本。選取的複本會自動提升為主要節點，這比建立並重新佈建新的主要節點更快。此程序通常只需要幾秒鐘，您便能再次寫入叢集。

啟用異地同步備份時，ElastiCache 會持續監控主節點的狀態。若主要節點故障，便會根據故障的類型執行以下其中一個動作。

**Topics**
+ [只有主節點故障的故障案例](#AutoFailover.Scenarios.PrimaryOnly)
+ [主節點和某些僅供讀取複本故障的故障案例](#AutoFailover.Scenarios.PrimaryAndReplicas)
+ [整個叢集故障的故障案例](#AutoFailover.Scenarios.AllFail)

### 只有主節點故障的故障案例
<a name="AutoFailover.Scenarios.PrimaryOnly"></a>

若只有主要節點故障，複寫延遲最短的僅供讀取複本便會提升至主要叢集。接著會在與故障的主要節點相同的可用區域中建立並佈建遭取代的僅供讀取複本。

只有主節點故障時，ElastiCache 異地同步備份會執行下列作業：

1. 失敗的主要節點會離線。

1. 複寫延隔最少的僅供讀取複本會提升為主要節點。

   寫入通常可以在提升程序完成時繼續，這通常僅需要數秒鐘。若您的應用程式正在寫入主要端點，便不需要針對寫入或讀取變更端點。ElastiCache 會傳播提升複本的 DNS 名稱。

1. 啟動及佈建替換用的僅供讀取複本。

   替換用的僅供讀取複本會在失敗主要節點所在的可用區域內啟動，維持節點的分佈。

1. 複本會與新的主要節點同步。

新複本可供使用之後，請注意下列效果：
+ **主要端點** - 您不需要對應用程式進行任何變更，因為新主節點的 DNS 名稱會傳播到主要端點。
+ **讀取端點** - 讀取者端點會自動更新，以指向新的複本節點。

如需尋找叢集端點的資訊，請參閱下列主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

 

### 主節點和某些僅供讀取複本故障的故障案例
<a name="AutoFailover.Scenarios.PrimaryAndReplicas"></a>

若主要節點及至少一個僅供讀取複本失敗時，複寫延隔最少的可用複本會提升至主要叢集。新的僅供讀取複本也會在失敗節點及提升為主要節點複本的相同可用區域內建立及佈建。

主節點和一部分僅供讀取複本故障時，ElastiCache 異地同步備份會執行下列作業：

1. 失敗的主要節點和失敗的僅供讀取複本會離線。

1. 複寫延隔最少的可用複本會提升為主要節點。

   寫入通常可以在提升程序完成時繼續，這通常僅需要數秒鐘。若您的應用程式正在寫入主要端點，便不需要針對寫入變更端點。ElastiCache 會傳播提升複本的 DNS 名稱。

1. 建立及佈建替換用的複本。

   替換用的複本會在失敗節點所在的可用區域內建立，維持節點的分佈。

1. 所有叢集都會和新的主要節點同步。

在新節點可用之後，請對應用程式進行以下變更：
+ **主要端點** - 不要對應用程式做任何變更。新主要節點的 DNS 名稱會傳播到主要端點。
+ **讀取端點** - 讀取端點會自動更新，以指向新的複本節點。

如需尋找複寫群組端點的資訊，請參閱下列主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

 

### 整個叢集故障的故障案例
<a name="AutoFailover.Scenarios.AllFail"></a>

若所有項目都失敗，便會在原始節點的相同可用區域內重新建立及佈建所有節點。

在此案例中，叢集內的所有資料都會因為叢集內的每個節點都發生故障而遺失。這種情況相當罕見。

整個叢集故障時，ElastiCache 異地同步備份會執行下列作業：

1. 失敗的主要節點和僅供讀取複本會離線。

1. 建立及佈建替換用的主要節點。

1. 建立及佈建替換用的複本。

   替代項目會在失敗節點所在的可用區域內建立，維持節點的分佈。

   因為整個叢集失敗，資料會遺失，並且所有新的節點都會從零開始。

因為每個替換用節點都會具備與欲取代節點相同的端點，因此您不需要在應用程式內對任何端點進行變更。

如需尋找複寫群組端點的資訊，請參閱下列主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

我們建議您在不同可用區域內建立主要節點和僅供讀取複本，以提升您的容錯能力層級。

## 測試自動容錯移轉
<a name="auto-failover-test"></a>

啟用自動容錯移轉之後，您可以使用 ElastiCache 主控台、 AWS CLI和 ElastiCache API 來進行測試。

在測試時，請注意下列事項：
+ 您可以使用此操作，在任何滾動 24 小時期間內測試最多 15 個碎片 （在 ElastiCache API 和 中稱為節點群組 AWS CLI) 的自動容錯移轉。
+ 若您在不同叢集 (在 API 和 CLI 中稱為複寫群組) 內的碎片上呼叫此操作，您可以同時進行呼叫。
+ 在某些情況下，您可以在相同 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組的不同碎片上多次呼叫此操作。在這種情況下，必須先完成第一個節點取代，才能夠執行後續呼叫。
+ 若要判斷節點替換是否已完成，請使用 Amazon ElastiCache 主控台 AWS CLI、 或 ElastiCache API 檢查事件。尋找與自動容錯移轉相關的以下事件 (根據可能發生的順序列出)：

  1. 複寫群組訊息：`Test Failover API called for node group <node-group-id>`

  1. 快取叢集訊息：`Failover from primary node <primary-node-id> to replica node <node-id> completed`

  1. 複寫群組訊息：`Failover from primary node <primary-node-id> to replica node <node-id> completed`

  1. 快取叢集訊息：`Recovering cache nodes <node-id>`

  1. 快取叢集訊息：`Finished recovery for cache nodes <node-id>`

  如需詳細資訊，請參閱下列內容：
  + *ElastiCache 使用者指南*中的「[檢視 ElastiCache 事件](ECEvents.Viewing.md)」
  + *ElastiCache API 參考*中的 [DescribeEvents](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html)
  + *AWS CLI 命令參考*中的 [describe-events](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-events.html)。
+ 此 API 旨在測試您的應用程式在 ElastiCache 容錯移轉情況下的行為。並非設計成啟動容錯移轉以解決叢集問題的操作工具。此外，在某些情況下，例如大規模操作事件， AWS 可能會封鎖此 API。

**Topics**
+ [使用 測試自動容錯移轉 AWS 管理主控台](#auto-failover-test-con)
+ [使用 測試自動容錯移轉 AWS CLI](#auto-failover-test-cli)
+ [使用 ElastiCache API 測試自動容錯移轉](#auto-failover-test-api)

### 使用 測試自動容錯移轉 AWS 管理主控台
<a name="auto-failover-test-con"></a>

使用下列程序，透過主控台測試自動容錯移轉。

**測試自動容錯移轉**

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

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

1. 從叢集清單中，選擇您要測試之叢集左側的方塊。​此叢集至少需要有一個僅供讀取複本節點。

1. 在 **Details (詳細資訊)** 區域中，確認此叢集已啟用異地同步備份。若叢集尚未啟用多個可用區，請選擇不同叢集，或是修改此叢集以啟用多個可用區。如需詳細資訊，請參閱[使用 ElastiCache AWS 管理主控台](Clusters.Modify.md#Clusters.Modify.CON)。  
![\[影像：啟用多可用區域叢集的詳細資訊區域\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-AutoFailover-MultiAZ-Enabled.png)

1. 針對 Valkey 或 Redis OSS （停用叢集模式），選擇叢集的名稱。

   針對 Valkey 或 Redis OSS （啟用叢集模式），請執行下列動作：

   1. 選擇叢集名稱。

   1. 在 **Shards (碎片)** 頁面上，針對您希望測試容錯移轉的碎片 (API 和 CLI 中稱為節點群組)，選擇碎片名稱。

1. 在 Nodes (節點) 頁面上，選擇 **Failover Primary (容錯移轉主要節點)**。

1. 選擇 **Continue (繼續)** 來容錯移轉主要節點，或是 **Cancel (取消)** 來取消操作而不容錯移轉主要節點。

   在容錯移轉程序期間，主控台會繼續將節點的狀態顯示為「可用」**。若要追蹤容錯移轉測試的進度，請從主控台導覽窗格選擇 **Events (事件)**。在 **Events (事件)** 標籤上，觀察指出您容錯移轉已啟動的事件 (`Test Failover API called`) 並完成 (`Recovery completed`)。

 

### 使用 測試自動容錯移轉 AWS CLI
<a name="auto-failover-test-cli"></a>

您可以使用 AWS CLI 操作，在任何已啟用異地同步備份的叢集上測試自動容錯移轉`test-failover`。

**參數**
+ `--replication-group-id` - 必要。要測試的複寫群組 (在主控台上為叢集)。
+ `--node-group-id` - 必要項目。您欲測試自動容錯移轉的節點群組名稱。在連續 24 小時期間內，您最多可以測試 15 個節點群組。

下列範例使用 AWS CLI 在 Valkey 或 Redis OSS （啟用叢集模式） 叢集 `redis00-0003` 中的節點群組上測試自動容錯移轉`redis00`。

**Example 測試自動容錯移轉**  
若為 Linux、macOS 或 Unix：  

```
aws elasticache test-failover \
   --replication-group-id redis00 \
   --node-group-id redis00-0003
```
針對 Windows：  

```
aws elasticache test-failover ^
   --replication-group-id redis00 ^
   --node-group-id redis00-0003
```

上述命令的輸出會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "available", 
        "Description": "1 shard, 3 nodes (1 + 2 replicas)", 
        "NodeGroups": [
            {
                "Status": "available", 
                "NodeGroupMembers": [
                    {
                        "CurrentRole": "primary", 
                        "PreferredAvailabilityZone": "us-west-2c", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis1x3-001.7ekv3t.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis1x3-001"
                    }, 
                    {
                        "CurrentRole": "replica", 
                        "PreferredAvailabilityZone": "us-west-2a", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis1x3-002.7ekv3t.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis1x3-002"
                    }, 
                    {
                        "CurrentRole": "replica", 
                        "PreferredAvailabilityZone": "us-west-2b", 
                        "CacheNodeId": "0001", 
                        "ReadEndpoint": {
                            "Port": 6379, 
                            "Address": "redis1x3-003.7ekv3t.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheClusterId": "redis1x3-003"
                    }
                ], 
                "NodeGroupId": "0001", 
                "PrimaryEndpoint": {
                    "Port": 6379, 
                    "Address": "redis1x3.7ekv3t.ng.0001.usw2.cache.amazonaws.com"
                }
            }
        ], 
        "ClusterEnabled": false, 
        "ReplicationGroupId": "redis1x3", 
        "SnapshotRetentionLimit": 1, 
        "AutomaticFailover": "enabled", 
        "MultiAZ": "enabled",
        "SnapshotWindow": "11:30-12:30", 
        "SnapshottingClusterId": "redis1x3-002", 
        "MemberClusters": [
            "redis1x3-001", 
            "redis1x3-002", 
            "redis1x3-003"
        ], 
        "CacheNodeType": "cache.m3.medium", 
        "DataTiering": "disabled",
        "PendingModifiedValues": {}
    }
}
```

若要追蹤容錯移轉的進度，請使用 AWS CLI `describe-events`操作。

如需詳細資訊，請參閱下列內容：
+ *AWS CLI 命令參考*中的 [test-failover](https://docs.aws.amazon.com/cli/latest/reference/elasticache/test-failover.html)。
+ *AWS CLI 命令參考*中的 [describe-events](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-events.html)。

 

### 使用 ElastiCache API 測試自動容錯移轉
<a name="auto-failover-test-api"></a>

您可以在任何啟用異地同步備份的叢集上，使用 ElastiCache API 作業 `TestFailover` 來測試自動容錯移轉。

**參數**
+ `ReplicationGroupId` - 必要項目。要測試的複寫群組 (在主控台上為叢集)。
+ `NodeGroupId` - 必要項目。您欲測試自動容錯移轉的節點群組名稱。在連續 24 小時期間內，您最多可以測試 15 個節點群組。

以下範例會在複寫群組 (主控台上為叢集) `redis00` 中的節點群組 `redis00-0003` 上測試自動容錯移轉。

**Example 測試自動容錯移轉**  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=TestFailover
    &NodeGroupId=redis00-0003
    &ReplicationGroupId=redis00
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20140401T192317Z
    &X-Amz-Credential=<credential>
```

若要追蹤您容錯移轉的進度，請使用 ElastiCache `DescribeEvents` API 作業。

如需詳細資訊，請參閱下列內容：
+ *ElastiCache API 參考*中的 [TestFailover](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_TestFailover.html) 
+ [ElastiCache API 參考](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html)中的 *DescribeEvents* 

 

## 多可用區的限制
<a name="AutoFailover.Limitations"></a>

請注意異地同步備份的下列限制：
+ Valkey 和 Redis OSS 2.8.6 版及更新版本支援異地同步備份。
+ T1 節點類型不支援異地同步備份。
+ Valkey 和 Redis OSS 複寫是非同步的。因此，當主要節點容錯移轉至複本時，可能會因複寫延遲而導致一小部分的資料遺失。

  選擇要提升為主要複本的複本時，ElastiCache 會選擇具有最小複寫延遲的複本。換句話說，它會選擇最新的複本。這麼做有助於減少遺失的資料量。具有最少複寫延遲的複本可以和失敗的主要節點位於相同可用區域或不同可用區域中。
+ 當您在停用叢集模式的 Valkey 或 Redis OSS 叢集上手動將僅供讀取複本提升為主要叢集時，您只能在停用異地同步備份和自動容錯移轉時執行此操作。若要將僅供讀取複本節點提升為主要節點，請採取下列步驟：

  1. 停用叢集上的多個可用區。

  1. 停用叢集上的自動容錯移轉。您可以透過主控台清除複寫群組的**自動容錯移轉**核取方塊來執行此操作。您也可以在呼叫 `ModifyReplicationGroup`操作`false`時，將 `AutomaticFailoverEnabled` 屬性設定為 ， AWS CLI 以使用 執行此操作。

  1. 將僅供讀取複本提升為主要節點。

  1. 重新啟用多個可用區。
+ ElastiCache for Redis OSS 多可用區和僅附加檔案 (AOF) 是互斥的。若您啟用其中一項，便無法啟用另外一項。
+ 節點故障很少會是因為整個可用區域失敗所造成。在此情況下，只有在可用區域已備份時，才會建立取代失敗主要節點的複本。例如，假設有一個複寫群組，其中主要節點位於 AZ-a，複本位於 AZ-b 及 AZ-c。若主要節點失敗，複寫延隔最少的複本便會提升至主要叢集。然後 ElastiCache 只會在 AZ-a 復原且重新可用時，才會在 AZ-a (即失敗主節點的所在位置) 中建立新的複本。
+ 由客戶初始化的主要節點重新開機不會觸發自動容錯移轉。其他重新開機和故障會觸發自動容錯移轉。
+ 主要節點重新開機時，便會在回到線上時清除資料。當僅供讀取複本看到已清除的主要叢集時，它們便會清除資料複本，造成資料遺失。
+ 在提升僅供讀取複本之後，其他複本便會和新的主要節點同步。初始化同步後，複本的內容會被刪除，而且它們會從新的主要節點同步資料。此同步程序會造成短暫的中斷，在此期間無法存取複本。此同步程序也會在與複本進行同步時，於主要節點上造成暫時性的負載增加。此行為是 Valkey 和 Redis OSS 的原生行為，對 ElastiCache Multi-AZ 而言並非唯一行為。如需此行為的詳細資訊，請參閱 Valkey 網站上的[複寫](http://valkey.io/topics/replication)。

**重要**  
對於 Valkey 7.2.6 和更新版本或 Redis OSS 2.8.22 和更新版本，您無法建立外部複本。  
對於 2.8.22 之前的 Redis OSS 版本，建議您不要將外部複本連接到已啟用異地同步備份的 ElastiCache 叢集。這是不受支援的組態，可能會造成問題，導致 ElastiCache 無法正常執行容錯移轉與復原。若要將外部複本連線至 ElastiCache 叢集，請確定在進行連線之前未啟用異地同步備份。

# 同步與備份的實作方式
<a name="Replication.Redis.Versions"></a>

所有支援的 Valkey 和 Redis OSS 版本都支援主要節點和複本節點之間的備份和同步。不過，備份和同步的實作方式會因版本而異。

## Redis OSS 2.8.22 版及更新版本
<a name="Replication.Redis.Version2-8-22"></a>

Redis OSS 複寫，在 2.8.22 版和更新版本中，選擇兩種方法。如需詳細資訊，請參閱[2.8.22 之前的 Redis OSS 版本](#Replication.Redis.Earlier2-8-22)及[快照和還原](backups.md)。

在無分支過程期間，若寫入負載龐大，對叢集進行的寫入會發生延遲，確保您不會累積過多變更並因此防止快照。

## 2.8.22 之前的 Redis OSS 版本
<a name="Replication.Redis.Earlier2-8-22"></a>

2.8.22 之前的 Redis OSS 備份和同步是三個步驟的程序。

1. 分支，並在背景程序中，將叢集資料序列化到磁碟。這會建立 point-in-time 快照。

1. 在前景中，將變更日誌累積在*用戶端輸出緩衝區*中。
**重要**  
若變更日誌超過*用戶端輸出緩衝區*大小，則備份或同步便會失敗。如需詳細資訊，請參閱[確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)。

1. 最後，將傳輸快取資料，以及變更日誌傳送到複本節點。

# 建立 Valkey 或 Redis OSS 複寫群組
<a name="Replication.CreatingRepGroup"></a>

您有以下選項，可用來建立包含複本節點的叢集。當您已有可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集，而該叢集具有要用作主節點的複本，則有一個叢集適用。如果您需要在叢集中建立主要節點及僅供讀取複本，則適用另一個選項。目前，必須從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集。

**選項 1：[使用現有叢集建立複寫群組](Replication.CreatingReplGroup.ExistingCluster.md)**  
使用此選項可運用現有的單一節點 Valkey 或 Redis OSS （停用叢集模式） 叢集。您需將此現有節點指定為新叢集中的主節點，然後將 1 到 5 個僅供讀取複本分別新增到叢集。若現有叢集正在作用中，僅供讀取複本便會在建立時與其同步。請參閱 [使用現有叢集建立複寫群組](Replication.CreatingReplGroup.ExistingCluster.md)。  
您無法使用現有叢集建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集。若要使用 ElastiCache 主控台建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：複寫群組），請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。

**選項 2：[從頭開始建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.md)**  
如果您還沒有可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集做為叢集的主要節點，或您想要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請使用此選項。請參閱[從頭開始建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.md)。

# 使用現有叢集建立複寫群組
<a name="Replication.CreatingReplGroup.ExistingCluster"></a>

下列程序會將複寫群組新增至您的 Valkey 或 Redis OSS （停用叢集模式） 單一節點叢集，這是將叢集升級至最新版本的 Valkey 所必需的。這是一個就地程序，涉及零停機時間和零資料遺失。當您為單一節點叢集建立複寫群組時，叢集的節點會成為新叢集中的主要節點。如果您沒有可以用作新叢集主要叢集的 Valkey 或 Redis OSS （停用叢集模式） 叢集，請參閱 [從頭開始建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.md)。

可用的叢集是現有的單一節點 Valkey 或 Redis OSS 叢集。目前，Valkey 或 Redis OSS （啟用叢集模式） 不支援使用可用的單一節點叢集建立具有複本的叢集。如果您想要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CON)。

## 使用現有叢集建立複寫群組 （主控台）
<a name="Replication.CreatingReplGroup.ExistingCluster.CON"></a>

請參閱主題：[使用 ElastiCache AWS 管理主控台](Clusters.AddNode.md#Clusters.AddNode.CON)。

## 使用可用的 Valkey 或 Redis OSS 叢集建立複寫群組 (AWS CLI)
<a name="Replication.CreatingReplGroup.ExistingCluster.CLI"></a>

在為主要 使用可用的 Valkey 或 Redis OSS 快取叢集時，建立具有僅供讀取複本的複寫群組有兩個步驟AWS CLI。

使用 時，AWS CLI您會建立複寫群組，指定可用的獨立節點做為叢集的主要節點，`--primary-cluster-id`以及使用 CLI 命令在叢集中所需的節點數目`create-replication-group`。包含以下參數。

**--replication-group-id**  
您要建立的複寫群組名稱。此參數的值會用來做為新增節點名稱的基礎，並在 `--replication-group-id` 的結尾加上 3 位數的序號。例如 `sample-repl-group-001`。  
Valkey 或 Redis OSS （停用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**--replication-group-description**  
複寫群組的說明。

**--num-node-groups**  
此叢集中的您希望的節點數量。此值包含主要節點。此參數的最大值為 6。

**--primary-cluster-id**  
您要成為此複寫群組中主要節點的可用 Valkey 或 Redis OSS （停用叢集模式） 叢集節點的名稱。

下列命令`sample-repl-group`會使用可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集建立複寫群組，`redis01`做為複寫群組的主要節點。它會建立 2 個新節點 (皆為僅供讀取複本)。`redis01` 的設定 (即參數群組、安全群組、節點類型、引擎版本等) 會套用到所有複寫群組中的節點。

針對 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
```

針對 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
```

如需您可能想要使用的其他資訊和參數，請參閱AWS CLI主題 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)。

**接下來，將僅供讀取複本新增到複寫群組**  
在建立複寫群組之後，使用 `create-cache-cluster` 命令將一到五個僅供讀取複本新增到其中，並確認包含以下參數。

**--cache-cluster-id**  
您欲新增到複寫群組的叢集名稱。  
叢集命名限制條件如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。


**--replication-group-id**  
您要新增此叢集的複寫群組名稱。

針對每個您欲新增到複寫群組的僅供讀取複本重複此命令，並只變更 `--cache-cluster-id` 參數的值。

**注意**  
請記住，複寫群組無法擁有超過五個僅供讀取複本。嘗試將僅供讀取複本新增到已有五個僅供讀取複本的複寫群組，會造成操作失敗。

以下程式碼會將僅供讀取複本 `my-replica01` 新增到複寫群組 `sample-repl-group`。主要叢集的設定 (參數群組、安全群組、節點類型等) 會在新增到複寫群組時套用到節點。

針對 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
   --cache-cluster-id my-replica01 \
   --replication-group-id sample-repl-group
```

針對 Windows：

```
aws elasticache create-cache-cluster ^
   --cache-cluster-id my-replica01 ^
   --replication-group-id sample-repl-group
```

此命令的輸出看起來會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "creating",
        "Description": "demo cluster with replicas",
        "ClusterEnabled": false,
        "ReplicationGroupId": "sample-repl-group",
        "SnapshotRetentionLimit": 1,
        "AutomaticFailover": "disabled",
        "SnapshotWindow": "00:00-01:00",
        "SnapshottingClusterId": "redis01",
        "MemberClusters": [
            "sample-repl-group-001",
            "sample-repl-group-002",
            "redis01"
        ],
        "CacheNodeType": "cache.m4.large",
        "DataTiering": "disabled",
        "PendingModifiedValues": {}
    }
}
```

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

## 將複本新增至獨立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (ElastiCache API)
<a name="Replication.CreatingReplGroup.ExistingCluster.API"></a>

使用 ElastiCache API 時，您會建立複寫群組，將可用的獨立節點指定為叢集的主節點 (`PrimaryClusterId`)，以及使用 CLI 命令 `CreateReplicationGroup` 指定您希望叢集中具有的節點數量。包含以下參數。

**ReplicationGroupId**  
您要建立的複寫群組名稱。此參數的值會用來做為新增節點名稱的基礎，並在 `ReplicationGroupId` 的結尾加上 3 位數的序號。例如 `sample-repl-group-001`。  
Valkey 或 Redis OSS （停用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**ReplicationGroupDescription**  
包含複本的叢集說明。

**NumCacheClusters**  
此叢集中的您希望的節點數量。此值包含主要節點。此參數的最大值為 6。

**PrimaryClusterId**  
您要成為此叢集中主節點的可用 Valkey 或 Redis OSS （停用叢集模式） 叢集名稱。

下列命令`sample-repl-group`會使用可用的 Valkey 或 Redis OSS （停用叢集模式） 叢集`redis01`做為複寫群組的主要節點，建立具有複本的叢集。它會建立 2 個新節點 (皆為僅供讀取複本)。`redis01` 的設定 (即參數群組、安全群組、節點類型、引擎版本等) 會套用到所有複寫群組中的節點。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateReplicationGroup 
   &Engine=redis
   &EngineVersion=6.0
   &ReplicationGroupDescription=Demo%20cluster%20with%20replicas
   &ReplicationGroupId=sample-repl-group
   &PrimaryClusterId=redis01
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需其他資訊，請參閱 ElastiCache APL 主題：
+ [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)

**接下來，將僅供讀取複本新增到複寫群組**  
在建立複寫群組之後，使用 `CreateCacheCluster` 操作將一到五個僅供讀取複本新增到其中，並確認包含以下參數。

**CacheClusterId**  
您欲新增到複寫群組的叢集名稱。  
叢集命名限制條件如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。


**ReplicationGroupId**  
您要新增此叢集的複寫群組名稱。

針對每個您欲新增到複寫群組的僅供讀取複本重複此操作，並只變更 `CacheClusterId` 參數的值。

以下程式碼會將僅供讀取複本 (`myReplica01`) 新增到複寫群組 (`myReplGroup`)。主要叢集的設定 (參數群組、安全群組、節點類型等) 會在新增到複寫群組時套用到節點。

```
https://elasticache.us-west-2.amazonaws.com/
	?Action=CreateCacheCluster
	&CacheClusterId=myReplica01
	&ReplicationGroupId=myReplGroup
	&SignatureMethod=HmacSHA256
	&SignatureVersion=4
	&Version=2015-02-02
	&X-Amz-Algorithm=&AWS;4-HMAC-SHA256
	&X-Amz-Credential=[your-access-key-id]/20150202/us-west-2/elasticache/aws4_request
	&X-Amz-Date=20150202T170651Z
	&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
	&X-Amz-Signature=[signature-value]
```

如需其他資訊及您可能需使用的參數，請參閱 ElastiCache API 主題：[CreateCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html)。

# 從頭開始建立 Valkey 或 Redis OSS 複寫群組
<a name="Replication.CreatingReplGroup.NoExistingCluster"></a>

您可以在下面找到如何建立 Valkey 或 Redis OSS 複寫群組，而不使用現有的 Valkey 或 Redis OSS 叢集做為主要叢集。您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API，從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。

在繼續之前，請先決定是否要建立 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。如需有關決定的指導，請參閱[複寫：停用 Valkey 和 Redis OSS 叢集模式與啟用](Replication.Redis-RedisCluster.md)。

**Topics**
+ [從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.Classic.md)
+ [從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md)

# 從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組
<a name="Replication.CreatingReplGroup.NoExistingCluster.Classic"></a>

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API，從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。Valkey 或 Redis OSS （停用叢集模式） 複寫群組一律有一個節點群組、一個主要叢集，以及最多五個僅供讀取複本。Valkey 或 Redis OSS （停用叢集模式） 複寫群組不支援分割您的資料。

**注意**  
節點/碎片的限制可增加至每一叢集 500 個。若要請求增加配額，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並在請求中加入執行個體類型。

若要從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，請採取下列其中一種方法：

## 從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (AWS CLI)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Classic.CLI"></a>

下列程序會使用 建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 AWS CLI。

當您從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組時，您可以透過對 AWS CLI `create-replication-group` 命令的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**--replication-group-id**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （停用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**--replication-group-description**  
複寫群組的說明。

**--num-cache-clusters**  
您希望與此複寫群組一同建立的節點數量，其為主要節點及僅供讀取複本數的總和。  
若您啟用異地同步備份 (`--automatic-failover-enabled`)，`--num-cache-clusters` 的值必須至少為 2。

**--cache-node-type**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**--cache-parameter-group**  
指定對應到您引擎版本的參數群組。如果您執行 Redis OSS 3.2.4 或更新版本，請指定 `default.redis3.2` 參數群組或衍生自 的參數群組`default.redis3.2`，以建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。如需詳細資訊，請參閱[Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。

**--網路類型**  
`ipv4`、`ipv6` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

**--engine**  
redis

**--engine-version**  
若要擁有最豐富的功能組，請選擇最新的引擎版本。

節點的名稱會透過在複寫群組名稱後方加上 `-00`*\$1* 來衍生取得。例如，若使用複寫群組名稱 `myReplGroup`，則主要節點的名稱就會是 `myReplGroup-001`，僅供讀取複本的名稱則為 `myReplGroup-002` 到 `myReplGroup-006`。

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `--transit-encryption-enabled` 或 `--at-rest-encryption-enabled` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `--cache-subnet-group` 參數。
+ 您也必須包含 `--auth-token` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

下列操作會建立`sample-repl-group`具有三個節點的 Valkey 或 Redis OSS （停用叢集模式） 複寫群組：一個主要節點和兩個複本。

若為 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 \
   --cache-node-type cache.m4.large \ 
   --engine redis
```

針對 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "Demo cluster with replicas" ^
   --num-cache-clusters 3 ^
   --cache-node-type cache.m4.large ^  
   --engine redis
```

此命令的輸出看起來會與以下內容相似。

```
{
    "ReplicationGroup": {
        "Status": "creating",
        "Description": "Demo cluster with replicas",
        "ClusterEnabled": false,
        "ReplicationGroupId": "sample-repl-group",
        "SnapshotRetentionLimit": 0,
        "AutomaticFailover": "disabled",
        "SnapshotWindow": "01:30-02:30",
        "MemberClusters": [
            "sample-repl-group-001",
            "sample-repl-group-002",
            "sample-repl-group-003"
        ],
        "CacheNodeType": "cache.m4.large",
        "DataTiering": "disabled",
        "PendingModifiedValues": {}
    }
}
```

如需您可能想要使用的其他資訊和參數，請參閱 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) AWS CLI 主題。

## 從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (ElastiCache API)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Classic.API"></a>

下列程序會使用 ElastiCache API 建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。

當您從頭開始建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組時，您可以透過對 ElastiCache API `CreateReplicationGroup`操作的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**ReplicationGroupId**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （啟用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**ReplicationGroupDescription**  
您複寫群組的說明。

**NumCacheClusters**  
您希望與此複寫群組一同建立的節點總數，其為主要節點及僅供讀取複本數的總和。  
若您啟用異地同步備份 (`AutomaticFailoverEnabled=true`)，`NumCacheClusters` 的值必須至少為 2。

**CacheNodeType**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**CacheParameterGroup**  
指定對應到您引擎版本的參數群組。如果您執行 Redis OSS 3.2.4 或更新版本，請指定 `default.redis3.2` 參數群組或衍生自 的參數群組`default.redis3.2`，以建立 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。如需詳細資訊，請參閱[Valkey 和 Redis OSS 參數](ParameterGroups.Engine.md#ParameterGroups.Redis)。

**--網路類型**  
`ipv4`、`ipv` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

**引擎**  
redis

**EngineVersion**  
6.0

節點的名稱會透過在複寫群組名稱後方加上 `-00`*\$1* 來衍生取得。例如，若使用複寫群組名稱 `myReplGroup`，則主要節點的名稱就會是 `myReplGroup-001`，僅供讀取複本的名稱則為 `myReplGroup-002` 到 `myReplGroup-006`。

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `TransitEncryptionEnabled=true` 或 `AtRestEncryptionEnabled=true` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `CacheSubnetGroup` 參數。
+ 您也必須包含 `AuthToken` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

下列操作會建立`myReplGroup`具有三個節點的 Valkey 或 Redis OSS （停用叢集模式） 複寫群組：主要節點和兩個複本。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateReplicationGroup 
   &CacheNodeType=cache.m4.large
   &CacheParameterGroup=default.redis6.x
   &Engine=redis
   &EngineVersion=6.0
   &NumCacheClusters=3
   &ReplicationGroupDescription=test%20group
   &ReplicationGroupId=myReplGroup
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需其他資訊及您可能需使用的參數，請參閱 ElastiCache API 主題：[CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)。

# 從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster"></a>

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API 建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (API/CLI：*複寫群組*)。Valkey 或 Redis OSS （啟用叢集模式） 複寫群組具有 1 到 500 個碎片 (API/CLI：節點群組）、每個碎片中的主要節點，以及每個碎片中最多 5 個僅供讀取複本。您可以建立具有較高數量碎片和較低數量複本的叢集，每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本，這是允許的複本最大數量。

如果 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 (每執行個體類型每叢集的節點數)**。

**Topics**
+ [使用 ElastiCache 主控台](#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CON)
+ [從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組 (AWS CLI)](#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CLI)
+ [從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組 (ElastiCache API)](#Replication.CreatingReplGroup.NoExistingCluster.Cluster.API)

## 建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster.CON"></a>

若要建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)。請務必啟用叢集模式 (**Cluster Mode enabled (Scale Out) (啟用叢集模式 (向外擴展))**)，並在其中指定至少兩個碎片及一個複本節點。

## 從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組 (AWS CLI)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster.CLI"></a>

下列程序會使用 建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組 AWS CLI。

當您從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組時，您可以透過對 AWS CLI `create-replication-group` 命令的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**--replication-group-id**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （啟用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**--replication-group-description**  
複寫群組的說明。

**--cache-node-type**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**--cache-parameter-group**  
指定 `default.redis6.x.cluster.on` 參數群組或衍生自 的參數群組`default.redis6.x.cluster.on`，以建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。如需詳細資訊，請參閱[Redis OSS 6.x 參數變更](ParameterGroups.Engine.md#ParameterGroups.Redis.6-x)。

**--engine**  
redis

**--engine-version**  
3.2.4

**--num-node-groups**  
此複寫群組中節點群組的數量。有效值為 1 到 500。  
節點/碎片的限制可增加至每一叢集 500 個。若要請求增加限制，請參閱 [AWS 服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)，並選取限制類型「每一執行個體類型每一叢集的節點數」。

**--replicas-per-node-group**  
每個節點群組中複本節點的數量。有效值為 0 到 5。

**--網路類型**  
`ipv4`、`ipv` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `--transit-encryption-enabled` 或 `--at-rest-encryption-enabled` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `--cache-subnet-group` 參數。
+ 您也必須包含 `--auth-token` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

下列操作會建立`sample-repl-group`具有三個節點群組/碎片 (--num-node-groups) 的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組，每個群組都有三個節點，一個主要節點和兩個僅供讀取複本 (--replicas-per-node-group)。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "Demo cluster with replicas" \
   --num-node-groups 3 \
   --replicas-per-node-group 2 \
   --cache-node-type cache.m4.large \ 
   --engine redis \   
   --security-group-ids SECURITY_GROUP_ID \    
   --cache-subnet-group-name SUBNET_GROUP_NAME>
```

針對 Windows：

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "Demo cluster with replicas" ^
   --num-node-groups 3 ^
   --replicas-per-node-group 2 ^
   --cache-node-type cache.m4.large ^ 
   --engine redis ^   
   --security-group-ids SECURITY_GROUP_ID ^      
   --cache-subnet-group-name SUBNET_GROUP_NAME>
```

上述命令會產生以下輸出。

```
{
    "ReplicationGroup": {
        "Status": "creating", 
        "Description": "Demo cluster with replicas", 
        "ReplicationGroupId": "sample-repl-group", 
        "SnapshotRetentionLimit": 0, 
        "AutomaticFailover": "enabled", 
        "SnapshotWindow": "05:30-06:30", 
        "MemberClusters": [
            "sample-repl-group-0001-001", 
            "sample-repl-group-0001-002", 
            "sample-repl-group-0001-003", 
            "sample-repl-group-0002-001", 
            "sample-repl-group-0002-002", 
            "sample-repl-group-0002-003", 
            "sample-repl-group-0003-001", 
            "sample-repl-group-0003-002", 
            "sample-repl-group-0003-003"
        ], 
        "PendingModifiedValues": {}
    }
}
```

當您從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組時，您可以使用 `--node-group-configuration` 參數來設定叢集中的每個碎片，如下列設定兩個節點群組 （主控台：碎片） 的範例所示。第一個碎片有兩個節點：一個主要節點及一個僅供讀取複本。第二個碎片有三個節點：一個主要節點及兩個僅供讀取複本。

**--node-group-configuration**  
每個節點群組的組態。`--node-group-configuration` 參數由以下欄位組成。  
+ `PrimaryAvailabilityZone` - 此節點群組主節點所在的可用區域。如果省略此參數，ElastiCache 會為主節點選擇可用區域。

  **範例：**us-west-2a。
+ `ReplicaAvailabilityZones` - 僅供讀取複本所在可用區域的逗點分隔清單。此清單中的可用區域數量必須等於 `ReplicaCount` 的值。如果省略此參數，ElastiCache 會為複本節點選擇可用區域。

  **範例：**"us-west-2a,us-west-2b,us-west-2c"
+ `ReplicaCount` - 此節點群組中複本節點的數量。
+ `Slots` - 指定節點群組 Keyspace 的字串。此字串格式為 `startKey-endKey`。如果省略此參數，ElastiCache 會在節點群組間配置相同的索引鍵。

  **範例：**"0-4999"

   

下列操作會建立`new-group`具有兩個節點群組/碎片 () 的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組`--num-node-groups`。與上述範例不同，每個節點群組的設定都會與其他節點群組不同 (`--node-group-configuration`)。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-replication-group \
  --replication-group-id new-group \
  --replication-group-description "Sharded replication group" \
  --engine redis \    
  --snapshot-retention-limit 8 \
  --cache-node-type cache.m4.medium \
  --num-node-groups 2 \
  --node-group-configuration \
      "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \
      "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"
```

針對 Windows：

```
aws elasticache create-replication-group ^
  --replication-group-id new-group ^
  --replication-group-description "Sharded replication group" ^
  --engine redis ^    
  --snapshot-retention-limit 8 ^
  --cache-node-type cache.m4.medium ^
  --num-node-groups 2 ^
  --node-group-configuration \
      "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \
      "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"
```

上述操作會產生以下輸出。

```
{
    "ReplicationGroup": {
        "Status": "creating", 
        "Description": "Sharded replication group", 
        "ReplicationGroupId": "rc-rg", 
        "SnapshotRetentionLimit": 8, 
        "AutomaticFailover": "enabled", 
        "SnapshotWindow": "10:00-11:00", 
        "MemberClusters": [
            "rc-rg-0001-001", 
            "rc-rg-0001-002", 
            "rc-rg-0002-001", 
            "rc-rg-0002-002", 
            "rc-rg-0002-003"
        ], 
        "PendingModifiedValues": {}
    }
}
```

如需您可能想要使用的其他資訊和參數，請參閱 AWS CLI 主題 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)。

## 從頭開始在 Valkey 或 Redis OSS （啟用叢集模式） 中建立複寫群組 (ElastiCache API)
<a name="Replication.CreatingReplGroup.NoExistingCluster.Cluster.API"></a>

下列程序會使用 ElastiCache API 建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。

當您從頭開始建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組時，您可以透過對 ElastiCache API `CreateReplicationGroup`操作的單一呼叫來建立複寫群組及其所有節點。包含以下參數。

**ReplicationGroupId**  
您要建立的複寫群組名稱。  
Valkey 或 Redis OSS （啟用叢集模式） 複寫群組命名限制如下：  
+ 必須包含 1-40 個英數字元或連字號。
+ 必須以字母開頭。
+ 不能連續包含兩個連字號。
+ 結尾不能是連字號。

**ReplicationGroupDescription**  
複寫群組的說明。

**NumNodeGroups**  
您希望和此複寫群組一同建立的節點群組數量。有效值為 1 到 500。

**ReplicasPerNodeGroup**  
每個節點群組中複本節點的數量。有效值為 1 到 5。

**NodeGroupConfiguration**  
每個節點群組的組態。`NodeGroupConfiguration` 參數由以下欄位組成。  
+ `PrimaryAvailabilityZone` - 此節點群組主節點所在的可用區域。如果省略此參數，ElastiCache 會為主節點選擇可用區域。

  **範例：**us-west-2a。
+ `ReplicaAvailabilityZones` - 僅供讀取複本所在可用區域的清單。此清單中的可用區域數量必須等於 `ReplicaCount` 的值。如果省略此參數，ElastiCache 會為複本節點選擇可用區域。
+ `ReplicaCount` - 此節點群組中複本節點的數量。
+ `Slots` - 指定節點群組 Keyspace 的字串。此字串格式為 `startKey-endKey`。如果省略此參數，ElastiCache 會在節點群組間配置相同的索引鍵。

  **範例：**"0-4999"

   

**CacheNodeType**  
複寫群組中每個節點的節點類型。  
ElastiCache 支援以下節點類型。一般而言，最新一代的節點類型跟前一代相同的節點類型比較起來，能夠以較低的成本提供更多記憶體和運算能力。  
如需深入了解每個節點類型的效能詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。

**– data-tiering-enabled**  
如果您使用的是 r6gd 節點類型，應設定此參數。如果您不想要資料分層，應設為 `--no-data-tiering-enabled`。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

**CacheParameterGroup**  
指定 `default.redis6.x.cluster.on` 參數群組或衍生自 的參數群組`default.redis6.x.cluster.on`，以建立 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。如需詳細資訊，請參閱[Redis OSS 6.x 參數變更](ParameterGroups.Engine.md#ParameterGroups.Redis.6-x)。

**--網路類型**  
`ipv4`、`ipv` 或 `dual-stack`。若您選擇雙堆疊，則必須將 `--IpDiscovery` 參數設定為 `ipv4` 或 `ipv6`。

**引擎**  
redis

**EngineVersion**  
6.0

若您希望在此複寫群組上啟用傳輸中及待用加密，請新增 `TransitEncryptionEnabled=true` 或 `AtRestEncryptionEnabled=true` 參數或同時新增兩者，並符合以下條件。
+ 您的複寫群組必須執行 Redis OSS 3.2.6 或 4.0.10 版。
+ 複寫群組必須在 Amazon VPC 中建立。
+ 您也必須包含 `CacheSubnetGroup` 參數。
+ 您也必須包含 `AuthToken` 參數，其中包含在此複寫群組上執行操作時所需要 AUTH 字符 (密碼) 的客戶指定字串值。

加上分行符號的用意是便於閱讀。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=CreateReplicationGroup 
   &CacheNodeType=cache.m4.large
   &CacheParemeterGroup=default.redis6.xcluster.on
   &Engine=redis
   &EngineVersion=6.0
   &NumNodeGroups=3
   &ReplicasPerNodeGroup=2
   &ReplicationGroupDescription=test%20group
   &ReplicationGroupId=myReplGroup
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需其他資訊及您可能需使用的參數，請參閱 ElastiCache API 主題：[CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)。

# 檢視複寫群組詳細資訊
<a name="Replication.ViewDetails"></a>

有時候，您可能會想要檢視複寫群組的詳細資訊。您可以使用 ElastiCache 主控台、 AWS CLI 適用於 ElastiCache 的 或 ElastiCache API。Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 的主控台程序不同。

**Contents**
+ [使用複本檢視 Valkey 或 Redis OSS （停用叢集模式）](Replication.ViewDetails.Redis.md)
  + [使用 ElastiCache 主控台](Replication.ViewDetails.Redis.md#Replication.ViewDetails.Redis.CON)
  + [使用 AWS CLI](Replication.ViewDetails.Redis.md#Replication.ViewDetails.Redis.CLI)
  + [使用 ElastiCache API](Replication.ViewDetails.Redis.md#Replication.ViewDetails.Redis.API)
+ [檢視複寫群組：Valkey 或 Redis OSS （啟用叢集模式）](Replication.ViewDetails.RedisCluster.md)
  + [使用 ElastiCache 主控台](Replication.ViewDetails.RedisCluster.md#Replication.ViewDetails.RedisCluster.CON)
  + [使用 AWS CLI](Replication.ViewDetails.RedisCluster.md#Replication.ViewDetails.RedisCluster.CLI)
  + [使用 ElastiCache API](Replication.ViewDetails.RedisCluster.md#Replication.ViewDetails.RedisCluster.API)
+ [檢視複寫群組詳細資訊 (AWS CLI)](Replication.ViewDetails.CLI.md)
+ [檢視複寫群組詳細資訊 (ElastiCache API)](Replication.ViewDetails.API.md)

# 使用複本檢視 Valkey 或 Redis OSS （停用叢集模式）
<a name="Replication.ViewDetails.Redis"></a>

您可以使用 ElastiCache 主控台、 AWS CLI for ElastiCache 或 ElastiCache API，檢視具有複本 (API/CLI： *複寫群組*) 的 Valkey 或 Redis OSS （停用叢集模式） 叢集的詳細資訊。

**Contents**
+ [使用 ElastiCache 主控台](#Replication.ViewDetails.Redis.CON)
+ [使用 AWS CLI](#Replication.ViewDetails.Redis.CLI)
+ [使用 ElastiCache API](#Replication.ViewDetails.Redis.API)

## 檢視 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 （主控台）
<a name="Replication.ViewDetails.Redis.CON"></a>

若要使用 ElastiCache 主控台檢視具有複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集的詳細資訊，請參閱主題 [檢視 Valkey 或 Redis OSS （停用叢集模式） 詳細資訊 （主控台）](Clusters.ViewDetails.md#Clusters.ViewDetails.CON.Redis)。

## 檢視 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (AWS CLI)
<a name="Replication.ViewDetails.Redis.CLI"></a>

如需顯示 Valkey 或 Redis OSS （停用叢集模式） 複寫群組詳細資訊 AWS CLI 的範例，請參閱 [檢視複寫群組詳細資訊 (AWS CLI)](Replication.ViewDetails.CLI.md)。

## 檢視 Valkey 或 Redis OSS （停用叢集模式） 複寫群組 (ElastiCache API)
<a name="Replication.ViewDetails.Redis.API"></a>

如需顯示 Valkey 或 Redis OSS （停用叢集模式） 複寫群組詳細資訊的 ElastiCache API 範例，請參閱 [檢視複寫群組詳細資訊 (ElastiCache API)](Replication.ViewDetails.API.md)。

# 檢視複寫群組：Valkey 或 Redis OSS （啟用叢集模式）
<a name="Replication.ViewDetails.RedisCluster"></a>

## 檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）
<a name="Replication.ViewDetails.RedisCluster.CON"></a>

若要使用 ElastiCache 主控台檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集的詳細資訊，請參閱 [檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台） 的詳細資訊](Clusters.ViewDetails.md#Clusters.ViewDetails.CON.RedisCluster)。

## 檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (AWS CLI)
<a name="Replication.ViewDetails.RedisCluster.CLI"></a>

如需顯示 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組詳細資訊的 ElastiCache CLI 範例，請參閱 [檢視複寫群組詳細資訊 (AWS CLI)](Replication.ViewDetails.CLI.md)。

## 檢視 Valkey 或 Redis OSS （啟用叢集模式） 叢集 (ElastiCache API)
<a name="Replication.ViewDetails.RedisCluster.API"></a>

如需顯示 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組詳細資訊的 ElastiCache API 範例，請參閱 [檢視複寫群組詳細資訊 (ElastiCache API)](Replication.ViewDetails.API.md)。

# 檢視複寫群組詳細資訊 (AWS CLI)
<a name="Replication.ViewDetails.CLI"></a>

您可以使用 命令檢視複寫群組 AWS CLI `describe-replication-groups`的詳細資訊。使用以下選用參數來縮小清單的搜尋範圍。忽略參數會傳回最多 100 個複寫群組的詳細資訊。

**選用的參數**
+ `--replication-group-id` - 使用此參數來列出特定複寫群組的詳細資訊。若指定複寫群組擁有超過一個節點群組，結果會以節點群組做為群組傳回。
+ `--max-items` - 使用此參數來限制列出的複寫群組數量。`--max-items` 的值不可小於 20 或大於 100。

**Example**  
以下程式碼清單會列出最多 100 個複寫群組的詳細資訊。  

```
aws elasticache describe-replication-groups
```
以下程式碼會列出 `sample-repl-group` 的詳細資訊。  

```
aws elasticache describe-replication-groups --replication-group-id sample-repl-group
```
以下程式碼會列出 `sample-repl-group` 的詳細資訊。  

```
aws elasticache describe-replication-groups --replication-group-id sample-repl-group
```
以下程式碼清單會列出最多 25 個複寫群組的詳細資訊。  

```
aws elasticache describe-replication-groups --max-items 25
```
此操作的輸出看起來應會與以下內容相似 (JSON 格式)。  

```
{
   "ReplicationGroups": [
     {
       "Status": "available", 
       "Description": "test", 
       "NodeGroups": [
         {
            "Status": "available", 
               "NodeGroupMembers": [
                  {
                     "CurrentRole": "primary", 
                     "PreferredAvailabilityZone": "us-west-2a", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "rg-name-001.1abc4d.0001.usw2.cache.amazonaws.com"
                     }, 
                     "CacheClusterId": "rg-name-001"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2b", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "rg-name-002.1abc4d.0001.usw2.cache.amazonaws.com"
                     }, 
                     "CacheClusterId": "rg-name-002"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2c", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "rg-name-003.1abc4d.0001.usw2.cache.amazonaws.com"
                     }, 
                     "CacheClusterId": "rg-name-003"
                  }
               ], 
               "NodeGroupId": "0001", 
               "PrimaryEndpoint": {
                  "Port": 6379, 
                  "Address": "rg-name.1abc4d.ng.0001.usw2.cache.amazonaws.com"
               }
            }
         ], 
         "ReplicationGroupId": "rg-name", 
         "AutomaticFailover": "enabled", 
         "SnapshottingClusterId": "rg-name-002", 
         "MemberClusters": [
            "rg-name-001", 
            "rg-name-002", 
            "rg-name-003"
         ], 
         "PendingModifiedValues": {}
      }, 
      {
      ... some output omitted for brevity
      }
   ]
}
```

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

# 檢視複寫群組詳細資訊 (ElastiCache API)
<a name="Replication.ViewDetails.API"></a>

您可以使用 操作檢視複寫 AWS CLI `DescribeReplicationGroups`的詳細資訊。使用以下選用參數來縮小清單的搜尋範圍。忽略參數會傳回最多 100 個複寫群組的詳細資訊。

**選用的參數**
+ `ReplicationGroupId` - 使用此參數來列出特定複寫群組的詳細資訊。若指定複寫群組擁有超過一個節點群組，結果會以節點群組做為群組傳回。
+ `MaxRecords` - 使用此參數來限制列出的複寫群組數量。`MaxRecords` 的值不可小於 20 或大於 100。預設為 100。

**Example**  
以下程式碼清單會列出最多 100 個複寫群組的詳細資訊。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroups
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```
以下程式碼會列出 `myReplGroup` 的詳細資訊。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroups
   &ReplicationGroupId=myReplGroup
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```
以下程式碼清單會列出最多 25 個叢集的詳細資訊。  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroups
   &MaxRecords=25
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱 ElastiCache API 參考主題 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)。

# 尋找複寫群組端點
<a name="Replication.Endpoints"></a>

只要複寫群組提供節點的 DNS 端點和連接埠號碼，應用程式即可連線到複寫群組中的任何節點。視您執行的是 Valkey 或 Redis OSS （停用叢集模式） 或 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組而定，您會對不同的端點感興趣。

**Valkey 或 Redis OSS （停用叢集模式）**  
具有複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集有三種端點類型：*主要端點*、*讀取器端點*和*節點端點*。主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動，我們建議您的應用程式連線到主要端點。

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

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

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

**Valkey 或 Redis OSS （啟用叢集模式）**  
具有複本的 Valkey 或 Redis OSS （啟用叢集模式） 叢集，因為它們具有多個碎片 (API/CLI：節點群組），這表示它們也具有多個主節點，與 Valkey 或 Redis OSS （停用叢集模式） 叢集具有不同的端點結構。Valkey 或 Redis OSS （啟用叢集模式） 具有*組態端點*，它「知道」叢集中的所有主要和節點端點。您的應用程式會連線到組態端點。每當您的應用程式從叢集的組態端點、Valkey 和 Redis OSS 寫入或讀取時，請在幕後判斷金鑰所屬的碎片，以及該碎片中要使用的端點。這對您的應用程式來說都相當透明。

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API 尋找叢集的端點。

**尋找複寫群組端點**

若要尋找您複寫群組的端點，請參閱以下其中一個主題：
+ [尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.Redis)
+ [尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點 （主控台）](Endpoints.md#Endpoints.Find.RedisCluster)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](Endpoints.md#Endpoints.Find.CLI.ReplGroups)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](Endpoints.md#Endpoints.Find.API.ReplGroups)

# 修改複寫群組
<a name="Replication.Modify"></a>

**重要限制**  
目前，ElastiCache 支援對 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組進行有限的修改，例如使用 API 操作 `ModifyReplicationGroup`(CLI：) 變更引擎版本`modify-replication-group`。您可以使用 API 操作 (CLI：) 修改 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html)（節點群組） 數目[https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group-shard-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group-shard-configuration.html)。如需詳細資訊，請參閱[擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。  
對 Valkey 或 Redis OSS （啟用叢集模式） 叢集進行的其他修改需要您使用整合變更的新叢集來建立叢集。
您可以將 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 叢集和複寫群組升級至較新的引擎版本。不過，您無法降級至舊版引擎，除非您刪除現有的叢集或複寫群組，並重新建立叢集。如需詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。
您可以使用主控台、[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) API 或 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) CLI 命令，升級使用停用叢集模式的現有 ElastiCache for Valkey 或 Redis OSS 叢集，如下所示。或者，您也可以依照[修改叢集模式](modify-cluster-mode.md)中的步驟執行。

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API 修改 Valkey 或 Redis OSS （停用叢集模式） 叢集的設定。目前，ElastiCache 支援對 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組進行有限數量的修改。其他修改需要您建立目前複寫群組的備份，然後使用該備份植入新的 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。

**Topics**
+ [使用 AWS 管理主控台](#Replication.Modify.CON)
+ [使用 AWS CLI](#Replication.Modify.CLI)
+ [使用 ElastiCache API](#Replication.Modify.API)

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

若要修改 Valkey 或 Redis OSS （停用叢集模式） 叢集，請參閱 [修改 ElastiCache 叢集](Clusters.Modify.md)。

## 使用 AWS CLI
<a name="Replication.Modify.CLI"></a>

以下是 `modify-replication-group`命令 AWS CLI 的範例。您可以使用相同命令對複寫群組進行其他修改。

**在現有的 Valkey 或 Redis OSS 複寫群組上啟用異地同步備份：**

針對 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --multi-az-enabled = true
```

針對 Windows：

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --multi-az-enabled
```

**將叢集模式從停用修改為啟用：**

若要將叢集模式從*停用*修改為*啟用*，您必須先將叢集模式設定為*相容*。相容模式可讓 Valkey 或 Redis OSS 用戶端使用已啟用的叢集模式和已停用的叢集模式進行連線。遷移所有 Valkey 或 Redis OSS 用戶端以使用啟用的叢集模式後，您就可以完成叢集模式組態，並將叢集模式設定為*啟用*。

針對 Linux、macOS 或 Unix：

將叢集模式設為*相容*。

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --cache-parameter-group-name myParameterGroupName \
   --cluster-mode compatible
```

將叢集模式設為*啟用*。

```
aws elasticache modify-replication-group \
   --replication-group-id myReplGroup \
   --cluster-mode enabled
```

針對 Windows：

將叢集模式設為*相容*。

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --cache-parameter-group-name myParameterGroupName ^
   --cluster-mode compatible
```

將叢集模式設為*啟用*。

```
aws elasticache modify-replication-group ^
   --replication-group-id myReplGroup ^
   --cluster-mode enabled
```

如需 AWS CLI `modify-replication-group`命令的詳細資訊，請參閱《ElastiCache for Redis OSS [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) 使用者指南》中的[或修改叢集模式]()。 *ElastiCache *

## 使用 ElastiCache API
<a name="Replication.Modify.API"></a>

下列 ElastiCache API 操作會在現有的 Valkey 或 Redis OSS 複寫群組上啟用異地同步備份。您可以使用相同操作對複寫群組進行其他修改。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ModifyReplicationGroup
   &AutomaticFailoverEnabled=true  
   &Mutli-AZEnabled=true  
   &ReplicationGroupId=myReplGroup
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20141201T220302Z
   &Version=2014-12-01
   &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 `ModifyReplicationGroup` 作業的詳細資訊，請參閱「[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)」。

# 刪除複寫群組
<a name="Replication.DeletingRepGroup"></a>

若您不再需要您其中一個包含複本的叢集 (在 API/CLI 中稱為「複寫群組」**)，您可以刪除它。刪除複寫群組時，ElastiCache 也會刪除該群組中的所有節點。

此作業開始後便無法中斷或取消。

**警告**  
當您刪除 ElastiCache for Redis OSS 叢集時，會保留您的手動快照。您還可以選擇在刪除叢集之前建立最終快照。自動快取快照則不會保留。
`CreateSnapshot` 需要 許可才能建立最終快照。如果沒有此許可，API 呼叫將會失敗，但有`Access Denied`例外狀況。

## 刪除複寫群組 (主控台)
<a name="Replication.DeletingRepGroup.CON"></a>

若要刪除具有複本的叢集，請參閱[在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

## 刪除複寫群組 (AWS CLI)
<a name="Replication.DeletingRepGroup.CLI"></a>

使用命令 [delete-replication-group](https://docs.aws.amazon.com/AmazonElastiCache/latest/CommandLineReference/CLIReference-cmd-DeleteReplicationGroup.html) 來刪除複寫群組。

```
aws elasticache delete-replication-group --replication-group-id my-repgroup 
```

隨即出現提示，請您確認該項決定。輸入 *y* (是) 來立即啟動操作。在程序啟動後，便無法復原。

```
						
   After you begin deleting this replication group, all of its nodes will be deleted as well.
   Are you sure you want to delete this replication group? [Ny]y

REPLICATIONGROUP  my-repgroup  My replication group  deleting
```

## 刪除複寫群組 (ElastiCache API)
<a name="Replication.DeletingRepGroup.API"></a>

使用 `ReplicationGroup` 參數呼叫 [DeleteReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteReplicationGroup.html)。

**Example**  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DeleteReplicationGroup
   &ReplicationGroupId=my-repgroup
   &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>
```

**注意**  
若您將 `RetainPrimaryCluster` 參數設為 `true`，便會刪除所有僅供讀取複本，但仍會保留主要叢集。

# 變更複本的數量
<a name="increase-decrease-replica-count"></a>

您可以使用 AWS 管理主控台 AWS CLI、 或 ElastiCache API，動態增加或減少 Valkey 或 Redis OSS 複寫群組中的僅供讀取複本數量。如果您的複寫群組是 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組，您可以選擇要增加或減少複本數量的碎片 （節點群組）。

若要動態變更複寫群組中的複本數量，請從下表選擇符合您情況的操作。


| 執行此作業 | 針對 Valkey 或 Redis OSS （啟用叢集模式） | 針對 Valkey 或 Redis OSS （停用叢集模式） | 
| --- | --- | --- | 
|  新增複本  |  [增加碎片中的複本數量](increase-replica-count.md)  |  [增加碎片中的複本數量](increase-replica-count.md) [新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)  | 
|  刪除複本  |  [減少碎片中的複本數量](decrease-replica-count.md)  |  [減少碎片中的複本數量](decrease-replica-count.md) [刪除 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.RemoveReadReplica.md)  | 

# 增加碎片中的複本數量
<a name="increase-replica-count"></a>

您可以將 Valkey 或 Redis OSS （啟用叢集模式） 碎片、Valkey 或 Redis OSS （停用叢集模式） 複寫群組中的複本數量增加最多五個。您可以使用 AWS 管理主控台、 AWS CLI或 ElastiCache API 來執行此操作。

**Topics**
+ [使用 AWS 管理主控台](#increase-replica-count-con)
+ [使用 AWS CLI](#increase-replica-count-cli)
+ [使用 ElastiCache API](#increase-replica-count-api)

## 使用 AWS 管理主控台
<a name="increase-replica-count-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. ​選擇每個您欲新增複本碎片的方塊。

1. 選擇 **Add replicas (新增複本)**。

1. 完成 **Add Replicas to Shards (新增複本至碎片)** 頁面：
   + 針對 **New number of replicas/shard (新的複本/碎片數)**，輸入您希望所選取碎片擁有的複本數。此值必須大於等於 **Current Number of Replicas per shard (目前每個碎片的複本數)**，並小於等於五。我們建議您包含至少兩個複本，做為運作的最低需求。
   + 針對 **Availability Zones (可用區域)**，選擇 **No preference (無偏好設定)** 讓 ElastiCache 為每個新複本選擇可用區域，或 **Specify Availability Zones (指定可用區域)** 來選擇每個新複本的可用區域。

     如果您選擇 **Specify Availability Zones (指定可用區域)**，請使用清單指定每個複本的可用區域。

1. 選擇 **Add (新增)** 以新增複本，或選擇 **Cancel (取消)** 以取消操作。

## 使用 AWS CLI
<a name="increase-replica-count-cli"></a>

若要增加 Valkey 或 Redis OSS 碎片中的複本數量，請使用 `increase-replica-count`命令搭配下列參數：
+ `--replication-group-id` - 必要項目。識別您希望增加複本數的複寫群組。
+ `--apply-immediately` 或 `--no-apply-immediately` - 必要項目。指定是否要立即增加複本計數 (`--apply-immediately`)，或是在下一次維護時間時進行 (`--no-apply-immediately`)。目前不支援 `--no-apply-immediately`。
+ `--new-replica-count` - 選用。指定您希望完成時擁有的複本節點數，最多五個。針對只有一個節點群組或 Valkey 或 Redis OSS （啟用叢集模式） 群組，或您希望所有節點群組擁有相同數量複本的複寫群組，使用此參數。若此值不大於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
+ `--replica-configuration` - 選用。允許您為每個節點群組分別設定複本數及可用區域。針對您要獨立設定每個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，使用此參數。

  `--replica-configuration` 有三個選用成員：
  + `NodeGroupId` - 待設定節點群組的四位數 ID。對於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，碎片 ID 一律為 `0001`。若要尋找 Valkey 或 Redis OSS （啟用叢集模式） 節點群組的 （碎片） ID，請參閱 [尋找碎片的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` - 此作業結束後，您希望此節點群組中擁有的複本數。其值必須大於目前的複本數，最多五個。若此值不大於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `--replica-configuration`的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須在呼叫中包含 `--new-replica-count` 或 `--replica-configuration` 參數，但不可同時包含兩者。

**Example**  
以下範例會將複寫群組 `sample-repl-group` 中的複本數增加到三。範例完成時，每個節點群組中都會有三個複本。無論是具有單一節點群組的 Valkey 或 Redis OSS （停用叢集模式） 群組，還是具有多個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，此數字都適用。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache increase-replica-count \
    --replication-group-id sample-repl-group \
    --new-replica-count 3 \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache increase-replica-count ^
    --replication-group-id sample-repl-group ^
    --new-replica-count 3 ^
    --apply-immediately
```
以下範例會將複寫群組 `sample-repl-group` 中的複本數增加到為兩個指定節點群組指定的值。假設有多個節點群組，這是 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。當指定選用的 `PreferredAvailabilityZones` 時，所列出的可用區域數量必須等於 `NewReplicaCount` \$1 1 的值。此方法可涵蓋由 `NodeGroupId` 識別群組的主要節點。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache increase-replica-count \
    --replication-group-id sample-repl-group \
    --replica-configuration \
        NodeGroupId=0001,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1c,us-east-1b \
        NodeGroupId=0003,NewReplicaCount=3,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c,us-east-1c \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache increase-replica-count ^
    --replication-group-id sample-repl-group ^
    --replica-configuration ^
        NodeGroupId=0001,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1c,us-east-1b ^
        NodeGroupId=0003,NewReplicaCount=3,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c,us-east-1c \
    --apply-immediately
```

如需使用 CLI 增加複本數量的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [increase-replica-count](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html)。

## 使用 ElastiCache API
<a name="increase-replica-count-api"></a>

若要增加 Valkey 或 Redis OSS 碎片中的複本數量，請使用 `IncreaseReplicaCount`動作搭配下列參數：
+ `ReplicationGroupId` - 必要項目。識別您希望增加複本數的複寫群組。
+ `ApplyImmediately` - 必要項目。指定是否要立即增加複本計數 (`ApplyImmediately=True`)，或是在下一次維護時間時進行 (`ApplyImmediately=False`)。目前不支援 `ApplyImmediately=False`。
+ `NewReplicaCount` - 選用。指定您希望完成時擁有的複本節點數，最多五個。將此參數用於只有一個節點群組的 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，或您想要所有節點群組擁有相同數量複本的 Valkey 或 Redis OSS （啟用叢集模式） 群組。若此值不大於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
+ `ReplicaConfiguration` - 選用。允許您為每個節點群組分別設定複本數及可用區域。針對您要獨立設定每個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，使用此參數。

  `ReplicaConfiguraion` 有三個選用成員：
  + `NodeGroupId` - 待設定節點群組的四位數 ID。對於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，節點群組 （碎片） ID 一律為 `0001`。若要尋找 Valkey 或 Redis OSS （啟用叢集模式） 節點群組的 （碎片） ID，請參閱 [尋找碎片的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` - 此作業結束後，您希望此節點群組中擁有的複本數。其值必須大於目前的複本數，並且最多五個。若此值不大於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `ReplicaConfiguration` 的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須在呼叫中包含 `NewReplicaCount` 或 `ReplicaConfiguration` 參數，但不可同時包含兩者。

**Example**  
以下範例會將複寫群組 `sample-repl-group` 中的複本數增加到三。範例完成時，每個節點群組中都會有三個複本。無論是具有單一節點群組的 Valkey 或 Redis OSS （停用叢集模式） 群組，還是具有多個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，此數字都適用。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=True
      &NewReplicaCount=3
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```
以下範例會將複寫群組 `sample-repl-group` 中的複本數增加到為兩個指定節點群組指定的值。假設有多個節點群組，這是 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。當指定選用的 `PreferredAvailabilityZones` 時，所列出的可用區域數量必須等於 `NewReplicaCount` \$1 1 的值。此方法可涵蓋由 `NodeGroupId` 識別群組的主要節點。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=True
      &ReplicaConfiguration.ConfigureShard.1.NodeGroupId=0001
      &ReplicaConfiguration.ConfigureShard.1.NewReplicaCount=2
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1c
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.3=us-east-1b
      &ReplicaConfiguration.ConfigureShard.2.NodeGroupId=0003
      &ReplicaConfiguration.ConfigureShard.2.NewReplicaCount=3
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1b
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.3=us-east-1c
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.4=us-east-1c
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```

如需使用 API 增加複本數量的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [IncreaseReplicaCount](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html)。

# 減少碎片中的複本數量
<a name="decrease-replica-count"></a>

您可以減少 Valkey 或 Redis OSS （啟用叢集模式） 碎片中的複本數量，或 Valkey 或 Redis OSS （停用叢集模式） 的複寫群組中的複本數量：
+ 對於 Valkey 或 Redis OSS （停用叢集模式），如果啟用異地同步備份，您可以將複本數量減少為一個，如果未啟用，則可以減少為零。
+ 對於 Valkey 或 Redis OSS （啟用叢集模式），您可以將複本數量減少為零。但是，若主要節點失敗，您將無法容錯移轉至複本。

您可以使用 AWS 管理主控台、 AWS CLI 或 ElastiCache API 來減少節點群組 （碎片） 或複寫群組中的複本數量。

**Topics**
+ [使用 AWS 管理主控台](#decrease-replica-count-con)
+ [使用 AWS CLI](#decrease-replica-count-cli)
+ [使用 ElastiCache API](#decrease-replica-count-api)

## 使用 AWS 管理主控台
<a name="decrease-replica-count-con"></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. 選擇 **Delete replicas (刪除複本)**。

1. 完成 **Delete Replicas from Shards (從碎片刪除複本)** 頁面：

   1. 針對 **New number of replicas/shard (新的複本/碎片數)**，輸入您希望所選取碎片擁有的複本數。該數字必須等於或大於 1。我們建議您為每個碎片設定至少兩個複本，做為運作的最低需求。

   1. 選擇 **Delete (刪除)** 以刪除複本，或選擇 **Cancel (取消)** 以取消操作。

**重要**  
如果您未指定要刪除的複本節點，ElastiCache for Redis OSS 會自動選取要刪除的複本節點。執行此作業時，ElastiCache for Redis OSS 會嘗試保留複寫群組的異地同步備份架構，接著保留具有主要叢集最低複寫延遲的複本。
您無法刪除複寫群組中的主節點。若您指定刪除主要節點，操作會失敗並出現錯誤，指出已選取主要節點進行刪除。

## 使用 AWS CLI
<a name="decrease-replica-count-cli"></a>

若要減少 Valkey 或 Redis OSS 碎片中的複本數量，請使用 `decrease-replica-count`命令搭配下列參數：
+ `--replication-group-id` - 必要項目。識別您希望減少複本數的複寫群組。
+ `--apply-immediately` 或 `--no-apply-immediately` - 必要項目。指定是否要立即減少複本計數 (`--apply-immediately`)，或是在下一次維護時間時進行 (`--no-apply-immediately`)。目前不支援 `--no-apply-immediately`。
+ `--new-replica-count` - 選用。指定您希望的複本節點數量。`--new-replica-count` 的值必須為有效值，小於節點群組中目前的數量。如需了解最低允許值，請參閱[減少碎片中的複本數量](#decrease-replica-count)。若 `--new-replica-count` 的值不符合此需求，呼叫便會失敗。
+ `--replicas-to-remove` - 選用。包含節點 ID 清單，指定要移除的複本節點。
+ `--replica-configuration` - 選用。允許您為每個節點群組分別設定複本數及可用區域。針對您要獨立設定每個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，使用此參數。

  `--replica-configuration` 有三個選用成員：
  + `NodeGroupId` - 待設定節點群組的四位數 ID。對於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，碎片 ID 一律為 `0001`。若要尋找 Valkey 或 Redis OSS （啟用叢集模式） 節點群組的 （碎片） ID，請參閱 [尋找碎片的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` - 選用參數，指定您希望的複本節點數。`NewReplicaCount` 的值必須為有效值，小於節點群組中目前的數量。如需了解最低允許值，請參閱[減少碎片中的複本數量](#decrease-replica-count)。若 `NewReplicaCount` 的值不符合此需求，呼叫便會失敗。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `--replica-configuration`的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須包含一個 (並且只能一個) `--new-replica-count`、`--replicas-to-remove` 或 `--replica-configuration` 參數。

**Example**  
以下範例會使用 `--new-replica-count` 將複寫群組 `sample-repl-group` 中的複本數減少至一。範例完成時，每個節點群組中都會有一個複本。無論是具有單一節點群組的 Valkey 或 Redis OSS （停用叢集模式） 群組，還是具有多個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，此數字都適用。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache decrease-replica-count
    --replication-group-id sample-repl-group \
    --new-replica-count 1 \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache decrease-replica-count ^
    --replication-group-id sample-repl-group ^
    --new-replica-count 1 ^
    --apply-immediately
```
以下範例透過從節點群組移除兩個指定複本 (`0001` 與 `0003`)，來減少複寫群組 `sample-repl-group` 中的複本數。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache decrease-replica-count \
    --replication-group-id sample-repl-group \
    --replicas-to-remove 0001,0003 \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache decrease-replica-count ^
    --replication-group-id sample-repl-group ^
    --replicas-to-remove 0001,0003 \
    --apply-immediately
```
以下範例會使用 `--replica-configuration` 將複寫群組 `sample-repl-group` 中的複本數減少到為兩個指定節點群組指定的值。假設有多個節點群組，這是 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。當指定選用的 `PreferredAvailabilityZones` 時，所列出的可用區域數量必須等於 `NewReplicaCount` \$1 1 的值。此方法可涵蓋由 `NodeGroupId` 識別群組的主要節點。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache decrease-replica-count \
    --replication-group-id sample-repl-group \
    --replica-configuration \
        NodeGroupId=0001,NewReplicaCount=1,PreferredAvailabilityZones=us-east-1a,us-east-1c \
        NodeGroupId=0003,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache decrease-replica-count ^
    --replication-group-id sample-repl-group ^
    --replica-configuration ^
        NodeGroupId=0001,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1c ^
        NodeGroupId=0003,NewReplicaCount=3,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \
    --apply-immediately
```

如需使用 CLI 減少複本數量的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [decrease-replica-count](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html)。

## 使用 ElastiCache API
<a name="decrease-replica-count-api"></a>

若要減少 Valkey 或 Redis OSS 碎片中的複本數量，請使用 `DecreaseReplicaCount`動作搭配下列參數：
+ `ReplicationGroupId` - 必要項目。識別您希望減少複本數的複寫群組。
+ `ApplyImmediately` - 必要項目。指定是否要立即減少複本計數 (`ApplyImmediately=True`)，或是在下一次維護時間時進行 (`ApplyImmediately=False`)。目前不支援 `ApplyImmediately=False`。
+ `NewReplicaCount` - 選用。指定您希望的複本節點數量。`NewReplicaCount` 的值必須為有效值，小於節點群組中目前的數量。如需了解最低允許值，請參閱[減少碎片中的複本數量](#decrease-replica-count)。若 `--new-replica-count` 的值不符合此需求，呼叫便會失敗。
+ `ReplicasToRemove` - 選用。包含節點 ID 清單，指定要移除的複本節點。
+ `ReplicaConfiguration` - 選用。包含節點群組清單，允許您為每個節點群組分別設定複本數及可用區域。針對您要獨立設定每個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，使用此參數。

  `ReplicaConfiguraion` 有三個選用成員：
  + `NodeGroupId` - 待設定節點群組的四位數 ID。對於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，節點群組 ID 一律為 `0001`。若要尋找 Valkey 或 Redis OSS （啟用叢集模式） 節點群組的 （碎片） ID，請參閱 [尋找碎片的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` - 此作業結束後，您希望此節點群組中擁有的複本數。若已啟用多個可用區，該值必須小於目前的複本數，且其最小值為 1；若未啟用具備自動容錯移轉的多個可用區，則最小值為 0。若此值不小於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `ReplicaConfiguration` 的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須包含一個 (並且只能一個) `NewReplicaCount`、`ReplicasToRemove` 或 `ReplicaConfiguration` 參數。

**Example**  
以下範例會使用 `NewReplicaCount` 將複寫群組 `sample-repl-group` 中的複本數減少至一。範例完成時，每個節點群組中都會有一個複本。無論是具有單一節點群組的 Valkey 或 Redis OSS （停用叢集模式） 群組，還是具有多個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，此數字都適用。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=DecreaseReplicaCount
      &ApplyImmediately=True
      &NewReplicaCount=1
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```
以下範例透過從節點群組移除兩個指定複本 (`0001` 與 `0003`)，來減少複寫群組 `sample-repl-group` 中的複本數。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=DecreaseReplicaCount
      &ApplyImmediately=True
      &ReplicasToRemove.ReplicaToRemove.1=0001
      &ReplicasToRemove.ReplicaToRemove.2=0003
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```
以下範例會使用 `ReplicaConfiguration` 將複寫群組 `sample-repl-group` 中的複本數減少到為兩個指定節點群組指定的值。假設有多個節點群組，這是 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。當指定選用的 `PreferredAvailabilityZones` 時，所列出的可用區域數量必須等於 `NewReplicaCount` \$1 1 的值。此方法可涵蓋由 `NodeGroupId` 識別群組的主要節點。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=DecreaseReplicaCount
      &ApplyImmediately=True
      &ReplicaConfiguration.ConfigureShard.1.NodeGroupId=0001
      &ReplicaConfiguration.ConfigureShard.1.NewReplicaCount=1
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1c
      &ReplicaConfiguration.ConfigureShard.2.NodeGroupId=0003
      &ReplicaConfiguration.ConfigureShard.2.NewReplicaCount=2
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1b
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.4=us-east-1c
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```

如需使用 API 減少複本數量的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [DecreaseReplicaCount](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html)。

# 新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）
<a name="Replication.AddReadReplica"></a>

下列主題中的資訊僅適用於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。

隨著您的流量增加，您可能會希望將讀取擴張到更多節點，減少任何一個節點上的讀取壓力。在本主題中，您可以了解如何將僅供讀取複本新增至 Valkey 或 Redis OSS （停用叢集模式） 叢集。

Valkey 或 Redis OSS （停用叢集模式） 複寫群組最多可有五個僅供讀取複本。若您嘗試將僅供讀取複本新增到已有五個僅供讀取複本的複寫群組，操作便會失敗。

如需將複本新增至 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組的詳細資訊，請參閱下列內容：
+ [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)
+ [增加碎片中的複本數量](increase-replica-count.md)

您可以使用 ElastiCache 主控台 AWS CLI、 或 ElastiCache API，將僅供讀取複本新增至 Valkey 或 Redis OSS （停用叢集模式） 叢集。

**相關主題**
+ [將節點新增至 ElastiCache 叢集](Clusters.AddNode.md)
+ [將僅供讀取複本新增到複寫群組 (AWS CLI)](#Replication.AddReadReplica.CLI)
+ [使用 API 將僅供讀取複本新增到複寫群組](#Replication.AddReadReplica.API)

## 將僅供讀取複本新增到複寫群組 (AWS CLI)
<a name="Replication.AddReadReplica.CLI"></a>

若要將僅供讀取複本新增至 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，請使用 AWS CLI `create-cache-cluster`命令搭配 參數`--replication-group-id`來指定要新增叢集 （節點） 的複寫群組。

以下範例會建立 `my-read replica` 叢集，並將它新增到 `my-replication-group` 複寫群組。僅供讀取複本的節點類型、參數群組、安全群組、維護時間及其他設定都與 `my-replication-group` 中的其他節點相同。

若為 Linux、macOS 或 Unix：

```
aws elasticache create-cache-cluster \
      --cache-cluster-id my-read-replica \
      --replication-group-id my-replication-group
```

針對 Windows：

```
aws elasticache create-cache-cluster ^
      --cache-cluster-id my-read-replica ^
      --replication-group-id my-replication-group
```

如需使用 CLI 新增僅供讀取複本的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html)。

## 使用 API 將僅供讀取複本新增到複寫群組
<a name="Replication.AddReadReplica.API"></a>

若要將僅供讀取複本新增至 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，請使用 ElastiCache `CreateCacheCluster`操作搭配 參數`ReplicationGroupId`來指定要新增叢集 （節點） 的複寫群組。

以下範例會建立 `myReadReplica` 叢集，並將它新增到 `myReplicationGroup` 複寫群組。僅供讀取複本的節點類型、參數群組、安全群組、維護時間及其他設定都與 `myReplicationGroup` 中的其他節點相同。

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=CreateCacheCluster
      &CacheClusterId=myReadReplica
      &ReplicationGroupId=myReplicationGroup
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```

如需使用 API 新增僅供讀取複本的詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的 [CreateCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheCluster.html)。

# 刪除 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）
<a name="Replication.RemoveReadReplica"></a>

下列主題中的資訊僅適用於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。

隨著 Valkey 或 Redis OSS 複寫群組上的讀取流量變更，您可能想要新增或移除僅供讀取複本。從 複寫群組移除節點與刪除叢集相同，雖然有以下限制：
+ 您無法從複寫群組移除主要節點。若您要刪除主要節點，請執行以下作業：

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

  1. 刪除舊的主要節點。如需了解此方法的限制，請參閱下一點。
+ 若在複寫群組上啟用異地同步備份，您便無法從複寫群組移除最後一個僅供讀取複本。在此情況下，請執行下列操作：

  1. 透過停用異地同步備份來修改複寫群組 如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

  1. 刪除僅供讀取複本。

您可以使用 ElastiCache 主控台、 AWS CLI 適用於 ElastiCache 的 或 ElastiCache API，從 Valkey 或 Redis OSS （停用叢集模式） 複寫群組移除僅供讀取複本。

如需從 Valkey 或 Redis OSS 複寫群組刪除叢集的指示，請參閱下列各項：
+ [使用AWS 管理主控台](Clusters.Delete.md#Clusters.Delete.CON)
+ [使用AWS CLI刪除 ElastiCache 叢集](Clusters.Delete.md#Clusters.Delete.CLI)
+ [使用 ElastiCache API](Clusters.Delete.md#Clusters.Delete.API)
+ [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)
+ [減少碎片中的複本數量](decrease-replica-count.md)

# 針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本
<a name="Replication.PromoteReplica"></a>

下列主題中的資訊僅適用於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組。

您可以使用 AWS CLI、 或 ElastiCache API AWS 管理主控台，將 Valkey 或 Redis OSS （停用叢集模式） 僅供讀取複本提升為主要複本。您無法在 複寫群組上啟用具備自動容錯移轉的異地同步備份時，將僅供讀取複本提升為主要節點。若要將啟用異地同步備份的複寫群組上的 Valkey 或 Redis OSS （停用叢集模式） 複本提升為主要複本，請執行下列動作：

1. 修改複寫群組以停用異地同步備份 (您所有的叢集不需要位於相同可用區域，也能執行此作業)。如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

1. 將僅供讀取複本提升為主要節點。

1. 修改複寫群組來重新啟用異地同步備份。

多個可用區不適用於執行 Redis OSS 2.6.13 或更早版本的複寫群組。

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

以下程序會使用主控台將複本節點提升為主要節點。

**將僅供讀取複本提升為主節點 (主控台)**

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

1. 如果您想要提升的複本是啟用異地同步備份的 Valkey 或 Redis OSS （停用叢集模式） 複寫群組的成員，請在繼續之前修改複寫群組以停用異地同步備份。如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

1. 選擇 **Valkey** 或 **Redis OSS**，然後從叢集清單中選擇您要修改的複寫群組。此複寫群組必須執行「Redis」引擎而非「Clustered Redis」引擎，並且必須至少擁有兩個以上的節點。

1. 從節點清單中，選擇您希望提升為主要節點的複本節點，然後針對 **Actions (動作)**，選擇 **Promote (提升)**。

1. 在 **Promote Read Replica (提升僅供讀取複本)** 對話方塊中，執行下列作業：

   1. 針對**立即套用**，選擇 **Yes (是)** 來立即提升僅供讀取複本，或是 **No (否)** 來在下一次叢集的維修時間內提升。

   1. 選擇 **Promote (提升)** 以提升僅供讀取複本，或選擇 **Cancel (取消)** 以取消操作。

1. 若在您開始提升程序前該叢集已啟用異地同步備份，請等到複寫群組的狀態成為 **available (可用)** 時再修改叢集以重新啟用異地同步備份。如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

## 使用 AWS CLI
<a name="Replication.PromoteReplica.CLI"></a>

若複寫群組已啟用異地同步備份，您便無法將僅供讀取複本提升為主要節點。在某些情況下，您要提升的複本可能是已啟用異地同步備份的複寫群組的成員。在這些情況下，您必須先修改複寫群組來停用異地同步備份，之後才能繼續。您所有的叢集不需要位於相同可用區域，也能執行此作業。如需修改複寫群組的詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

下列 AWS CLI 命令會修改複寫群組 `sample-repl-group`，使僅供讀取複本`my-replica-1`成為複寫群組中的主要複本。

若為 Linux、macOS 或 Unix：

```
aws elasticache modify-replication-group \
   --replication-group-id sample-repl-group \
   --primary-cluster-id my-replica-1
```

針對 Windows：

```
aws elasticache modify-replication-group ^
   --replication-group-id sample-repl-group ^
   --primary-cluster-id my-replica-1
```

如需修改複寫群組的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)。

## 使用 ElastiCache API
<a name="Replication.PromoteReplica.API"></a>

若複寫群組已啟用異地同步備份，您便無法將僅供讀取複本提升為主要節點。在某些情況下，您要提升的複本可能是已啟用異地同步備份的複寫群組的成員。在這些情況下，您必須先修改複寫群組來停用異地同步備份，之後才能繼續。您所有的叢集不需要位於相同可用區域，也能執行此作業。如需修改複寫群組的詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

以下 ElastiCache API 動作會修改 `myReplGroup` 複寫群組，使僅供讀取複本 `myReplica-1` 成為複寫群組中的主節點。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ModifyReplicationGroup
   &ReplicationGroupId=myReplGroup
   &PrimaryClusterId=myReplica-1  
   &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>
```

如需修改複寫群組的詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)。