可用区自动转移和练习运行的工作原理 - Amazon Route 53 应用程序恢复控制器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

可用区自动转移和练习运行的工作原理

Amazon Route 53 应用程序恢复控制器中的区域自动切换功能允许 Amazon 在 Amazon 确定存在可能影响可用区客户的损害时,代表您将资源的流量从可用区转移出去。Zonal autoshift 专为在中的所有可用区中预先扩展的资源而设计 Amazon Web Services 区域,这样应用程序就可以在失去一个可用区域的情况下正常运行。

借助可用区自动转移,您需要配置练习运行,以便 Route 53 ARC 定期将资源的流量从一个可用区转移出去。Route 53 ARC 大约每周为具有与其关联的练习运行配置的每个资源安排练习运行。每个资源的练习运行都是独立安排的。

对于每次练习运行,Route 53 ARC 都会记录结果。如果练习运行因阻止条件而中断,则练习运行结果不会标记为成功。有关练习运行结果的更多信息,请参阅练习运行结果

您可以将 Amazon EventBridge 通知配置为向您发送有关自动换档和练习跑的信息。有关更多信息,请参阅 在 Amazon 上使用区域自动换档 EventBridge

主题

何时 Amazon 启动和停止自动换档

当您为资源启用区域自动切换时,即表示您授权在事件发生期间 Amazon 将应用程序的资源流量从可用区转移出去,以帮助缩短恢复时间。

为实现这一目标,zonal autoshift 使用 Amazon 遥测技术尽早检测到存在可能影响客户的可用区损害。当 Amazon 启动自动转移时,传输到已配置资源的流量会立即开始从可能会影响客户的受损可用区转移。

Zonal autoshift 是一项专为已为中所有可用区预先扩展其应用程序资源的客户设计的功能。 Amazon Web Services 区域当自动转移或练习运行启动时,您不应依赖于按需扩展。

Amazon 当它确定可用区已恢复时,将结束自动切换。

Route 53 ARC 何时安排、启动和结束练习运行

Route 53 ARC 每周为资源安排一次练习运行,时长约为 30 分钟。Route 53 ARC 独立安排、启动和管理每个资源的练习运行。Route 53 ARC 不会批量处理同一账户中资源的练习运行。

当练习运行在预期的持续时间内不间断进行时,它的结果会标记为 SUCCESSFUL。还有其它几种可能的结果:FAILEDINTERRUPTEDPENDING。结果值和描述包含在练习运行结果部分。

在某些情况下,Route 53 ARC 会中断练习运行并将其结束。例如,如果在练习运行期间自动转移启动,则 Route 53 ARC 会中断练习运行并将其结束。再举一个例子,假设资源对练习运行有不良影响,并导致您指定的用于监控练习运行的警报进入 ALARM 状态。在这种情况下,Route 53 ARC 也会中断练习运行并将其结束。

此外,在某些情况下,Route 53 ARC 不会为资源启动计划练习运行。

为了应对面向资源的中断和被阻止的练习运行,Route 53 ARC 会执行以下操作:

  • 如果资源的练习运行在进行期间中断,则 Route 53 ARC 会认为每周的练习运行已经结束,并会计划在下一周为该资源安排一次新的练习运行。在这种情况下,每周练习的结果为 INTERRUPTED,而不是 FAILED。只有当监控练习运行的结果警报在练习运行期间进入 ALARM 状态时,练习运行结果才会设置为 FAILED

  • 如果在计划启动资源的练习运行时存在阻止约束,则 Route 53 ARC 不会启动练习运行。Route 53 ARC 将继续定期监控,以确定是否仍存在一个或多个阻止约束。当没有任何阻止约束时,Route 53 ARC 会对资源启动练习运行。

以下是阻止 Route 53 ARC 启动或继续资源练习运行的阻止约束示例:

  • 当有 Amazon Fault Injection Service 实验进行时,Route 53 ARC 不会开始或继续练习。如果在 Route 53 ARC 计划开始练习跑时赛事处于 Amazon FIS 活动状态,则 Route 53 ARC 不会开始练习跑。Route 53 ARC 在整个练习跑中监控阻塞限制,包括 Amazon FIS 赛事。如果 Amazon FIS 活动在练习跑处于活动状态时开始,Route 53 ARC 将结束练习跑,并且在资源下一次定期安排的练习跑之前不会尝试开始另一场练习。

  • 如果某个区域有当前 Amazon 赛事,则 Route 53 ARC 不会在该地区开始资源练习,而是结束该地区的主动练习。

当练习运行在没有中断的情况下完成时,Route 53 ARC 会像往常一样安排一周后进行下一次练习运行。如果由于阻塞限制(例如您指定的 Amazon FIS 实验或封锁时间窗口)而无法开始练习,则 Route 53 ARC 会继续尝试开始练习,直到练习跑可以开始。

可用区转移、练习运行和自动转移的优先顺序

对于立即生效的资源,只能有一个流量转移,即,该资源只能有一个练习运行可用区转移、客户发起的可用区转移或自动转移。当有多个流量转移正在进行时,Route 53 ARC 会按照优先顺序来确定哪个流量转移对资源有效。

优先顺序的总体原则是,您作为客户开始的区域移位优先于自动换档,后者优先于练习跑。也就是说,客户发起的可用区转移 > 自动转移 > 练习运行可用区转移。

