

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用现有集群创建复制组
<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>

使用AWS CLI时，在将可用 Valkey 或 Redis OSS 缓存集群用作主集群时，可使用只读副本通过两个步骤创建复制组。

使用时，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（已禁用集群模式）集群的节点的名称。

以下命令通过将可用 Valkey 或 Redis OSS（已禁用集群模式）集群 `redis01` 用作复制组的主节点来创建复制组 `sample-repl-group`。它将创建 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` 命令向复制组添加 1 到 5 个只读副本，并确保包含以下参数。

**--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（已禁用集群模式）集群添加副本 (API) ElastiCache
<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（已禁用集群模式）集群的名称。

以下命令通过将可用 Valkey 或 Redis OSS（已禁用集群模式）集群 `redis01` 用作复制组的主节点来创建具有副本的集群 `sample-repl-group`。它将创建 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` 操作向复制组添加 1 到 5 个只读副本，并确保包含以下参数。

**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)。