本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过修改节点类型来在线纵向扩展
通过在 Valkey 7.2 或更高版本或 Redis OSS 3.2.10 或更高版本中使用在线垂直扩展,您可以在最短的停机时间内动态扩展 Valkey 或 Redis OSS 集群。这样,即使在扩展时,Valkey 或 Redis OSS 集群也可以处理请求。
注意
不支持在使用数据分层功能的集群(例如,使用 r6gd 节点类型的集群)和不使用数据分层功能的集群(例如,使用 r6g 节点类型的集群)之间扩缩。有关更多信息,请参阅 数据分层 ElastiCache。
您可执行以下操作:
-
纵向扩展 – 通过调整 Valkey 或 Redis OSS 集群的节点类型以使用较大的节点类型来增加读取和写入容量。
ElastiCache 在保持在线状态并处理请求的同时,动态调整集群的大小。
-
缩减 – 通过向下调整节点类型以使用较小节点来减少读写容量。同样,在保持在线状态并处理请求的同时, ElastiCache 动态调整集群的大小。在这种情况下,您可以通过缩小节点来降低成本。
注意
扩展和缩减过程依赖于使用新选择的节点类型创建集群并将新节点与先前节点同步。要确保平滑的扩展/缩减流程,请执行以下操作:
确保您具有足够的 ENI(弹性网络接口)容量。如果要缩减,请确保较小的节点具有足够的内存来承受预期流量。
有关内存管理的最佳实践,请参阅 管理 Valkey 和 Redis OSS 的预留内存。
虽然纵向扩展过程旨在保持完全在线,但它确实依赖于在旧节点和新节点之间同步数据。我们建议您在预期数据流量最小时启动扩展/缩减。
尽可能在生产前调试环境中测试扩展期间的应用程序行为。
目录
在线纵向扩展
主题
纵向扩展 Valkey 或 Redis OSS 缓存集群(控制台)
以下过程介绍如何使用 ElastiCache 管理控制台扩展 Valkey 或 Redis OSS 集群。在此过程中,集群将继续处理请求,且停机时间降至最短。
纵向扩展 Valkey 或 Redis OSS 集群(控制台)
-
登录 AWS Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/
。 -
在导航窗格中,选择 Valkey 集群或 Redis OSS 集群。
-
从集群列表中,选择集群。
-
选择 Modify(修改)。
-
在 Modify Cluster 向导中:
-
从 Node type 列表中选择您希望扩展到的节点类型。要扩展,请选择大于现有节点的节点类型。
-
-
如果您要立即执行扩展过程,请选中立即应用框。如果 Apply immediately 框处于未选中状态,则在此集群的下一维护时段内执行纵向扩展过程。
-
选择 Modify(修改)。
如果您在上一步选择了 Apply immediately,则集群的状态将变为 modifying。当状态变为 available 时,即表示修改完成,您可以开始使用新集群。
纵向扩展 Valkey 或 Redis OSS 缓存集群(AWS CLI)
以下过程介绍如何使用 AWS CLI纵向扩展 Valkey 或 Redis OSS 缓存集群。在此过程中,集群将继续处理请求,且停机时间降至最短。
纵向扩展 Valkey 或 Redis OSS 缓存集群(AWS CLI)
-
通过运行带有以下参数的 AWS CLI
list-allowed-node-type-modifications
命令来确定可以扩展到的节点类型。对于 Linux、macOS 或 Unix:
aws elasticache list-allowed-node-type-modifications \ --replication-group-id
my-replication-group-id
对于 Windows:
aws elasticache list-allowed-node-type-modifications ^ --replication-group-id
my-replication-group-id
以上命令的输出类似于此处所示(JSON 格式)。
{ "ScaleUpModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] "ScaleDownModifications": [ "cache.t2.micro", "cache.t2.small ", "cache.t2.medium", "cache.t1.small " ], }
有关更多信息,请参阅 list-allowed-node-type-修改 在AWS CLI 参考资料中。
-
使用 AWS CLI
modify-replication-group
命令和以下参数修改您的复制组以向上扩展到新的更大的节点类型。--replication-group-id
– 要纵向扩展到的复制组的名称。--cache-node-type
– 要扩展缓存集群的新节点类型。此值必须是步骤 1 中由list-allowed-node-type-modifications
命令返回的节点类型之一。--cache-parameter-group-name
– [可选] 如果您使用reserved-memory
管理集群的预留内存,则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用reserved-memory-percent
,则可以忽略此参数。--apply-immediately
– 使纵向扩展过程立即得到应用。要将纵向扩展流程推迟到此集群的下一维护时段,请使用--no-apply-immediately
参数。
对于 Linux、macOS 或 Unix:
aws elasticache modify-replication-group \ --replication-group-id
my-redis-cluster
\ --cache-node-typecache.m3.xlarge
\ --apply-immediately对于 Windows:
aws elasticache modify-replication-group ^ --replication-group-id
my-redis-cluster
^ --cache-node-typecache.m3.xlarge
^ --apply-immediately以上命令的输出类似于此处所示(JSON 格式)。
{ "ReplicationGroup": { "Status": "modifying", "Description": "my-redis-cluster", "NodeGroups": [ { "Status": "modifying", "Slots": "0-16383", "NodeGroupId": "0001", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-east-1f", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-001" }, { "PreferredAvailabilityZone": "us-east-1d", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-002" } ] } ], "ConfigurationEndpoint": { "Port": 6379, "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com" }, "ClusterEnabled": true, "ReplicationGroupId": "my-redis-cluster", "SnapshotRetentionLimit": 1, "AutomaticFailover": "enabled", "SnapshotWindow": "07:30-08:30", "MemberClusters": [ "my-redis-cluster-0001-001", "my-redis-cluster-0001-002" ], "CacheNodeType": "cache.m3.xlarge", "DataTiering": "disabled" "PendingModifiedValues": {} } }
有关更多信息,请参阅 modify-replication-group 在AWS CLI 参考资料中。
-
如果您使用了
--apply-immediately
,请使用带有以下参数的 AWS CLIdescribe-cache-clusters
命令检查缓存集群的状态。当状态变为 available 时,您便可开始使用较大的新缓存集群节点。
扩展 Valkey 或 Redis OSS 缓存集群 (API) ElastiCache
以下过程使用 ElastiCache API 将您的缓存集群从其当前节点类型扩展到新的更大的节点类型。在此过程中, ElastiCache 更新 DNS 条目,使其指向新节点。因此,您便不需要更新应用程序中的终端节点。对于 Valkey 7.2 及更高版本或 Redis OSS 5.0.5 及更高版本,您可以在该集群继续保持在线并处理传入请求时扩展启用失效转移的集群。在 Redis OSS 版本 4.0.10 及更低版本上,更新 DNS 条目时,您可能会发现先前版本上来自主节点的读取和写入短暂中断。
向上扩展为较大的节点类型所需的时间因节点类型和当前缓存集群中的数据量不同而异。
扩展 Valkey 或 Redis OSS 缓存集群 (API) ElastiCache
-
使用带有以下参数的 ElastiCache API
ListAllowedNodeTypeModifications
操作来确定可以扩展到哪些节点类型。ReplicationGroupId
– 复制组的名称。使用此参数可描述特定复制组而非所有复制组。
https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>
有关更多信息,请参阅 ListAllowedNodeTypeModifications 在《亚马逊 ElastiCache API 参考》中。
-
使用
ModifyReplicationGroup
ElastiCache API 操作并使用以下参数将当前的复制组扩展到新的节点类型。ReplicationGroupId
– 复制组的名称。CacheNodeType
– 此复制组中缓存集群的较大新节点类型。此值必须是上一步中由ListAllowedNodeTypeModifications
操作返回的实例类型之一。CacheParameterGroupName
– [可选] 如果您使用reserved-memory
管理集群的预留内存,则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用reserved-memory-percent
,则可以忽略此参数。ApplyImmediately
– 设置为true
可促使立即应用纵向扩展流程。要将扩展流程推迟到下一维护时段,请使用ApplyImmediately
=false
。
https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.m3.2xlarge &CacheParameterGroupName=redis32-m3-2xl &ReplicationGroupId=myReplGroup &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2014-12-01 &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>
有关更多信息,请参阅 ModifyReplicationGroup 在《亚马逊 ElastiCache API 参考》中。
-
如果您使用了
ApplyImmediately
=true
,请使用带有以下参数的 ElastiCache APIDescribeReplicationGroups
操作监控复制组的状态。当状态从 modifying 变为 available 时,您便可开始写入已扩展的新复制组。ReplicationGroupId
– 复制组的名称。使用此参数可描述特定复制组而非所有复制组。
https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>
有关更多信息,请参阅 DescribeReplicationGroups 在《亚马逊 ElastiCache API 参考》中。
在线缩减
主题
缩减 Valkey 或 Redis OSS 缓存集群(控制台)
以下过程介绍如何使用 ElastiCache 管理控制台缩小 Valkey 或 Redis OSS 集群。在此过程中,您的 Valkey 或 Redis OSS 集群将继续处理请求,且停机时间降至最短。
缩减 Valkey 或 Redis OSS 集群(控制台)
-
登录 AWS Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/
。 -
在导航窗格中,选择 Valkey 集群或 Redis OSS 集群。
-
从集群列表中,选择首选集群。
-
选择 Modify(修改)。
-
在 Modify Cluster 向导中:
-
从 Node type 列表中选择您希望扩展到的节点类型。要缩减,请选择小于现有节点的节点类型。请注意,并不是可缩减到所有节点类型。
-
-
如果您要立即执行缩减过程,请选中立即应用框。如果立即应用框处于未选中状态,则在此集群的下一维护时段内执行缩减过程。
-
选择 Modify(修改)。
如果您在上一步选择了 Apply immediately,则集群的状态将变为 modifying。当状态变为 available 时,即表示修改完成,您可以开始使用新集群。
缩减 Valkey 或 Redis OSS 缓存集群(AWS CLI)
以下过程介绍如何使用 AWS CLI缩减 Valkey 或 Redis OSS 缓存集群。在此过程中,集群将继续处理请求,且停机时间降至最短。
缩减 Valkey 或 Redis OSS 缓存集群(AWS CLI)
-
通过运行带有以下参数的 AWS CLI
list-allowed-node-type-modifications
命令来确定可以缩减到的节点类型。对于 Linux、macOS 或 Unix:
aws elasticache list-allowed-node-type-modifications \ --replication-group-id
my-replication-group-id
对于 Windows:
aws elasticache list-allowed-node-type-modifications ^ --replication-group-id
my-replication-group-id
以上命令的输出类似于此处所示(JSON 格式)。
{ "ScaleUpModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] "ScaleDownModifications": [ "cache.t2.micro", "cache.t2.small ", "cache.t2.medium ", "cache.t1.small" ] }
有关更多信息,请参阅 list-allowed-node-type-修改 在AWS CLI 参考资料中。
-
使用 AWS CLI
modify-replication-group
命令和以下参数修改您的复制组以缩小到新的较小节点类型。--replication-group-id
– 要缩减到的复制组的名称。--cache-node-type
– 要扩展缓存集群的新节点类型。此值必须是步骤 1 中由list-allowed-node-type-modifications
命令返回的节点类型之一。--cache-parameter-group-name
– [可选] 如果您使用reserved-memory
管理集群的预留内存,则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用reserved-memory-percent
,则可以忽略此参数。--apply-immediately
– 使纵向扩展过程立即得到应用。要将收缩流程推迟到此集群的下一维护时段,请使用--no-apply-immediately
参数。
对于 Linux、macOS 或 Unix:
aws elasticache modify-replication-group \ --replication-group-id
my-redis-cluster
\ --cache-node-typecache.t2.micro
\ --apply-immediately对于 Windows:
aws elasticache modify-replication-group ^ --replication-group-id
my-redis-cluster
^ --cache-node-typecache.t2.micro
^ --apply-immediately以上命令的输出类似于此处所示(JSON 格式)。
{ "ReplicationGroup": { "Status": "modifying", "Description": "my-redis-cluster", "NodeGroups": [ { "Status": "modifying", "Slots": "0-16383", "NodeGroupId": "0001", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-east-1f", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-001" }, { "PreferredAvailabilityZone": "us-east-1d", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-002" } ] } ], "ConfigurationEndpoint": { "Port": 6379, "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com" }, "ClusterEnabled": true, "ReplicationGroupId": "my-redis-cluster", "SnapshotRetentionLimit": 1, "AutomaticFailover": "enabled", "SnapshotWindow": "07:30-08:30", "MemberClusters": [ "my-redis-cluster-0001-001", "my-redis-cluster-0001-002" ], "CacheNodeType": "cache.t2.micro", "DataTiering": "disabled" "PendingModifiedValues": {} } }
有关更多信息,请参阅 modify-replication-group 在AWS CLI 参考资料中。
-
如果您使用了
--apply-immediately
,请使用带有以下参数的 AWS CLIdescribe-cache-clusters
命令检查缓存集群的状态。当状态变为 available 时,您便可开始使用较小的新缓存集群节点。
缩小 Valkey 或 Redis OSS 缓存集群 (API) ElastiCache
以下过程使用 ElastiCache API 将您的复制组从其当前节点类型扩展到新的较小节点类型。在此过程中,您的 Valkey 或 Redis OSS 集群将继续处理请求,且停机时间降至最短。
缩减为较小的节点类型所需的时间因节点类型和当前缓存集群中的数据量而异。
缩小规模 (ElastiCache API)
-
使用带有以下参数的 ElastiCache API
ListAllowedNodeTypeModifications
操作来确定可以缩减为哪些节点类型。ReplicationGroupId
– 复制组的名称。使用此参数可描述特定复制组而非所有复制组。
https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>
有关更多信息,请参阅 ListAllowedNodeTypeModifications 在《亚马逊 ElastiCache API 参考》中。
-
使用
ModifyReplicationGroup
ElastiCache API 操作并使用以下参数将当前的复制组缩小到新的节点类型。ReplicationGroupId
– 复制组的名称。CacheNodeType
– 此复制组中缓存集群的较小新节点类型。此值必须是上一步中由ListAllowedNodeTypeModifications
操作返回的实例类型之一。CacheParameterGroupName
– [可选] 如果您使用reserved-memory
管理集群的预留内存,则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用reserved-memory-percent
,则可以忽略此参数。ApplyImmediately
– 设置为true
可促使立即应用缩减流程。要将缩减流程推迟到下一维护时段,请使用ApplyImmediately
=false
。
https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.t2.micro &CacheParameterGroupName=redis32-m3-2xl &ReplicationGroupId=myReplGroup &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2014-12-01 &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>
有关更多信息,请参阅 ModifyReplicationGroup 在《亚马逊 ElastiCache API 参考》中。