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

替换节点

Amazon ElastiCache for Redis 频繁升级其机群,将补丁和升级无缝地应用于实例。但是,我们需要经常重启您的 ElastiCache for Redis 节点,以将必需的操作系统更新应用于底层主机。我们需要进行升级来增强安全性、可靠性和操作性能,而应用这些升级就需要进行替换。

您还可以选择在计划节点替换时段之前的任意时间自已管理这些替换。当您自己管理替换时,您的实例将在重启节点时收到操作系统更新,并且您的计划节点替换将被取消。您可能会继续接收指示节点替换将发生的提醒。如果您已手动缓解对于维护的需求,则可以忽略这些提醒。

注意

由 Amazon ElastiCache 自动生成的替换缓存节点可能具有不同的 IP 地址。您负责查看应用程序配置,以确保缓存节点与适当的 IP 地址关联。

以下列表标识了在 ElastiCache 计划替换一个 Redis 节点时可执行的操作。要加快查找您的场景所需的信息,请从以下菜单中进行选择。

Redis 节点替换选项
  • 不执行任何操作 – 如果您不执行任何操作,则 ElastiCache 将按计划替换节点。

     

    对于启用自动故障转移的非集群配置,Redis 5.0.6 及以上版本的集群将在集群继续保持在线并处理传入写入请求时完成替换。对于 4.0.10 或更低版本上启用了自动失效转移的集群,您可能会注意到与 DNS 更新相关的短暂写入中断(长达几秒钟)。

    如果节点是已启用自动故障转移的集群的成员,则 ElastiCache for Redis 可在修补、更新和其他与维护相关的节点替换期间提供更高的可用性。

     

    对于设置为使用 ElastiCache for Redis 集群客户端的 ElastiCache for Redis 集群配置,在集群处理传入写请求时,立即完成替换。

     

    对于启用自动故障转移的非集群配置,Redis 5.0.6 及以上版本的集群将在集群继续保持在线并处理传入写入请求时完成替换。对于 4.0.10 或更低版本上启用了自动失效转移的集群,您可能会注意到与 DNS 更新相关的短暂写入中断(长达几秒钟)。

     

    如果节点是独立节点,则 Amazon ElastiCache 会首先启动替换节点,然后从现有节点同步。在这段时间内,现有节点不可用于处理服务请求。同步完成后,现有节点将会终止,新节点将取代它。ElastiCache 会尽最大努力在此操作期间保留您的数据。

     

  • 更改维护时段 – 对于计划的维护事件,您将收到 ElastiCache 发送的电子邮件或通知事件。在这些情况下,如果在计划替换时间之前更改维护时段,则现在将在新时间替换您的节点。有关更多信息,请参阅下列内容:

    注意

    仅当 ElastiCache 通知包括维护时段时,您才可以通过移动维护时段的方式更改替换时段。如果该通知不包括维护时段,您则无法更改替换窗口。

    例如,假设现在是 11 月 9 日星期四 15:00,下一个维护时段是 11 月 10 日星期五 17:00。下面是 3 种情况及其结果:

    • 您将维护时段更改为星期五 16:00,这在当前日期和时间之后且在下一个计划维护时段之前。将在 11 月 10 日星期五 16:00 替换节点。

    • 您将维护时段更改为星期六 16:00,这在当前日期和时间之后且在下一个计划维护时段之后。将在 11 月 11 日星期六 16:00 替换节点。

    • 您将维护时段更改为星期三 16:00,这在当前日期和时间之前。将在 11 月 15 日下一个星期三 16:00 替换节点。

    有关说明,请参阅 管理维护

     

  • 替换任何 Redis 集群中仅有的节点 – 如果集群没有任何只读副本,您可以使用以下过程来替换节点。

    使用备份和还原替换仅有的节点
    1. 创建节点的集群的快照。有关说明,请参阅 进行手动备份

    2. 以快照做种创建新集群。有关说明,请参阅 从备份还原到新缓存

    3. 删除具有计划替换的节点的集群。有关说明,请参阅 删除集群

    4. 在您的应用程序中,将旧节点的终端节点替换为新节点的终端节点。

     

  • 替换任何 Redis 集群中的副本节点 – 要替换副本集群,请增加副本计数。为此,请添加副本,然后通过删除要替换的副本来减少副本计数。此过程是动态的,不会有任何集群停机。

    注意

    如果您的分区或复制组已有五个副本,请反向操作步骤 1 和 2。

    替换任何 Redis 集群中的副本
    1. 通过将副本添加到分片或复制组来增加副本数量。有关更多信息,请参阅增加分区中的副本数量

    2. 删除要替换的副本。有关更多信息,请参阅减少分区中的副本数量

    3. 更新应用程序中的终端节点。

     

  • 替换 Redis(已启用集群模式)分区中的任何节点 – 要替换集群中的节点而不停机,请使用线上重新分片。首先通过横向扩展来添加分片,然后通过缩减来删除具有要替换的节点的分片。

    替换 Redis(已启用集群模式)集群中的任何节点
    1. 扩展:添加其配置与具有要替换的节点的现有分片的配置相同的其他分片。有关更多信息,请参阅通过在线重新分片功能添加分片

    2. 缩减:删除具有要替换的节点的分区。有关更多信息,请参阅通过在线重新分片功能删除分片

    3. 更新应用程序中的终端节点。

     

  • 替换 Redis(已禁用集群模式)集群中的节点 – 如果集群是没有任何只读副本的 Redis(已禁用集群模式)集群,请使用以下过程来替换节点。

    使用复制替换节点(仅限已禁用集群模式)
    1. 使用计划替换的节点作为主节点向集群添加复制。不要在此集群上启用多可用区。有关说明,请参阅 向没有分片的 Redis 集群添加复制

    2. 将一个只读副本添加到该集群。有关说明,请参阅 向集群添加节点(控制台)

    3. 将新创建的只读副本提升为主副本。有关说明,请参阅 将 Redis(已禁用集群模式)复制组的只读副本提升为主节点

    4. 删除计划替换的节点。有关说明,请参阅 从集群中移除节点

    5. 在您的应用程序中,将旧节点的终端节点替换为新节点的终端节点。

     

  • 替换 Redis(已禁用集群模式)只读副本 – 如果节点是复制组中的只读副本,则替换该节点。

    如果您的集群只具有一个副本节点,并且启用了多可用区,则必须禁用多可用区才能删除副本。有关说明,请参阅 修改复制组

    替换 Redis(已禁用集群模式)只读副本
    1. 删除计划替换的副本。有关说明,请参阅:

    2. 添加一个新副本来替换计划替换的副本。如果您使用的名称与刚删除的副本相同,可以跳过第 3 步。有关说明,请参阅:

    3. 在您的应用程序中,将旧副本的终端节点替换为新副本的终端节点。

    4. 如果您在开始时禁用了多可用区,现在请重新启用。有关说明,请参阅 启用多可用区

     

  • 替换 Redis(已禁用集群模式)主节点 – 如果节点是主节点,请首先将一个只读副本提升为主节点。然后删除以前是主节点的副本。

    如果您的集群只具有一个副本,并且启用了多可用区,则必须禁用多可用区才能在步骤 2 中删除副本。有关说明,请参阅 修改复制组

    替换 Redis(已禁用集群模式)主节点
    1. 将只读副本提升为主集群。有关说明,请参阅 将 Redis(已禁用集群模式)复制组的只读副本提升为主节点

    2. 删除计划替换的节点(旧的主节点)。有关说明,请参阅 从集群中移除节点

    3. 添加一个新副本来替换计划替换的副本。如果您使用的名称与刚删除的节点相同,可以跳过在应用程序中更改终端节点。

      有关说明,请参阅 向 Redis(已禁用集群模式)复制组添加只读副本

    4. 在您的应用程序中,将旧节点的终端节点替换为新节点的终端节点。

    5. 如果您在开始时禁用了多可用区,现在请重新启用。有关说明,请参阅启用多可用区