Amazon ElastiCache
用户指南 (API Version 2015-02-02)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

从集群中移除节点

从集群中删除节点仅在未运行 Clustered Redis 引擎时适用。

每次更改您的 Memcached 集群中的节点数时,您必须至少重新映射部分键空间,以便它映射到正确的节点。有关对 Memcached 集群进行负载均衡的更多详细信息,请参阅配置 ElastiCache 客户端以实现高效负载均衡

(控制台)从集群中移除节点

(控制台)从群集中移除节点

  1. 登录 AWS 管理控制台 并通过以下网址打开 ElastiCache 控制台:https://console.amazonaws.cn/elasticache/

  2. 从右上角的下拉列表中,选择要从中删除节点的群集。

  3. 在左侧的导航窗格中,选择 MemcachedRedis

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

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

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

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

    此时会显示 Delete Node 对话框。

  6. 要删除节点,请完成 Delete Node 对话框,然后选择 Delete Node。若不想删除节点,请选择 Cancel

新的添加和删除请求对待处理请求的影响

方案 待处理的操作 新请求 结果

场景 1

删除

删除

新的待处理或即时删除请求会取代待处理删除操作。

例如,如果节点 0001、0003 和 0007 是待处理删除,并且发出了删除节点 0002 和 0004 的新请求,则仅删除节点 0002 和 0004。不会删除节点 0001、0003 和 0007。

场景 2

删除

创建

新的待处理或即时创建请求会取代待处理删除操作。

例如,如果节点 0001、0003 和 0007 是待处理删除,并且发出了创建节点的新请求,则将创建新节点,而且不会删除节点 0001、0003 和 0007。

场景 3

创建

删除

新的待处理或即时删除请求会取代待处理创建操作。

例如,如果有一个创建两个节点的待处理请求,并且发出了删除节点 0003 的新请求,则不会创建任何新节点,而且将删除节点 0003。

场景 4

创建

创建

新的创建请求会添加到待处理创建请求。

例如,如果有一个创建两个节点的待处理请求,并且发出了创建三个节点的新请求,新请求会添加到待处理请求中,而且将创建五个节点。

重要

如果新的创建请求设置为 Apply Immediately - Yes,则会立即执行所有创建请求。如果新的创建请求设置为 Apply Immediately - No (立即应用 - 否),所有创建请求将进入待处理状态。

要确定待处理的操作,请选择 Description 选项卡,然后查看所显示的待处理的创建或删除操作。您不能同时拥有待处理的创建和删除操作。

 图像:集群描述选项卡

