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

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

纵向扩展单节点 Redis(已禁用集群模式)集群

当您纵向扩展单节点 Redis 集群时,ElastiCache 会执行以下过程,无论您使用的是 ElastiCache 控制台、Amazon CLI 还是 ElastiCache API。

  1. 在现有缓存集群所在的可用区中启动具有新节点类型的新缓存集群。

  2. 将现有缓存集群中的缓存数据复制到新缓存集群。此过程所需的时间取决于您的节点类型以及缓存集群中的数据量。

  3. 使用新缓存集群进行读写操作。由于新缓存集群的终端节点与旧缓存集群的终端节点相同,因此您不需要更新应用程序中的终端节点。在更新 DNS 条目时,您会发现主节点的读取和写入出现短暂中断(几秒钟)。

  4. ElastiCache 会删除旧缓存集群。由于与旧节点之间的连接会断开,您会发现旧节点的读取和写入出现短暂中断(几秒钟)。

注意

对于运行 r6gd 节点类型的集群,您只能在 r6gd 节点系列的节点大小范围内扩缩。

如下表所示,如果您在下一维护时段内安排有引擎升级,则会阻止 Redis 纵向扩展操作。有关维护时段的更多信息,请参阅管理维护

阻止的 Redis 操作
待处理的操作 阻止的操作
纵向扩展 立即引擎升级
引擎升级 立即纵向扩展

纵向扩展和引擎升级

立即纵向扩展
立即引擎升级

如果有待处理的操作正在阻止您,您可以执行以下操作之一。

  • 通过清除 Apply immediately 复选框(CLI 使用:--no-apply-immediately,API 使用:ApplyImmediately=false),将 Redis 扩展操作安排在下一维护时段内。

  • 等到下一维护时段(或之后)再执行 Redis 纵向扩展操作。

  • 将 Redis 引擎升级操作添加到此选中了 Apply Immediately 复选框 (CLI 使用:--apply-immediately,API 使用:ApplyImmediately=true) 的缓存集群修改中。这将导致立即执行引擎升级,从而取消阻止纵向扩展操作。

您可以使用 ElastiCache 控制台、Amazon CLI 或 ElastiCache API 纵向扩展单节点 Redis(已禁用集群模式)集群。

重要

如果您的参数组使用 reserved-memory 为 Redis 开销留出一些内存,则在开始扩展之前,请确保您具有为新节点类型预留正确内存量的自定义参数组。或者,您可以修改自定义参数组以便使用 reserved-memory-percent,并为您的新集群使用该参数组。

如果您在使用 reserved-memory-percent,则这不是必需的。

有关更多信息,请参阅管理预留内存

纵向扩展单节点 Redis(已禁用集群模式)集群(控制台)

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

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

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

  3. 从集群列表中选择要扩展的集群(它必须运行 Redis 引擎,而不是集群化 Redis 引擎)。

  4. 选择 Modify(修改)。

  5. Modify Cluster 向导中:

    1. Node type 列表中选择您希望扩展到的节点类型。

    2. 如果您在使用 reserved-memory 管理内存,请从 Parameter Group 列表中,选择为新节点类型预留正确内存量的自定义参数组。

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

  7. 选择 Modify(修改)。

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

纵向扩展单节点 Redis 缓存集群 (Amazon CLI)

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

纵向扩展单节点 Redis 缓存集群 (Amazon CLI)
  1. 通过运行带以下参数的 Amazon CLI list-allowed-node-type-modifications 命令,确定您可向上扩展到的节点类型。

    • --cache-cluster-id

    对于 Linux、macOS 或 Unix:

    aws elasticache list-allowed-node-type-modifications \ --cache-cluster-id my-cache-cluster-id

    对于 Windows:

    aws elasticache list-allowed-node-type-modifications ^ --cache-cluster-id my-cache-cluster-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 ", ], }

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

  2. 使用 Amazon CLI modify-cache-cluster 命令和以下参数,修改现有缓存集群,并指定要纵向扩展的缓存集群和较大的新节点类型。

    • --cache-cluster-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-cache-cluster \ --cache-cluster-id my-redis-cache-cluster \ --cache-node-type cache.m3.xlarge \ --cache-parameter-group-name redis32-m2-xl \ --apply-immediately

    对于 Windows:

    aws elasticache modify-cache-cluster ^ --cache-cluster-id my-redis-cache-cluster ^ --cache-node-type cache.m3.xlarge ^ --cache-parameter-group-name redis32-m2-xl ^ --apply-immediately

    以上命令的输出类似于此处所示 (JSON 格式)。

    { "CacheCluster": { "Engine": "redis", "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.redis6.x", "ParameterApplyStatus": "in-sync" }, "SnapshotRetentionLimit": 1, "CacheClusterId": "my-redis-cache-cluster", "CacheSecurityGroups": [], "NumCacheNodes": 1, "SnapshotWindow": "00:00-01:00", "CacheClusterCreateTime": "2017-02-21T22:34:09.645Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "modifying", "PreferredAvailabilityZone": "us-west-2a", "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", "CacheSubnetGroupName": "default", "EngineVersion": "6.0", "PendingModifiedValues": { "CacheNodeType": "cache.m3.2xlarge" }, "PreferredMaintenanceWindow": "tue:11:30-tue:12:30", "CacheNodeType": "cache.m3.medium", "DataTiering": "disabled" } }

    有关更多信息,请参阅 Amazon CLI 参考中的 modify-cache-cluster。

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

    • --cache-cache cluster-id – 单节点 Redis 缓存集群的名称。使用此参数可描述特定缓存集群而非所有缓存集群。

    aws elasticache describe-cache-clusters --cache-cluster-id my-redis-cache-cluster

    有关更多信息,请参阅 Amazon CLI 参考中的 describe-cache-clusters。

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

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

纵向扩展单节点 Redis 缓存集群 (ElastiCache API)
  1. 运行带以下参数的 ElastiCache API ListAllowedNodeTypeModifications 操作,确定您可纵向扩展为的节点类型。

    • CacheClusterId – 要纵向扩展的单节点 Redis 缓存集群的名称。

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &CacheClusterId=MyRedisCacheCluster &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

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

  2. 使用 ModifyCacheCluster ElastiCache API 操作和以下参数,修改现有缓存集群,并指定要纵向扩展的缓存集群和较大的新节点类型。

    • CacheClusterId – 要纵向扩展的缓存集群的名称。

    • CacheNodeType – 要通过纵向扩展使缓存集群达到的较大新节点类型。此值必须是步骤 1 中由 ListAllowedNodeTypeModifications 操作返回的节点类型之一。

    • CacheParameterGroupName – [可选] 如果您使用 reserved-memory 管理集群的预留内存,则使用此参数。指定为您的新节点类型预留正确内存量的自定义缓存参数组。如果您在使用 reserved-memory-percent,则可以忽略此参数。

    • ApplyImmediately – 设置为 true 可促使立即开始执行纵向扩展过程。要将纵向扩展流程推迟到此集群的下一维护时段,请使用 ApplyImmediately=false

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &ApplyImmediately=true &CacheClusterId=MyRedisCacheCluster &CacheNodeType=cache.m3.xlarge &CacheParameterGroupName redis32-m2-xl &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

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

  3. 如果您使用了 ApplyImmediately=true,请使用带以下参数的 ElastiCache API DescribeCacheClusters 操作检查新缓存集群的状态。当状态变为 available 时,您便可开始使用较大的新缓存集群。

    • CacheClusterId – 单节点 Redis 缓存集群的名称。使用此参数可描述特定缓存集群而非所有缓存集群。

    https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterId=MyRedisCacheCluster &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

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