

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

# 建立 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)。