用于 Redis 的 Amazon ElastiCache
ElastiCache for Redis 用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用可用 Redis (已禁用集群模式)集群创建复制组

可用的集群是现有的单节点 Redis 集群。当前,Redis (已启用集群模式)不支持使用可用的单节点集群创建具有副本的集群。如果您要创建 Redis (已启用集群模式)集群,请参阅创建 Redis (已启用集群模式) 集群 (控制台)

下面的流程只能在您拥有 Redis (已禁用集群模式)单节点集群时使用。该集群的节点将成为新集群中的主节点。如果您没有可用作新集群的主集群的 Redis (已禁用集群模式)集群,请参阅从头创建 Redis 复制组

通过可用 Redis 集群创建复制组(控制台)

请参阅主题使用 AWS 管理控制台

使用可用 Redis 缓存集群创建复制组 (AWS CLI)

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

使用 AWS CLI 时,您会创建一个复制组,它使用 CLI 命令 create-replication-group 指定可用的独立节点作为集群的主节点 --primary-cluster-id,还指定您希望集群中包含的节点数。包括以下参数。

--replication-group-id

正在创建的复制组的名称。此参数的值用作所添加节点的名称的基础,方法是向 --replication-group-id 末尾添加一个连续的 3 位数。例如:sample-repl-group-001

Redis (已禁用集群模式) 复制组命名约束

  • 必须包含 1 到 20 个字母数字字符或连字符。

  • 必须以字母开头。

  • 不能包含两个连续的连字符。

  • 不能以连字符结尾。

--replication-group-description

复制组的描述.

--num-cache-clusters

您希望此集群中包含的节点数。此值包含主节点。此参数的最大值为 six。

--primary-cluster-id

要用作此复制组中的主节点的可用 Redis (已禁用集群模式)集群的节点的名称。

如果要在复制组上启用传输中加密或静态加密,请添加 --trasit-encryption-enabled 和/或 --at-rest-encryption-enabled 参数并满足以下条件。

  • 您的集群必须运行 Redis 版本 3.2.6 或 4.0.10.

  • 复制组必须在 Amazon VPC 中创建。

  • 还必须包含参数 --cache-subnet-group

  • 还必须提供 --auth-token 参数以及客户为对此集群执行操作所需的 AUTH 令牌指定的字符串值 (密码)。

以下命令通过将可用 Redis (已禁用集群模式) 集群 redis01 用作复制组的主节点来创建复制组 sample-repl-group。它将创建 2 个为只读副本的新节点。redis01 的设置(即参数组、安全组、节点类型、引擎版本等)将应用于复制组中的所有节点。

对于 Linux, OS X, or 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

接下来,向复制组添加只读副本

创建复制组后,使用 create-cache-cluster 命令向复制组添加 1 到 5 个只读副本,并确保包含以下参数。

--cache-cluster-id

正在向复制组添加的集群的名称。

群集命名约束

  • 必须包含 1 到 20 个字母数字字符或连字符。

  • 必须以字母开头。

  • 不能包含两个连续的连字符。

  • 不能以连字符结尾。

--replication-group-id

正在将此缓存集群添加到的复制组的名称。

对要添加到复制组的每个只读副本重复此命令,并仅更改 --cache-cluster-id 参数的值。

注意

请记住,一个复制组最多只能有五个只读副本。尝试向已有五个只读副本的复制组添加只读副本会导致操作失败。

以下代码将只读副本 my-replica01 添加到复制组 sample-repl-group。主集群的设置(参数组、安全组、节点类型等)将在节点被添加到复制组时应用于节点。

对于 Linux, OS X, or 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", "PendingModifiedValues": {} } }

有关其他信息,请参阅 AWS CLI 主题:

向独立 Redis (已禁用集群模式)集群添加副本 (ElastiCache API)

使用 ElastiCache API 时,您会创建一个复制组,它使用 CLI 命令 CreateReplicationGroup 指定可用的独立节点作为集群的主节点 PrimaryClusterId,还指定您希望集群中包含的节点数。包括以下参数。

ReplicationGroupId

正在创建的复制组的名称。此参数的值用作所添加节点的名称的基础,方法是向 ReplicationGroupId 末尾添加一个连续的 3 位数。例如:sample-repl-group-001

Redis (已禁用集群模式) 复制组命名约束

  • 必须包含 1 到 20 个字母数字字符或连字符。

  • 必须以字母开头。

  • 不能包含两个连续的连字符。

  • 不能以连字符结尾。

ReplicationGroupDescription

有副本的集群的描述。

NumCacheClusters

您希望此集群中包含的节点数。此值包含主节点。此参数的最大值为 six。

PrimaryClusterId

要用作此集群中的主节点的可用 Redis (已禁用集群模式)集群的名称。

如果要在复制组上启用传输中加密或静态加密,请添加 TransitEncryptionEnabled=true 和/或 AtRestEncryptionEnabled=true 参数并满足以下条件。

  • 您的集群必须运行 Redis 版本 3.2.6、4.0.10 或更高版本。

  • 复制组必须在 Amazon VPC 中创建。

  • 还必须包含参数 CacheSubnetGroup

  • 还必须提供 AuthToken 参数以及客户为对此集群执行操作所需的 AUTH 令牌指定的字符串值 (密码)。

以下命令通过将可用 Redis (已禁用集群模式)集群 redis01 用作复制组的主节点来创建有副本的集群 sample-repl-group。它将创建 2 个为只读副本的新节点。redis01 的设置(即参数组、安全组、节点类型、引擎版本等)将应用于复制组中的所有节点。

https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &Engine=redis &EngineVersion=3.2.4 &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 主题:

接下来,向复制组添加只读副本

创建复制组后,使用 CreateCacheCluster 操作向复制组添加 1 到 5 个只读副本,并确保包含以下参数。

缓存集群 ID

正在向复制组添加的集群的名称。

群集命名约束

  • 必须包含 1 到 20 个字母数字字符或连字符。

  • 必须以字母开头。

  • 不能包含两个连续的连字符。

  • 不能以连字符结尾。

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=AWS4-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