从 Valkey 或 RedisOSS(已启用集群模式)中从头开始创建复制组 - 亚马逊 ElastiCache

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

从 Valkey 或 RedisOSS(已启用集群模式)中从头开始创建复制组

您可以使用 ElastiCache 控制台、或创建 Valkey 或 RedisOSS(已启用集群模式)集群(API/CLI: 复制组)。 AWS CLI ElastiCache APIValkey 或 RedisOSS(已启用集群模式)复制组有 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 或 RedisOSS(已启用集群模式)集群(控制台)

要创建 Valkey 或 RedisOSS(已启用集群模式)集群,请参阅。创建 Valkey 或 RedisOSS(已启用集群模式)集群(控制台)请确保启用集群模式 Cluster Mode enabled (Scale Out)(启用集群模式(横向扩展)),并在每个模式中指定至少两个分片和一个副本节点。

从头开始创建 Valkey 或 RedisOSS(已启用集群模式)复制组 ()AWS CLI

以下过程使用创建 Valkey 或 RedisOSS(已启用集群模式)复制组。 AWS CLI

当您从头开始创建 Valkey 或 RedisOSS(已启用集群模式)复制组时,只需调用一次命令即可创建复制组及其所有节点。 AWS CLI create-replication-group包括以下参数。

--replication-group-id

正在创建的复制组的名称。

Valkey 或 RedisOSS(已启用集群模式)复制组命名限制如下:

  • 必须包含 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 或 RedisOSS(已启用集群模式)复制组。有关更多信息,请参阅 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

ipv4ipvdual-stack。如果选择双堆栈,则必须将 --IpDiscovery 参数设置为 ipv4ipv6

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

  • 您的复制组必须运行 Redis OSS 版本 3.2.6 或 4.0.10。

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

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

  • 您还必须为对此复制组执行操作所需的AUTH令牌(密码)包含客户指定的字符串值的参数--auth-token

以下操作创建sample-repl-group包含三个节点组/分片 OSS (--) 的 Valkey 或 Redis(已启用集群模式)复制组,每个节点组/分片有三个节点,一个主节点和两个只读副本 (--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-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 或 RedisOSS(已启用集群模式)复制组时,您可以使用配置两个节点组(控制台:分片)的--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"

     

以下操作创建new-group具有两个节点组/分片 OSS () 的 Valkey 或 Redis(已启用集群模式)复制组。--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.

从 Valkey 或 RedisOSS(已启用集群模式)中从头开始创建复制组 () ElastiCache API

以下过程使用创建 Valkey 或 RedisOSS(已启用集群模式)复制组。 ElastiCache API

当您从头开始创建 Valkey 或 RedisOSS(已启用集群模式)复制组时,只需调用一次操作即可创建复制组及其所有节点。 ElastiCache API CreateReplicationGroup包括以下参数。

ReplicationGroupId

正在创建的复制组的名称。

Valkey 或 RedisOSS(已启用集群模式)复制组命名限制如下:

  • 必须包含 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 或 RedisOSS(已启用集群模式)复制组。有关更多信息,请参阅 Redis OSS 6.x 参数发生了变化

--network-type

ipv4ipvdual-stack。如果选择双堆栈,则必须将 --IpDiscovery 参数设置为 ipv4ipv6

引擎

redis

EngineVersion

6.0

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

  • 您的复制组必须运行 Redis OSS 版本 3.2.6 或 4.0.10。

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

  • 还必须包含参数 CacheSubnetGroup

  • 您还必须为对此复制组执行操作所需的AUTH令牌(密码)包含客户指定的字符串值的参数AuthToken

添加换行符以便于阅读。

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.