在线纵向扩展 - ElastiCache 适用于 Redis 的 Amazon

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

在线纵向扩展

纵向扩展 Redis 缓存集群(控制台)

以下过程介绍如何使用 ElastiCache 管理控制台扩展 Redis 集群。在此过程中,Redis 集群将继续处理请求,且停机时间降至最短。

纵向扩展 Redis 集群(控制台)
  1. 登录 AWS Management Console 并打开 ElastiCache 控制台 (https://console.aws.amazon.com/elasticache/)。

  2. 从导航窗格中,选择 Redis clusters(Redis 集群)。

  3. 从集群列表中,选择集群。

  4. 选择 Modify(修改)。

  5. Modify Cluster 向导中:

    1. Node type 列表中选择您希望扩展到的节点类型。要扩展,请选择大于现有节点的节点类型。

  6. 如果您要立即执行扩展过程,请选中立即应用框。如果 Apply immediately 框处于未选中状态,则在此集群的下一维护时段内执行纵向扩展过程。

  7. 选择 Modify(修改)。

    如果您在上一步选择了 Apply immediately,则集群的状态将变为 modifying。当状态变为 available 时,即表示修改完成,您可以开始使用新集群。

纵向扩展 Redis 缓存集群 (AWS CLI)

以下过程介绍如何使用 AWS CLI 扩展 Redis 缓存集群。在此过程中,Redis 集群将继续处理请求,且停机时间降至最短。

纵向扩展 Redis 缓存集群 (AWS CLI)
  1. 通过运行带以下参数的 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 " ], }

    有关更多信息,请参阅 AWS CLI 参考中的 list-allowed-node-type-modifications。

  2. 使用 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-type cache.m3.xlarge \ --apply-immediately

    对于 Windows:

    aws elasticache modify-replication-group ^ --replication-group-id my-redis-cluster ^ --cache-node-type cache.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": {} } }

    有关更多信息,请参阅 AWS CLI 参考中的 modify-replication-group。

  3. 如果您使用了 --apply-immediately,请使用带以下参数的 AWS CLI describe-cache-clusters 命令检查缓存集群的状态。当状态变为 available 时,您便可开始使用较大的新缓存集群节点。

纵向扩展 Redis 缓存集群 (ElastiCache API)

以下过程使用 ElastiCache API 将缓存集群从其当前节点类型扩展为较大的新节点类型。在此过程中,ElastiCache for Redis 会更新 DNS 条目使其指向新的节点。因此,您便不需要更新应用程序中的终端节点。对于 Redis 5.0.5 及更高版本,您可以在该集群继续保持在线并处理传入请求时扩展启用自动故障转移的集群。在版本 4.0.10 及更低版本上,更新 DNS 条目时,您可能会发现先前版本上来自主节点的读取和写入短暂中断。

向上扩展为较大的节点类型所需的时间因节点类型和当前缓存集群中的数据量不同而异。

纵向扩展 Redis 缓存集群 (ElastiCache API)
  1. 使用带以下参数的 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>

    有关更多信息,请参阅 Amazon ElastiCache API 参考中的 ListAllowedNodeTypeModifications。

  2. 使用带以下参数的 ModifyReplicationGroup ElastiCache API 操作将当前复制组扩展为新的节点类型。

    • ReplicationGroupId – 复制组的名称。

    • CacheNodeType – 此复制组中缓存集群的较大新节点类型。此值必须是步骤 1 中由 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>

    有关更多信息,请参阅 Amazon ElastiCache API 参考中的 ModifyReplicationGroup。

  3. 如果您使用了 ApplyImmediately=true,请使用带以下参数的 ElastiCache API DescribeReplicationGroups 操作监控复制组的状态。当状态从 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>

    有关更多信息,请参阅 Amazon ElastiCache API 参考中的 DescribeReplicationGroups。