减少分区中的副本数量 - 亚马逊 ElastiCache

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

减少分区中的副本数量

您可以减少 Valkey 或 Redis 分片中的副本数量(已启用集群模式),也可以减少 Valkey 或 RedisOSS(已禁用集群模式)的复制组中的副本数量:OSS

  • 对于 Valkey 或 RedisOSS(已禁用集群模式),如果启用了多可用区,则可以将副本数量减少到一个;如果未启用多可用区,则可以将副本数量减少到零。

  • 对于 Valkey 或 RedisOSS(已启用集群模式),您可以将副本数量减少到零。但是,如果您的主节点发生故障,则无法故障转移到副本。

您可以使用 AWS Management Console、 AWS CLI 或 ElastiCache API来减少节点组(分片)或复制组中的副本数量。

使用 AWS Management Console

以下过程使用控制台减少 Valkey 或 RedisOSS(已启用集群模式)复制组中的副本数量。

减少 Valkey 或 Redis 分片中的副本数量 OSS
  1. 登录 AWS Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/

  2. 在导航窗格中,选择 ValkeyRedis OSS,然后选择要从中删除副本的复制组的名称。

  3. 选中要从其中删除副本的每个分片对应的框。

  4. 选择 Delete replicas (删除副本)

  5. 完成 Delete Replicas from Shards (从分片中删除副本) 页面:

    1. 对于 New number of replicas/shard (新副本/分片数量),输入您希望选定的分片应具有的副本数量。此数字必须大于或等于 1。我们建议每个分片使用至少两个副本作为有效的最小值。

    2. 选择 Delete (删除) 以删除副本,或选择 Cancel (取消) 以取消该操作。

重要
  • 如果您未指定要删除的副本节点, ElastiCache (RedisOSS) 会自动选择要删除的副本节点。在这样做的同时, ElastiCache (RedisOSS) 会尝试为您的复制组保留多可用区架构,然后保留与主副本的复制延迟最小的副本。

  • 无法删除复制组中的主节点。如果指定主节点进行删除,此操作会失败并显示指示已选中主节点进行删除的错误事件。

使用 AWS CLI

要减少 Valkey 或 Redis OSS 分片中的副本数量,请使用带有decrease-replica-count以下参数的命令:

  • --replication-group-id – 必需。确定要在其中减少副本数量的复制组。

  • --apply-immediately--no-apply-immediately – 必需。指定是立即减少副本数量 (--apply-immediately) 还是在下一维护时段减少副本数量 (--no-apply-immediately)。当前不支持 --no-apply-immediately

  • --new-replica-count – 可选。指定希望的副本节点数。--new-replica-count 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值,请参阅减少分区中的副本数量。如果 --new-replica-count 的值不满足此要求,则调用失败。

  • --replicas-to-remove – 可选。包含IDs指定要移除的副本节点的节点列表。

  • --replica-configuration – 可选。允许您单独地为每个节点组设置副本和可用区的数量。对于要独立配置每个节点组的 Valkey 或 RedisOSS(已启用集群模式)组,请使用此参数。

    --replica-configuration 具有三位可选成员:

    • NodeGroupId – 您要配置的节点组的四位数 ID。对于 Valkey 或 RedisOSS(已禁用集群模式)复制组,分片 ID 始终为。0001要查找 Valkey 或 RedisOSS(已启用集群模式)节点组(分片)的 ID,请参阅。查找分区的 ID

    • NewReplicaCount – 指定希望的副本节点数的可选参数。NewReplicaCount 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值,请参阅减少分区中的副本数量。如果 NewReplicaCount 的值不满足此要求,则调用失败。

    • PreferredAvailabilityZonesPreferredAvailabilityZone 字符串的列表,指定复制组的节点所在的可用区。PreferredAvailabilityZone 值的数字必须等于 NewReplicaCount 的值再加上 1 以形成主节点。如果省略--replica-configuration该成员, ElastiCache (RedisOSS) 将为每个新副本选择可用区。

重要

您必须包含且只能包含 --new-replica-count--replicas-to-remove--replica-configuration 参数之一。

以下示例使用 --new-replica-count 将复制组 sample-repl-group 中的副本数量减少为 1 个。在完成此示例后,每个节点组中将有一个副本。无论是具有单节点组的 Valkey 或 RedisOSS(已禁用集群模式)组,还是具有多个节点组的 Valkey 或 RedisOSS(已启用集群模式)组,此数字都适用。

对于 Linux、macOS 或 Unix:

aws elasticache decrease-replica-count --replication-group-id sample-repl-group \ --new-replica-count 1 \ --apply-immediately

对于 Windows:

aws elasticache decrease-replica-count ^ --replication-group-id sample-repl-group ^ --new-replica-count 1 ^ --apply-immediately

以下示例通过从节点组中删除两个指定的副本(00010003)来减少复制 sample-repl-group 中的副本数量。

对于 Linux、macOS 或 Unix:

aws elasticache decrease-replica-count \ --replication-group-id sample-repl-group \ --replicas-to-remove 0001,0003 \ --apply-immediately

对于 Windows:

aws elasticache decrease-replica-count ^ --replication-group-id sample-repl-group ^ --replicas-to-remove 0001,0003 \ --apply-immediately