下面的几个场景示例说明了不同转移的优先顺序:

  • 如果存在活动的自动转移,并且您为启用了自动转移的资源启动了可用区转移,则您启动的可用区转移将处于 APPLIED 状态。资源此时已从可用区转移所适用的可用区中转移出去。如果可用区转移在 Amazon 结束自动转移之前结束,那么自动转移将变为 APPLIED 转移。因此,资源 Amazon 已从正在进行自动转移的可用区移开。

  • 如果您为启用了自动移位的资源启动了有效的区域移动,并 Amazon 启动了自动移位,则该资源存在自动移位。但是,可用区转移设置为 APPLIED,自动转移设置为 NOT APPLIED,直到可用区转移结束。然后,自动换档的状态将更新为,APPLIED并且自动换档会转移资源的流量,直到自动换档 Amazon 结束。

  • 如果某个资源有一个活动练习运行,并且您为该资源启动了可用区转移,从而转移了同一可用区的流量,则该练习运行将中断。如果您启动可用区转移,将流量从其它可用区转移出去,则练习运行将照常进行。

  • 如果资源存在活动可用区转移,并且 Route 53 ARC 计划启动一个练习运行,则该练习运行将推迟一个小时。然后 Route 53 ARC 会再次尝试启动练习运行。Route 53 ARC 会继续每小时检查一次,直到可以启动练习运行为止。

当前对资源有效的流量转移已将应用的可用区转移状态设置为 APPLIED。任何时候只有一个转移设置为 APPLIED。其它正在进行的转移均设置为 ACTIVE

停止资源的活动自动转移或练习运行

若要对资源停止正在进行的自动转移,请禁用该资源的可用区自动转移。

当您禁用可用区自动转移时,对资源的练习运行配置不会受到影响。该资源仍会按相同的计划进行定期练习运行。如果除了禁用自动转移之外您还想停止练习运行,则必须删除与该资源关联的练习运行配置。

删除练习运行配置后,将 Amazon 停止执行每周将资源流量从可用区转移的练习运行。此外,由于可用区自动转移需要练习运行,因此当您使用 Route 53 ARC 控制台删除练习运行配置时,此操作还会禁用针对资源的可用区自动转移。但是,请注意,如果您使用可用区自动转移 API 来删除练习运行,则必须先禁用针对资源的可用区自动转移。

要停止活动的练习运行,请取消练习运行可用区转移。有关更多信息,请参阅 取消练习运行可用区转移

流量是如何转移出去的

对于自动转移和练习运行可用区转移,使用与 Route 53 ARC 用于客户发起的可用区转移相同的机制将流量从可用区转移出去。为了将已关闭跨区域负载均衡的负载均衡器的流量从可用区转移出去,Route 53 ARC 将可用区的负载均衡器运行状况检查设置为不正常,从而使其运行状况检查失败。运行状况检查不正常进而会导致 Amazon Route 53 从 DNS 中收回该资源的对应 IP 地址,因此流量会从该可用区重定向。现在,新连接将 Amazon Web Services 区域 改为路由到中的其他可用区。

使用自动换档时,当可用区恢复并 Amazon 决定结束自动换档时,Route 53 ARC 会撤消运行状况检查流程,请求恢复 Route 53 的运行状况检查。然后,将恢复原来的可用区 IP 地址,并且如果运行状况检查继续正常运行,可用区会再次包含到负载均衡器的路由范围中。

务必注意,自动转移并非基于监控负载均衡器或应用程序底层运行状况的运行状况检查。通过请求将运行状况检查设置为不正常,Route 53 ARC 可以使用运行状况检查功能将流量从可用区移走,然后在结束自动转移或可用区转移时将运行状况检查再次恢复为正常。

练习运行警报

在分区自动换档中,您可以为练习跑指定两个 CloudWatch 警报。第一个警报结果警报是必需的。您应该配置结果警报,以便在每次为期 30 分钟的练习运行期间,在将流量从可用区转移出去时监控应用程序的运行状况。

为了使练习生效,请指定一个警报作为结果警报,该 CloudWatch 警报用于监控资源或应用程序的指标,当您的应用程序因失去一个可用区而受到不利影响时,这些指标会以ALARM状态做出响应。有关更多信息,请参阅 配置区域自动移位时的最佳实践中的为练习运行指定的警报部分。

结果警报还提供了 Route 53 ARC 针对每次练习运行所报告的练习运行结果的信息。如果警报进入 ALARM 状态,则练习运行结束,练习运行结果返回为 FAILED。如果练习运行完成了 30 分钟的计划测试期,并且结果警报未进入 ALARM 状态,则结果将返回为 SUCCEEDED练习运行结果部分提供了所有结果值的列表及其描述。

您也可以选择指定第二个警报,即阻止警报。阻止警报将在处于 ALARM 状态时阻止练习运行启动或继续。当此警报处于 ALARM 状态时,它会阻止练习运行流量转移启动,并停止任何正在进行的练习运行。

例如,在具有多个微服务的大型架构中,当一个微服务遇到问题时,您通常希望停止应用程序环境中的所有其它更改,其中包括阻止练习运行。

阻止日期和阻止时段 (UTC)

您可以选择阻止特定日历日期或特定时段(即采用 UTC 时间的日期和时间)的练习运行。

例如,如果您计划于 2024 年 5 月 1 日进行应用程序更新,并且您不希望练习运行在此时转移流量,则可以将阻止日期设置为 2024-05-01

或者,假设您每周三天运行业务报告摘要。对于这种情况,您可以将采用 UTC 时间的以下重复日期和时间设置为阻止时段,例如:MON-20:30-21:30 WED-20:30-21:30 FRI-20:30-21:30