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

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

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

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

使用 zonal autoshift,您需要配置练习运行,即ARC定期将资源流量从一个可用区转移出去。ARC对于每个与之关联的练习运行配置的资源,安排大约每周进行一次练习。每个资源的练习运行都是独立安排的。

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

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

主题

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

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

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

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

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

当ARC排程、开始和结束练习时

ARC每周安排一次资源练习,持续大约 30 分钟。ARC独立安排、开始和管理每种资源的练习跑。ARC不会批量使用同一个账户中的资源进行练习。

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

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

此外,还有几种情况是ARC无法为资源启动计划练习。

为了应对资源中断和阻塞的练习运行,请执行以下ARC操作:

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

  • 如果在计划开始某项资源的练习时存在阻塞限制,ARC则不会开始练习。ARC继续定期监控,以确定是否还有一个或多个阻塞限制。当没有任何阻塞限制时,ARC开始对资源进行练习。

以下是阻止资源开始或继续练习运行的阻塞约束的示例:ARC

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

  • 如果某个地区有当前 Amazon 赛事,则ARC不开始为资源而进行练习,并结束该区域的活跃练习。

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

练习跑和自动换档通知

通过设置 Amazon 通知,您可以选择收到有关练习跑和资源自动轮班的 EventBridge 通知。当你尚未为任何资源启用区域自动移位时,你也可以设置 EventBridge 通知,即自动移观察者通知。借助 autoshift 观察者通知,您会收到有关可用区可能受ARC损时开始的所有自动换档的通知。请注意,您必须在每个要接收通知 Amazon Web Services 区域 的内容中配置此选项。

要查看启用自动移位旁听者通知的步骤,请参阅 启用和使用分区自动换档。要了解有关通知选项以及如何在中配置通知选项的更多信息 EventBridge,请参阅在 Amazon 上使用区域自动换档 EventBridge

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

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

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

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

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

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

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

  • 如果资源有活跃的区域移动,ARC并且计划开始练习,则练习跑将推迟一个小时。然后再次ARC尝试开始练习。ARC继续每小时检查一次,直到可以开始练习跑为止。

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

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

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

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

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

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

流量是如何转移出去的

对于自动换档和练习跑区域换档,使用与客户启动的区域换档相同的机制将流量从可用区转移出去。ARC要将已关闭跨区域负载平衡的负载均衡器的流量从可用区转移出去,请将可用区的负载均衡器运行状况检查ARC设置为不健康,使其无法通过运行状况检查。反过来,不健康的运行状况检查会导致 Amazon Route 53 从中撤回资源的相应的 IP 地址DNS,从而将流量从可用区重定向。现在,新连接将 Amazon Web Services 区域 改为路由到中的其他可用区。

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

务必注意,自动转移并非基于监控负载均衡器或应用程序底层运行状况的运行状况检查。ARC使用运行状况检查将流量从可用区域移开,方法是请求将运行状况检查设置为不健康,然后在结束自动移位或区域转移时将运行状况检查恢复到正常状态。

练习运行警报

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

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

结果警报还提供练习跑结果的信息,这些信息会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