从集群中移除节点 - ElastiCache 适用于 Redis 的 Amazon
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

从集群中移除节点

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 ElastiCache API 从集群中删除节点。

从集群中移除节点(控制台)
  1. 登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台 (https://console.aws.amazon.com/elasticache/)。

  2. 从右上角的列表中,选择要从中删除节点的集群所在的 Amazon 区域。

  3. 在导航窗格中,选择在您要删除节点的集群上运行的引擎。

    此时会显示运行所选引擎的集群的列表。

  4. 从集群列表中,选择要从中删除节点的集群的名称。

    此时会显示集群节点的列表。

  5. 选择要删除的节点的节点 ID 左侧的复选框。使用 ElastiCache 控制台时,一次只能删除一个节点,因此选择多个节点表明您无法使用 Delete node(删除节点)按钮。

    此时将显示删除节点页面。

  6. 要删除节点,请完成删除节点页面,然后选择删除节点。要保留节点,请选择取消

    重要

    如果删除节点导致集群不再符合多可用区标准,请确保首先清除多可用区复选框,然后删除该节点。如果清除多可用区复选框,则可以选择启用自动故障转移

新添加和删除请求对待处理请求的影响
场景 待处理的操作 新建请求 结果

方案 1

删除

删除

新的删除请求(待处理或立即)将替换待处理的删除请求。

例如,如果节点 0001、0003 和 0007 处于等待删除状态,同时发出了删除节点 0002 和 0004 的新请求,则只删除节点 0002 和 0004。节点 0001、0003 和 0007 不会被删除。

方案 2

删除

创建

新的创建请求(待处理或立即)将替换待处理的删除请求。

例如,如果节点 0001、0003 和 0007 处于等待删除状态,同时发出了创建节点的新请求,则会创建一个新节点,节点 0001、0003 和 0007 不会被删除。

方案三

创建

删除

新的删除请求(待处理或立即)将替换待处理的创建请求。

例如,如果存在创建两个节点的待处理请求,同时发出了删除节点 0003 的新请求,则不会创建新节点,节点 0003 会被删除。

方案 4

创建

创建

新创建请求将添加到待处理创建请求中。

例如,如果存在创建两个节点的待处理请求,同时发出了创建三个节点的新请求,则新请求将添加到待处理请求中,并将创建五个节点。

重要

如果新创建请求设置为 Apply Immediately - Yes(立即应用 – 是),则立即执行所有创建请求。如果新创建请求设置为 Apply Immediately - No(立即应用 – 否),则所有创建请求为待处理。

要确定哪些操作处于待处理状态,请选择 Description(描述)选项卡,然后查看显示了多少待处理的创建或删除操作。您不能同时拥有待处理的创建操作和待处理的删除操作。

  1. 确定要删除的节点的 ID。有关更多信息,请参阅查看集群的详细信息

  2. decrease-replica-count CLI 操作与要删除的节点列表一起使用,如下例所示。

    要使用命令行界面从集群中移除节点,请结合以下参数使用命令 decrease-replica-count

    • --replication-group-id 要从其中删除节点的复制组的 ID。

    • --new-replica-count --new-replica-count 参数指定应用修改后此集群中应有的节点的数量。

    • --replicas-to-remove 要从此集群中删除的节点 ID 的列表。

    • --apply-immediately--no-apply-immediately 指定是立即移除这些节点还是在下一维护时段移除这些节点。

    • --region 指定要从其中删除节点的集群的 Amazon 区域。

    注意

    您只能在调用此操作时传递 --replicas-to-remove 或者 --new-replica-count 参数。

    对于 Linux、macOS 或 Unix:

    aws elasticache decrease-replica-count \ --replication-group-id my-replication-group \ --new-replica-count 2 \ --region us-east-2 \ --apply-immediately

    对于 Windows:

    aws elasticache decrease-replica-count ^ --replication-group-id my-replication-group ^ --new-replica-count 3 ^ --region us-east-2 ^ --apply-immediately

    此操作将生成类似于以下内容的输出(JSON 格式):

    { "ReplicationGroup": { "ReplicationGroupId": "node-test", "Description": "node-test" }, "Status": "modifying", "PendingModifiedValues": {}, "MemberClusters": [ "node-test-001", "node-test-002", "node-test-003", "node-test-004", "node-test-005", "node-test-006" ], "NodeGroups": [ { "NodeGroupId": "0001", "Status": "modifying", "PrimaryEndpoint": { "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "ReaderEndpoint": { "Address": "node-test-ro.zzzzzz.ng.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "NodeGroupMembers": [ { "CacheClusterId": "node-test-001", "CacheNodeId": "0001", "ReadEndpoint": { "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "PreferredAvailabilityZone": "us-west-2a", "CurrentRole": "primary" }, { "CacheClusterId": "node-test-002", "CacheNodeId": "0001", "ReadEndpoint": { "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "PreferredAvailabilityZone": "us-west-2c", "CurrentRole": "replica" }, { "CacheClusterId": "node-test-003", "CacheNodeId": "0001", "ReadEndpoint": { "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "PreferredAvailabilityZone": "us-west-2b", "CurrentRole": "replica" }, { "CacheClusterId": "node-test-004", "CacheNodeId": "0001", "ReadEndpoint": { "Address": "node-test-004.zzzzzz.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "PreferredAvailabilityZone": "us-west-2c", "CurrentRole": "replica" }, { "CacheClusterId": "node-test-005", "CacheNodeId": "0001", "ReadEndpoint": { "Address": "node-test-005.zzzzzz.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "PreferredAvailabilityZone": "us-west-2b", "CurrentRole": "replica" }, { "CacheClusterId": "node-test-006", "CacheNodeId": "0001", "ReadEndpoint": { "Address": "node-test-006.zzzzzz.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "PreferredAvailabilityZone": "us-west-2b", "CurrentRole": "replica" } ] } ], "SnapshottingClusterId": "node-test-002", "AutomaticFailover": "enabled", "MultiAZ": "enabled", "SnapshotRetentionLimit": 1, "SnapshotWindow": "07:30-08:30", "ClusterEnabled": false, "CacheNodeType": "cache.r5.large", "DataTiering": "disabled", "TransitEncryptionEnabled": false, "AtRestEncryptionEnabled": false, "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test" } }

或者,您也可以调用 decrease-replica-count,而不必传递 --new-replica-count 参数,您可以传递 --replicas-to-remove 参数,如下所示:

对于 Linux、macOS 或 Unix:

aws elasticache decrease-replica-count \ --replication-group-id my-replication-group \ --replicas-to-remove node-test-003 \ --region us-east-2 \ --apply-immediately

对于 Windows:

aws elasticache decrease-replica-count ^ --replication-group-id my-replication-group ^ --replicas-to-remove node-test-003 ^ --region us-east-2 ^ --apply-immediately

有关更多信息,请参阅 Amazon CLI 主题 decrease-replica-count

要使用 ElastiCache API 删除节点,请使用复制组 ID 和要删除节点的列表调用 DecreaseReplicaCount API 操作,如下所示:

  • ReplicationGroupId 要从其中删除节点的复制组的 ID。

  • ReplicasToRemove ReplicasToRemove 参数指定应用修改后此集群中应有的节点的数量。

  • ApplyImmediately 指定是立即移除这些节点还是在下一维护时段移除这些节点。

  • Region 指定要从其中删除节点的集群的 Amazon 区域。

以下示例从集群 my-cluster 中立即删除节点 0004 和 0005。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DecreaseReplicaCount &ReplicationGroupId=my-replication-group &ApplyImmediately=true &ReplicasToRemove=node-test-003 &Region us-east-2 &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

有关更多信息,请参阅 ElastiCache API 主题 DecreaseReplicaCount