本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以使用 ElastiCache 控制台、或 API 创建 Valkey 或 Redis OSS(已启用集群模式)集群(API/CLI:复制组)。 AWS CLI ElastiCache 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 范围太小,或者子网被其他集群共享和大量使用。有关更多信息,请参阅 创建子网组。
对于低于 5.0.6 的版本,每个集群的限制为 250。
若要请求提高限制,请参阅 AWS Service Limits 并选择限制类型 Nodes per cluster per instance type(每个实例类型的每个集群的节点数)。
在 Valkey 或 Redis OSS(已启用集群模式)中创建集群
创建 Valkey 或 Redis OSS(已启用集群模式)集群(控制台)
要创建 Valkey 或 Redis OSS(已启用集群模式)集群,请参阅创建 Valkey 或 Redis OSS(已启用集群模式)集群(控制台)。请确保启用集群模式 Cluster Mode enabled (Scale Out)(启用集群模式(横向扩展)),并在每个模式中指定至少两个分片和一个副本节点。
从头开始创建 Valkey 或 Redis OSS(已启用集群模式)复制组(AWS CLI)
以下过程为使用 AWS CLI创建 Valkey 或 Redis OSS(已启用集群模式)复制组。
当您从头开始创建 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 实例类型
。 - --data-tiering-enabled
如果您使用的是 r6gd 节点类型,请设置此参数。如果您不想使用数据分层功能,则设置
--no-data-tiering-enabled
。有关更多信息,请参阅 数据分层 ElastiCache。- --cache-parameter-group
指定
default.redis6.x.cluster.on
参数组或者派生自default.redis6.x.cluster.on
的参数组以创建 Valkey 或 Redis OSS(已启用集群模式)复制组。有关更多信息,请参阅 Redis OSS 6.x 参数更改。- --engine
redis
- --engine-version
3.2.4
- --num-node-groups
此复制组中的节点组数量。有效值为 1 到 500。
注意
每个集群的节点/分片限制最高可提高到 500。若要请求提高限制,请参阅 AWS Service Limits 并选择限制类型“Nodes per cluster per instance type(每个实例类型的每个集群的节点数)”。
- --replicas-per-node-group
各节点组中的副本节点数量。有效值为 0 到 5。
- --network-type
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
包含三个节点组/分片 (--) 的 Valkey 或 Redis OSS(已启用集群模式)复制组,每个节点组/分片有三个节点,一个主节点和两个只读副本 (--num-node-groups)。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-groups3
\ --replicas-per-node-group2
\ --cache-node-typecache.m4.large
\ --engineredis
\ --security-group-idsSECURITY_GROUP_ID
\ --cache-subnet-group-nameSUBNET_GROUP_NAME>
对于 Windows:
aws elasticache create-replication-group ^ --replication-group-id
sample-repl-group
^ --replication-group-description"Demo cluster with replicas"
^ --num-node-groups3
^ --replicas-per-node-group2
^ --cache-node-typecache.m4.large
^ --engineredis
^ --security-group-idsSECURITY_GROUP_ID
^ --cache-subnet-group-nameSUBNET_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
– 指定节点组的键空间的字符串。字符串的格式为startKey-endKey
。如果省略此参数,则在节点组之间平均 ElastiCache 分配密钥。示例: "0-4999"
-
以下操作创建具有两个节点组/分片(--num-node-groups
)的 Valkey 或 Redis OSS(已启用集群模式)复制组 new-group
。与前例不同,各节点组配置为彼此不同 (--node-group-configuration
)。
对于 Linux、macOS 或 Unix:
aws elasticache create-replication-group \ --replication-group-id
new-group
\ --replication-group-description "Sharded replication group
" \ --engineredis
\ --snapshot-retention-limit8
\ --cache-node-typecache.m4.medium
\ --num-node-groups2
\ --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
" ^ --engineredis
^ --snapshot-retention-limit8
^ --cache-node-typecache.m4.medium
^ --num-node-groups2
^ --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.
在 Valkey 或 Redis OSS(已启用集群模式)中从头开始创建复制组 (ElastiCache API)
以下过程使用 API 创建 Valkey 或 Redis OSS(已启用集群模式)复制组。 ElastiCache
当您从头开始创建 Valkey 或 Redis OSS(已启用集群模式)复制组时,只需调用 ElastiCache API CreateReplicationGroup
操作即可创建复制组及其所有节点。包括以下参数。
- ReplicationGroupId
正在创建的复制组的名称。
Valkey 或 Redis OSS(已启用集群模式)复制组命名约束如下:
必须包含 1 – 40 个字母数字字符或连字符。
必须以字母开头。
不能包含两个连续连字符。
不能以连字符结束。
- ReplicationGroupDescription
复制组的描述。
- NumNodeGroups
您希望对此复制组创建的节点组数量。有效值为 1 到 500。
- ReplicasPerNodeGroup
各节点组中的副本节点数量。有效值为 0 到 5。
- NodeGroupConfiguration
各节点组的配置。
NodeGroupConfiguration
参数包括以下字段。-
PrimaryAvailabilityZone
– 此节点组的主节点所在的可用区。如果省略此参数,则为主节点 ElastiCache 选择可用区。示例: us-west-2a。
-
ReplicaAvailabilityZones
– 只读副本所在可用区的列表。此列表中的可用区数量必须与ReplicaCount
的值匹配。如果省略此参数,则为副本节点 ElastiCache 选择可用区。 -
ReplicaCount
– 此节点组中的副本节点数量。 -
Slots
– 指定节点组的键空间的字符串。字符串的格式为startKey-endKey
。如果省略此参数,则在节点组之间平均 ElastiCache 分配密钥。示例: "0-4999"
-
- CacheNodeType
复制组中的每个节点的节点类型。
ElastiCache 支持以下节点类型。一般而言,与其上一代类型对应项相比,最新一代类型以更低的成本提供了更多内存和计算能力。
有关每种节点类型的性能细节的更多信息,请参阅 Amazon EC2 实例类型
。 - --data-tiering-enabled
如果您使用的是 r6gd 节点类型,请设置此参数。如果您不想使用数据分层功能,则设置
--no-data-tiering-enabled
。有关更多信息,请参阅 数据分层 ElastiCache。- CacheParameterGroup
指定
default.redis6.x.cluster.on
参数组或者派生自default.redis6.x.cluster.on
的参数组以创建 Valkey 或 Redis OSS(已启用集群模式)复制组。有关更多信息,请参阅 Redis OSS 6.x 参数更改。- --network-type
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.