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

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

向 ElastiCache 集群添加节点

向 Memcached 集群添加节点会增加您集群的分区数量。更改集群中的分区数量时,需要重新映射一些键空间,以将其映射到正确的节点。重新映射键空间会暂时增加集群上的缓存未命中次数。有关更多信息,请参阅 配置 ElastiCache 客户端以实现高效负载均衡(Memcached)

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

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

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

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

向没有分片的 Valkey 或 Redis OSS 集群添加复制
  1. 登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台(https://console.aws.amazon.com/elasticache/)。

  2. 在导航窗格中,选择 Valkey 集群Redis OSS 集群

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

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

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

  4. 选择 Add replication

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

  6. 选择添加

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

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

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

  1. 登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台 (https://console.aws.amazon.com/elasticache/)。

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

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

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

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

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

  4. 选择 Add node

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

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

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

    方案 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(描述)选项卡,然后查看显示了多少待处理的创建或删除操作。您不能同时拥有待处理的创建操作和待处理的删除操作。

  7. 选择 Add 按钮。

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

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

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

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

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

对于 Linux、macOS 或 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", "DataTiering": "disabled", } }

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

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

要使用 Amazon CLI 向集群添加节点,请使用带以下参数的 Amazon CLI 操作 increase-replica-count

  • --replication-group-id 要添加节点的复制组的 ID。

  • --new-replica-count 指定应用修改后此复制组中应有的节点的数量。要向此集群添加节点,--new-replica-count 必须大于此集群中的当前节点数。

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

对于 Linux、macOS 或 Unix:

aws elasticache increase-replica-count \ --replication-group-id my-replication-group \ --new-replica-count 4 \ --apply-immediately

对于 Windows:

aws elasticache increase-replica-count ^ --replication-group-id my-replication-group ^ --new-replica-count 4 ^ --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" ], "NodeGroups": [ { "NodeGroupId": "0001", "Status": "modifying", "PrimaryEndpoint": { "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com", "Port": 6379 }, "ReaderEndpoint": { "Address": "node-test.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" } ] } ], "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" } }

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

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

向集群添加节点 (ElastiCache API)
  • 按照以下参数调用 IncreaseReplicaCount API 操作:

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

    • NewReplicaCount NewReplicaCount 参数指定应用修改后此集群中应有的节点的数量。要向此集群添加节点,NewReplicaCount 必须大于此集群中的当前节点数。如果此值小于当前节点数,请使用 DecreaseReplicaCount API 以及要从集群中移除的节点数量。

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

    • Region 指定要添加节点的集群的 Amazon 区域。

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

    https://elasticache.us-west-2.amazonaws.com/ ?Action=IncreaseReplicaCount &ApplyImmediately=true &NumCacheNodes=4 &ReplicationGroupId=my-replication-group &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 主题 IncreaseReplicaCount

向集群添加节点 (ElastiCache API)
  • 按照以下参数调用 ModifyCacheCluster API 操作:

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

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

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

    • Region 指定要添加节点的集群的 Amazon 区域。

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

    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=&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 主题 ModifyCacheCluster