(AWS CLI) 从集群中移除节点

  1. 使用命令 describe-cache-cluster 显示群集的节点列表,如以下示例所示,然后记下要移除的节点的标识符。

    对于 Linux, OS X, or Unix:

    Copy
    aws elasticache describe-cache-clusters \ --cache-cluster-id my-memcached-cluster \ --show-cache-node-info

    对于 Windows:

    Copy
    aws elasticache describe-cache-clusters ^ --cache-cluster-id my-memcached-cluster ^ --show-cache-node-info

    此操作生成类似于下述信息的输出 (JSON 格式):

    {
        "CacheClusters": [
            {
                "Engine": "memcached", 
                "CacheNodes": [
                    {
                        "CacheNodeId": "0001", 
                        "Endpoint": {
                            "Port": 11211, 
                            "Address": "my-memcached-cluster.7ef-example.0001.usw2.cache.amazonaws.com"
                        }, 
                        "CacheNodeStatus": "available", 
                        "ParameterGroupStatus": "in-sync", 
                        "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", 
                        "CustomerAvailabilityZone": "us-west-2b"
                    }, 
                    {
                        "CacheNodeId": "0002", 
                        "Endpoint": {
                            "Port": 11211, 
                            "Address": "my-memcached-cluster.7ef-example.0002.usw2.cache.amazonaws.com"
                        }, 
                        "CacheNodeStatus": "available", 
                        "ParameterGroupStatus": "in-sync", 
                        "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", 
                        "CustomerAvailabilityZone": "us-west-2b"
                    }, 
                    {
                        "CacheNodeId": "0003", 
                        "Endpoint": {
                            "Port": 11211, 
                            "Address": "my-memcached-cluster.7ef-example.0003.usw2.cache.amazonaws.com"
                        }, 
                        "CacheNodeStatus": "available", 
                        "ParameterGroupStatus": "in-sync", 
                        "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", 
                        "CustomerAvailabilityZone": "us-west-2b"
                    }
                ], 
                "CacheParameterGroup": {
                    "CacheNodeIdsToReboot": [], 
                    "CacheParameterGroupName": "default.memcached1.4", 
                    "ParameterApplyStatus": "in-sync"
                }, 
                "CacheClusterId": "my-memcached-cluster", 
                "PreferredAvailabilityZone": "us-west-2b", 
                "ConfigurationEndpoint": {
                    "Port": 11211, 
                    "Address": "my-memcached-cluster.7ef-example.cfg.usw2.cache.amazonaws.com"
                }, 
                "CacheSecurityGroups": [], 
                "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", 
                "AutoMinorVersionUpgrade": true, 
                "CacheClusterStatus": "available", 
                "NumCacheNodes": 3, 
                "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
                "SecurityGroups": [
                    {
                        "Status": "active", 
                        "SecurityGroupId": "sg-dbe93fa2"
                    }
                ], 
                "CacheSubnetGroupName": "default", 
                "EngineVersion": "1.4.24", 
                "PendingModifiedValues": {}, 
                "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", 
                "CacheNodeType": "cache.m3.medium"
            }
        ]
    }
    
  2. modify-cache-cluster CLI 操作与要删除的节点列表一起使用,如下例所示。

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

    • --cache-cluster-id 要从其中移除节点的缓存群集的 ID。

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

    • --cache-node-ids-to-remove 要从此群集中移除的节点 ID 的列表。

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

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

    以下示例从群集 my-memcached-cluster 中立即删除节点 0001。

    对于 Linux, OS X, or Unix:

    Copy
    aws elasticache modify-cache-cluster \ --cache-cluster-id my-memcached-cluster \ --num-cache-nodes 2 \ --cache-node-ids-to-remove 0001 \ --region us-east-2 \ --apply-immediately

    对于 Windows:

    Copy
    aws elasticache modify-cache-cluster ^ --cache-cluster-id my-memcached-cluster ^ --num-cache-nodes 2 ^ --cache-node-ids-to-remove 0001 ^ --region us-east-2 ^ --apply-immediately

    此操作生成类似于下述信息的输出 (JSON 格式):

    Copy
    { "CacheCluster": { "Engine": "memcached", "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "my-memcached-cluster", "PreferredAvailabilityZone": "us-east-2b", "ConfigurationEndpoint": { "Port": 11211, "Address": "rlh-mem000.7ef-example.cfg.usw2.cache.amazonaws.com" }, "CacheSecurityGroups": [], "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", 9dcv5r "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "modifying", "NumCacheNodes": 3, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", "SecurityGroups": [ { "Status": "active", "SecurityGroupId": "sg-dbe93fa2" } ], "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": { "NumCacheNodes": 2, "CacheNodeIdsToRemove": [ "0001" ] }, "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", "CacheNodeType": "cache.m3.medium" } }

有关更多信息,请参阅 AWS CLI 主题describe-cache-clustermodify-cache-cluster

(ElastiCache API) 从集群中移除节点

若要使用 ElastiCache API 删除节点,请使用缓存集群 ID 和要删除节点的列表调用 ModifyCacheCluster API 操作,如下所示:

  • CacheClusterId 要从其中移除节点的缓存集群的 ID。

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

  • CacheNodeIdsToRemove.member.n 要从集群中移除的节点 ID 的列表。

    • CacheNodeIdsToRemove.member.1=0004

    • CacheNodeIdsToRemove.member.1=0005

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

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

以下示例从集群 myCacheCluster 中立即移除节点 0004 和 0005。

Copy
https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &CacheClusterId=myCacheCluster &ApplyImmediately=true &CacheNodeIdsToRemove.member.1=0004 &CacheNodeIdsToRemove.member.2=0005 &NumCacheNodes=3 &Region us-east-2 &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

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