向集群添加节点 - 用于 Redis 的 Amazon ElastiCache
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

向集群添加节点

要重新配置 Redis (已启用集群模式) 集群,请参阅扩展 Redis(已启用集群模式) 中的集群

您可以使用 ElastiCache 管理控制台、AWS CLI 或 ElastiCache API 向集群中添加节点。

使用 AWS 管理控制台

将节点添加到单节点 Redis (已禁用集群模式) 集群(未启用复制的集群)是包含两个步骤的流程:首先添加复制,然后添加副本节点。

下面的流程将向未启用复制的单节点 Redis 添加复制。在添加复制时,现有的节点将成为启用复制的集群中的主节点。添加复制后,您可以向该集群添加最多 5 个副本节点。

向没有分片的 Redis 集群添加复制

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

  2. 从导航窗格中,选择 Redis

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

  3. 选择要将节点添加到的集群的名称,而不是集群名称左侧的框。

    未启用复制的 Redis 集群满足以下条件:

    • 它运行的是 Redis,而不是 Clustered Redis。

    • 它有零个分片。

      如果该集群有任何分片、已启用复制,则您可以在(控制台) 向集群添加节点处继续。

  4. 选择 Add replication

  5. 添加复制中,为该启用复制的集群输入说明。

  6. 选择添加

    一旦该集群的状态恢复为 available,您就可以在下一个流程中继续,并向该集群中添加副本。

(控制台) 向集群添加节点

以下步骤可用于将节点添加到集群。

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

  2. 在导航窗格中,选择在您要添加节点的集群上运行的引擎。

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

  3. 从集群列表中,对于要向其添加节点的集群,选择其名称。

    如果您的集群是 Redis (已启用集群模式) 集群,请参阅扩展 Redis(已启用集群模式) 中的集群

    如果您的集群是具有零个分片的 Redis (已禁用集群模式) 集群,请先完成 向没有分片的 Redis 集群添加复制 中的步骤。

  4. 选择 Add node

  5. Add Node (添加节点) 对话框中,填写请求的信息。

  6. 选择 Apply Immediately - Yes (立即应用 - 是) 按钮立即添加此节点,或选择 No (否) 在集群的下一个维护时段添加此节点。

    新的添加和删除请求对待处理请求的影响
    方案 待处理的操作 新请求 结果

    场景 1

    Delete

    Delete

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

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

    场景 2

    Delete

    创建

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

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

    场景 3

    创建

    Delete

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

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

    场景 4

    创建

    创建

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

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

    重要

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

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

    
	   图像:“Cluster description (集群描述)”选项卡
  7. 选择 Add 按钮。

    片刻之后,新的节点应会出现在节点列表中,其状态为 creating。若非如此,请刷新浏览器页面。当节点的状态更改为 available 时,便可以使用新节点。

使用 AWS CLI

如果要向未启用复制的现有 Redis (已禁用集群模式) 集群添加节点,则必须先创建将该现有集群指定为主集群的复制组。有关更多信息,请参阅使用可用 Redis 缓存集群创建复制组 (AWS CLI)。待该复制组可用 后,您可以继续下面的流程。

要使用 AWS CLI 向集群添加节点,请使用带以下参数的 AWS CLI 操作 modify-cache-cluster

  • --cache-cluster-id 要将节点添加到的缓存集群的 ID。

  • --num-cache-nodes --num-cache-nodes 参数指定应用修改后此集群中应有的节点的数量。要向此集群添加节点,--num-cache-nodes 必须大于此集群中的当前节点数。如果此值小于当前节点数,则 ElastiCache 需要参数 cache-node-ids-to-remove 以及要从集群中移除的节点的列表。有关更多信息,请参阅使用 AWS CLI

  • --apply-immediately--no-apply-immediately,用于指定是立即添加这些节点还是在下一维护时段添加这些节点。

对于 Linux, OS X, or Unix:

aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --num-cache-nodes 5 \ --apply-immediately

对于 Windows:

aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --num-cache-nodes 5 ^ --apply-immediately

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

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

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

使用 ElastiCache API

如果要向未启用复制的现有 Redis (已禁用集群模式) 集群添加节点,则必须先创建将该现有集群指定为主集群的复制组。有关更多信息,请参阅(ElastiCache API) 向独立 Redis(已禁用集群模式) 集群添加副本。待该复制组可用 后,您可以继续下面的流程。

(ElastiCache API) 向集群添加节点

  • 按照以下参数调用 ModifyCacheCluster API 操作:

    • CacheClusterId 要将节点添加到的集群的 ID。

    • NumCacheNodes NumCachNodes 参数指定应用修改后此集群中应有的节点的数量。要向此集群添加节点,NumCacheNodes 必须大于此集群中的当前节点数。如果此值小于当前节点数,则 ElastiCache 需要参数 CacheNodeIdsToRemove 以及要从集群中移除的节点的列表(请参阅使用 ElastiCache API)。

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

    • Region 指定要将节点添加到的集群的 AWS 区域。

    以下示例演示向集群添加节点的调用。

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &ApplyImmediately=true &NumCacheNodes=5 &CacheClusterId=my-cluster &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