以下示例使用 --replica-configuration 将复制组 sample-repl-group 中的副本数量减少为两个指定节点组指定的值。假设有多个节点组,则这是一个 Valkey 或 RedisOSS(已启用集群模式)复制组。指定可选 PreferredAvailabilityZones 时,所列可用区的数量必须等于 NewReplicaCount 的值再加上 1。此方法适用于由 NodeGroupId 标识的组的主节点。

对于 Linux、macOS 或 Unix:

aws elasticache decrease-replica-count \ --replication-group-id sample-repl-group \ --replica-configuration \ NodeGroupId=0001,NewReplicaCount=1,PreferredAvailabilityZones=us-east-1a,us-east-1c \ NodeGroupId=0003,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \ --apply-immediately

对于 Windows:

aws elasticache decrease-replica-count ^ --replication-group-id sample-repl-group ^ --replica-configuration ^ NodeGroupId=0001,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1c ^ NodeGroupId=0003,NewReplicaCount=3,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \ --apply-immediately

有关使用减少副本数量的更多信息CLI,请参阅《Amazon ElastiCache 命令行参考decrease-replica-count中的。

使用 ElastiCache API

要减少 Valkey 或 Redis OSS 分片中的副本数量,请使用带有以下参数的DecreaseReplicaCount操作:

  • ReplicationGroupId – 必需。确定要在其中减少副本数量的复制组。

  • ApplyImmediately – 必需。指定是立即减少副本数量 (ApplyImmediately=True) 还是在下一维护时段减少副本数量 (ApplyImmediately=False)。当前不支持 ApplyImmediately=False

  • NewReplicaCount – 可选。指定希望的副本节点数。NewReplicaCount 的值必须为小于节点组中的当前副本数量的有效值。有关允许的最小值,请参阅减少分区中的副本数量。如果 --new-replica-count 的值不满足此要求,则调用失败。

  • ReplicasToRemove – 可选。包含IDs指定要移除的副本节点的节点列表。

  • ReplicaConfiguration – 可选。包含节点组列表,这些节点组允许您单独地为每个节点组设置副本和可用区的数量。对于要独立配置每个节点组的 Valkey 或 RedisOSS(已启用集群模式)组,请使用此参数。

    ReplicaConfiguraion 具有三位可选成员:

    • NodeGroupId – 您要配置的节点组的四位数 ID。对于 Valkey 或 RedisOSS(已禁用集群模式)复制组,节点组 ID 始终为。0001要查找 Valkey 或 RedisOSS(已启用集群模式)节点组(分片)的 ID,请参阅。查找分区的 ID

    • NewReplicaCount – 您希望在此操作结束时此节点组中所具有的副本数量。如果启用了多可用区,则此值必须小于当前副本数量(最少为 1 个);如果未启用具有自动故障转移功能的多可用区,则此值为 0。如果此值大于或等于节点组中的当前副本数量,则调用失败并返回异常。

    • PreferredAvailabilityZonesPreferredAvailabilityZone 字符串的列表,指定复制组的节点所在的可用区。PreferredAvailabilityZone 值的数字必须等于 NewReplicaCount 的值再加上 1 以形成主节点。如果省略ReplicaConfiguration该成员, ElastiCache (RedisOSS) 将为每个新副本选择可用区。

重要

您必须包含且只能包含 NewReplicaCountReplicasToRemoveReplicaConfiguration 参数之一。

以下示例使用 NewReplicaCount 将复制组 sample-repl-group 中的副本数量减少为 1 个。在完成此示例后,每个节点组中将有一个副本。无论是具有单节点组的 Valkey 或 RedisOSS(已禁用集群模式)组,还是具有多个节点组的 Valkey 或 RedisOSS(已启用集群模式)组,此数字都适用。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DecreaseReplicaCount &ApplyImmediately=True &NewReplicaCount=1 &ReplicationGroupId=sample-repl-group &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

以下示例通过从节点组中删除两个指定的副本(00010003)来减少复制 sample-repl-group 中的副本数量。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DecreaseReplicaCount &ApplyImmediately=True &ReplicasToRemove.ReplicaToRemove.1=0001 &ReplicasToRemove.ReplicaToRemove.2=0003 &ReplicationGroupId=sample-repl-group &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

以下示例使用 ReplicaConfiguration 将复制组 sample-repl-group 中的副本数量减少为两个指定节点组指定的值。假设有多个节点组,则这是一个 Valkey 或 RedisOSS(已启用集群模式)复制组。指定可选 PreferredAvailabilityZones 时,所列可用区的数量必须等于 NewReplicaCount 的值再加上 1。此方法适用于由 NodeGroupId 标识的组的主节点。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DecreaseReplicaCount &ApplyImmediately=True &ReplicaConfiguration.ConfigureShard.1.NodeGroupId=0001 &ReplicaConfiguration.ConfigureShard.1.NewReplicaCount=1 &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1c &ReplicaConfiguration.ConfigureShard.2.NodeGroupId=0003 &ReplicaConfiguration.ConfigureShard.2.NewReplicaCount=2 &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1b &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.4=us-east-1c &ReplicationGroupId=sample-repl-group &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

有关使用减少副本数量的更多信息API,请参阅 Amazon ElastiCache API 参考DecreaseReplicaCount中的。