本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
向 ElastiCache 集群添加节点
向 Memcached 集群添加节点会增加您集群的分区数量。更改集群中的分区数量时,需要重新映射一些键空间,以将其映射到正确的节点。重新映射键空间会暂时增加集群上的缓存未命中次数。有关更多信息,请参阅 配置您的 ElastiCache 客户端以实现高效的负载平衡 (Memcached)。
要重新配置您的 Valkey 或 RedisOSS(已启用集群模式)集群,请参阅 在 Valkey 或 Redis 中扩展集群OSS(已启用集群模式)
您可以使用 ElastiCache 管理控制台、 Amazon CLI 或 ElastiCache API向集群添加节点。
如果要向单节点 Valkey 或 RedisOSS(已禁用集群模式)集群(未启用复制)添加节点,则需要两个步骤:首先添加复制,然后添加副本节点。
以下过程向未启用复制功能的单节点 Valkey 或 Red OSS is 添加复制。在添加复制时,现有的节点将成为启用复制的集群中的主节点。添加复制后,您可以向该集群添加最多 5 个副本节点。
向没有分片的 Valkey 或 Redis OSS 集群添加复制
登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/
。 -
在导航窗格中,选择 Valkey 集群或 Redis OSS 集群。
将显示运行该引擎的集群列表。
-
选择要将节点添加到的集群的名称,而不是集群名称左侧的框。
以下情况适用于未启用复制功能的 Redis OSS 集群:
-
它运行的是 RedisOSS,而不是集群 Redis。OSS
-
它有零个分片。
如果该集群有任何分片、已启用复制,则您可以在向 ElastiCache 集群添加节点(控制台)处继续。
-
-
选择 Add replication。
-
在添加复制中,为该启用复制的集群输入说明。
-
选择添加。
一旦该集群的状态恢复为 available,您就可以在下一个流程中继续,并向该集群中添加副本。
向 ElastiCache 集群添加节点(控制台)
以下步骤可用于将节点添加到集群。
登录 Amazon Web Services Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/
。 -
在导航窗格中,选择在您要添加节点的集群上运行的引擎。
此时会显示运行所选引擎的集群的列表。
-
从集群列表中,对于要向其添加节点的集群,选择其名称。
如果您的集群是 Valkey 或 RedisOSS(已启用集群模式)集群,请参阅。在 Valkey 或 Redis 中扩展集群OSS(已启用集群模式)
如果您的集群是零分片的 Valkey 或 RedisOSS(已禁用集群模式)集群,请先完成中的步骤。向没有分片的 Valkey 或 Redis OSS 集群添加复制
-
选择 Add node。
-
在 Add Node (添加节点) 对话框中,填写请求的信息。
-
选择 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(描述)选项卡,然后查看显示了多少待处理的创建或删除操作。您不能同时拥有待处理的创建操作和待处理的删除操作。
-
选择 Add 按钮。
片刻之后,新的节点应会出现在节点列表中,其状态为 creating。若非如此,请刷新浏览器页面。当节点的状态更改为 available 时,便可以使用新节点。
要使用向集群添加节点 Amazon CLI,请使用modify-cache-cluster
带有以下参数的 Amazon CLI 操作:
-
--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-nodes5
\ --apply-immediately
对于 Windows:
aws elasticache modify-cache-cluster ^ --cache-cluster-id
my-cluster
^ --num-cache-nodes5
^ --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 或 RedisOSS(已禁用集群模式)集群添加节点,则必须先创建复制组,将现有集群指定为主集群。有关更多信息,请参阅 使用可用的 Valkey 或 Redis OSS 缓存集群创建复制组 ()Amazon CLI。待该复制组为 available(可用)后,您可以继续下面的流程。
要使用向集群添加节点 Amazon CLI,请使用increase-replica-count
带有以下参数的 Amazon CLI 操作:
-
--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-count4
\ --apply-immediately
对于 Windows:
aws elasticache increase-replica-count ^ --replication-group-id
my-replication-group
^ --new-replica-count4
^ --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 或 RedisOSS(已禁用集群模式)集群添加节点,则必须先创建复制组,将现有集群指定为主集群。有关更多信息,请参阅 向独立 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
。