

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

# ARC 中的可用区自动转移
<a name="arc-zonal-autoshift"></a>

使用区域自动切换，您可以授权 AWS 在活动期间代表您转移应用程序的资源流量从可用区 (AZ)，以帮助缩短恢复时间。 AWS 当内部遥测数据显示存在可能影响客户的可用区域受损时，会启动自动换档。 AWS 启动自动切换时，您为区域自动切换配置的资源的应用程序流量开始从可用区转移出去。

请注意，ARC 不会检查单个资源的运行状况。 AWS 当 AWS 遥测检测到存在可能影响客户的可用区域受损时，就会启动自动换档。在某些情况下，没有受到影响的资源可能会被转移出去。

通过区域自动切换，您还可以代表您授权 AWS 将应用程序的资源流量从可用区转移出来，用于常规练习。可用区自动转移需要练习运行。ARC 为练习运行启动的可用区转移可帮助您确保在自动转移期间将流量从可用区转移出去对您的应用程序是安全的。通过启动可用区转移，将资源的流量从可用区转移出去，练习运行能够定期测试您的应用程序能否在没有一个可用区的情况下正常运行。每周进行一次练习运行，并提供结果（如 `SUCCEEDED` 或 `FAILED`），助您了解应用程序是否按预期运行。

**重要**  
在配置练习运行或启用可用区自动转移之前，强烈建议您在部署应用程序资源的区域的所有可用区中预先扩展应用程序资源容量。当自动转移或练习运行启动时，您不应依赖于按需扩展。可用区自动转移（包括练习运行）独立工作，且不会等待自动扩缩操作完成。依赖自动扩缩（而非预先扩展）可能会导致应用程序恢复时间延长。  
如果您使用自动扩缩来处理定期的流量周期，则强烈建议您配置自动扩缩的最小容量，以便在可用区丢失的情况下能够继续正常运行。

如果您计划启用可用区自动转移或配置练习运行，请在预先扩展应用程序资源容量之后，测试您的应用程序能否在某个可用区不可用的情况下正常运行。要进行此测试，请启动可用区转移，将资源的流量从可用区转移出去。

启用可用区自动转移后，建议您通过启动和评估按需练习运行可用区转移，验证您的应用程序在流量从可用区转移出去后是否仍能正常运行。然后，ARC 执行的定期练习运行可以帮助您持续确认您是否有足够的容量进行自动转移。

为确保可用区转移测试的有效性，需验证流量是否按预期从待移出可用区转移出去。例如，应用程序负载均衡器和网络负载均衡器都在 Amazon 中提供了每个可用区的指标 CloudWatch ，您可以使用这些指标来监控这一点。根据服务和客户端重复使用连接的时长，流量可能继续流向已移出的可用区，且持续时间可能长于预期。要了解更多信息，请参阅[限制客户端与您的端点保持连接的时间](arc-zonal-autoshift.considerations.md#ZAConsiderationsCurrentConnections)。

您可以在 ARC 控制台中为支持的资源启用可用区自动转移。或者，在 Amazon EC2 控制台中，您可以选择为特定的负载均衡器资源启用可用区自动转移。要详细了解如何使用 Elastic Load Balancing 启用区域自动切换，请参阅 Elastic Lo [ad Balancing 用户指南中的区域偏移](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/zonal-shift.html)。

自动转移和练习运行可用区转移是暂时的。通过自动切换，当受影响的可用区恢复时， AWS 会停止将资源流量从可用区转移出去。客户的应用程序流量会返回到区域中的所有可用区。在练习运行中，流量会从单个资源的可用区中转移出去约 30 分钟，然后再转移回区域中的所有可用区。

您可以将 Amazon EventBridge 通知配置为提醒您有关自动换档和练习跑的信息。有关更多信息，请参阅 [在 Amazon 上使用区域自动换档 EventBridge](eventbridge-zonal-autoshift.md)。

# 可用区自动转移和练习运行的工作原理
<a name="arc-zonal-autoshift.how-it-works"></a>

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

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

对于每次练习运行，ARC 都会记录结果。如果练习运行因阻止条件而中断，则练习运行结果不会标记为成功。有关练习运行结果的更多信息，请参阅[练习运行结果](arc-zonal-autoshift.considerations.md#ZAConsiderationsPracticeRunOutcomes)。

您可以将 Amazon EventBridge 通知配置为向您发送有关自动换档和练习跑的信息。有关更多信息，请参阅 [在 Amazon 上使用区域自动换档 EventBridge](eventbridge-zonal-autoshift.md)。

**Topics**
+ [可用区自动转移简介](arc-zonal-autoshift.how-it-works.about.md)
+ [何时 AWS 启动和停止自动换档](arc-zonal-autoshift.how-it-works.start-stop-auto.md)
+ [ARC 何时安排、启动和结束练习运行](arc-zonal-autoshift.how-it-works.scheduled-practice-runs.md)
+ [练习运行的容量检查](arc-zonal-autoshift.how-it-works.capacity-check.md)
+ [练习运行和自动转移通知](arc-zonal-autoshift.how-it-works.notifications.md)
+ [可用区转移的优先级](arc-zonal-autoshift.how-it-works.precedence.md)
+ [停止活动自动转移或练习运行](arc-zonal-autoshift.how-it-works.stop-shift.md)
+ [流量是如何转移出去的](arc-zonal-autoshift.how-it-works.how-traffic-shifted.md)
+ [练习运行警报](arc-zonal-autoshift.how-it-works.alarms.md)
+ [阻止时段和允许时段（采用 UTC 时间）](arc-zonal-autoshift.how-it-works.blocked-windows.md)

# 可用区自动转移简介
<a name="arc-zonal-autoshift.how-it-works.about"></a>

区域自动切换是一种代表您 AWS 将应用程序资源流量从可用区转移出去的功能。 AWS 当内部遥测数据显示存在可能影响客户的可用区域受损时，会启动自动换档。内部遥测包含来自多个来源的指标，包括 AWS 网络、Amazon EC2 和 Elastic Load Balancing 服务。

您必须为支持的 AWS 资源手动启用区域自动切换。

当您在一个区域的多个（通常是三个） AZs 的负载均衡器上部署和运行 AWS 应用程序，并预先扩展以支持静态稳定性时， AWS 可以通过使用自动移位功能转移流量，从而快速恢复可用区中的客户应用程序。通过将资源流量转移到该 AZs 地区的其他地方， AWS 可以缩短由停电、可用区硬件或软件问题或其他损伤造成的潜在影响的持续时间和严重程度。

ARC 支持的资源提供集成功能，可将指定可用区标记为运行状况不佳，这样可将流量从受影响的可用区转移出去。

为资源启用可用区自动转移时，还必须为该资源配置练习运行。 AWS 大约每周执行一次 30 分钟的练习运行，以帮助您确保有足够的容量来运行您的应用程序，而无需使用区域中的一个可用区。

与可用区转移一样，在某些特定情况下，可用区自动转移不会将流量从可用区转移出去。例如，如果中的负载均衡器目标组 AZs 没有任何实例，或者所有实例都运行状况不佳，则负载均衡器处于失效打开状态，您无法移开其中一个实例。 AZs

要了解有关可用区自动转移的更多信息，请参阅 [ARC 中的可用区自动转移](arc-zonal-autoshift.md)。

# 何时 AWS 启动和停止自动换档
<a name="arc-zonal-autoshift.how-it-works.start-stop-auto"></a>

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

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

可用区自动转移功能专为已针对 AWS 区域中的所有可用区预先扩展其应用程序资源的客户而设计。当自动转移或练习运行启动时，您不应依赖于按需扩展。

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

# ARC 何时安排、启动和结束练习运行
<a name="arc-zonal-autoshift.how-it-works.scheduled-practice-runs"></a>

ARC 每周为资源安排一次练习运行，时长约为 30 分钟。ARC 独立安排、启动和管理每个资源的练习运行。ARC 不会批量处理同一账户中资源的练习运行。您也可以自己启动按需练习运行，以帮助验证您的设置对于可用区自动转移事件是否安全。

当练习运行在预期的持续时间内不间断进行时，它的结果会标记为 `SUCCESSFUL`。还有其他几种可能的结果：`FAILED`、`INTERRUPTED`、`CAPACITY_CHECK_FAILED` 和 `PENDING`。结果值和描述包含在[练习运行结果](arc-zonal-autoshift.considerations.md#ZAConsiderationsPracticeRunOutcomes)部分。

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

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

为了应对针对资源的中断和被阻止的练习运行，ARC 会执行以下操作：
+ 如果针对资源的练习运行在进行期间中断，则 ARC 会认为每周的练习运行已经结束，并会计划在下一周为该资源安排一次新的练习运行。在这种情况下，每周练习的结果为 `INTERRUPTED`，而不是 `FAILED`。只有当监控练习运行的结果警报在练习运行期间进入 `ALARM` 状态时，练习运行结果才会设置为 `FAILED`。
+ 如果在计划启动针对资源的练习运行时存在阻止约束，则 ARC 不会启动练习运行。ARC 将继续定期监控，以确定是否仍存在一个或多个阻止约束。当没有任何阻止约束时，ARC 会对资源启动练习运行。

以下是阻止 ARC 对资源启动或继续练习运行的阻止约束示例：
+ 当有 AWS Fault Injection Service 实验进行时，ARC 不会开始或继续练习。如果在 ARC 安排练习跑开始时某个 AWS FIS 赛事处于活动状态，则 ARC 不会开始练习跑。ARC 在整个练习跑中监视阻挡限制，包括 AWS FIS 赛事。如果 AWS FIS 活动在练习跑处于活动状态时开始，ARC 将结束练习跑，并且在资源下一次定期安排的练习跑之前不会尝试开始另一场练习。
+ 如果某个地区有当前 AWS 赛事，ARC 不会开始为资源而开始练习，而是结束该区域的活跃练习。

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

# 练习运行的容量检查
<a name="arc-zonal-autoshift.how-it-works.capacity-check"></a>

当练习运行启动时，为了暂时将流量从可用区移出，ARC 会进行检查，验证您在其他可用区中是否有足够的容量来安全地将流量从可用区转移出去。如果没有足够的可用容量，则练习运行的流量转移不会启动，且练习运行将结束。

此外，在 ARC 结束自动转移启动的流量转移之前，当可用区自动转移完成时，ARC 会对负载均衡器资源进行容量检查。如果自动转移结束时容量检查失败，则流量不会转移回原来的可用区。

仅对负载均衡器和 Auto Scaling 组完成容量平衡检查。

对于负载均衡器资源，容量检查可验证与负载均衡器关联的运行状况良好的主机是否分布在各个可用区中。具体而言，容量检查可确保运行状况良好的主机的数量在注册资源的所有可用区中保持均衡。对于容量检查，均衡意味着每个可用区的正常容量与其他区域相当，差异很小。

请注意，容量检查不适用于目标组类型为 Lambda 的负载均衡器，也不适用于应用程序负载均衡器，因为这些目标不是按区域配置的。

还完成了 Auto Scaling 群组的容量检查。对于 Auto Scaling 组，容量检查会验证 Auto Scaling 组的总健康区域容量（即所有可用区域中运行状况良好的主机总数）是否符合为该组设置的所需容量。

**容量检查何时失败**

当容量检查发现资源的可用容量不均衡时，练习运行的结果为 `CAPACITY_CHECK_FAILED`。要详细了解容量检查失败的原因，请参阅 `ZonalShiftSummary` 的 Comment 字段。要查找练习运行可用区转移的 Comment 字段，请执行以下操作：

1. 使用 AWS CLI，列出您在使用 [ListZonalShifts](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListZonalShifts.html)API 操作的练习运行中指定的资源的区域偏移。

   FOr 例如，要返回区域偏移，可以运行类似于以下内容的命令：

   ```
   aws arc-zonal-shift start-practice-run 
       --resource-identifier="arn:aws:elasticloadbalancing:Region:111122223333:ExampleALB123456890"
   ```

1. 查看返回的 `ZonalShiftSummary` 对象数组，找出由于容量检查而失败的练习运行的可用区转移。

1. 要了解适用的可用区转移，请查看 `Comment` 字段中的信息。

# 练习运行和自动转移通知
<a name="arc-zonal-autoshift.how-it-works.notifications"></a>

通过设置 Amazon 通知，您可以选择收到有关练习跑和资源自动轮班的 EventBridge 通知。即使您尚未为任何资源启用区域自动切换（称为*自动移*位观察者 EventBridge 通知），也可以设置通知。通过自动转移观察者通知，您可以在可用区可能受影响时，收到 ARC 启动的所有自动转移的相关通知。请注意，您必须在每个要接收通知 AWS 区域 的内容中配置此选项。

要查看启用自动转移观察者通知的步骤，请参阅[启用或禁用自动转移观察者通知](arc-zonal-autoshift.enable-autoshift-observer.md)。要了解有关通知选项以及如何在中配置通知选项的更多信息 EventBridge，请参阅[在 Amazon 上使用区域自动换档 EventBridge](eventbridge-zonal-autoshift.md)。

# 可用区转移的优先级
<a name="arc-zonal-autoshift.how-it-works.precedence"></a>

在给定时间，应用的可用区转移不能超过一个。也就是说，只有一家诊所对资源进行区域移动、客户启动的区域移动、自动移位或 AWS FIS 实验。当启动第二次可用区转移时，ARC 会按照优先级来确定哪个可用区转移类型对资源有效。

划分优先级的一般原则是，您作为客户启动的可用区转移优先于其他转移类型。但是，请注意，当前 AWS启动的练习会阻止您开始按需练习。

下面的几个场景示例说明了 ARC 中优先级的运行方式：


| 应用的可用区转移类型 | 发起的可用区转移类型 | 结果 | 
| --- | --- | --- | 
| AWS FIS 实验 | 练习运行 | 练习跑将无法开始，因为 AWS FIS 实验优先。 | 
| AWS FIS 实验 | 手动可用区转移 |  AWS FIS 实验将被取消，并且将应用手动分区偏移。 | 
| AWS FIS 实验 | 区域自动换档 |  AWS FIS 实验将被取消，并将应用区域自动移位。 | 
| AWS FIS 实验 | AWS FIS 实验 | 启动的 AWS FIS 实验将无法启动，因为现有实验正在运行，触发了 AWS FIS 自动移位动作。 | 
| 练习运行 | 手动可用区转移 | 练习运行将被取消，结果将设置为 INTERRUPTED，并将应用可用区转移。 | 
| 练习运行 | AWS FIS 实验 | 练习运行将被取消，结果将设置为 INTERRUPTED，并将应用 AWS FIS 实验。 | 
| 练习运行 | 区域自动换档 | 练习运行将被取消，结果将设置为 INTERRUPTED，并将应用可用区自动转移。 | 
| 手动可用区转移 | 练习运行 | 练习运行将无法启动。 | 
| 手动可用区转移 | AWS FIS 实验 |  AWS FIS 实验将无法启动，如果实验已经在进行中，则实验将失败。 | 
| 手动可用区转移 | 区域自动换档 | 资源的可用区自动转移状态将为 ACTIVE 而非 APPLIED。手动可用区转移优先。 | 
| 区域自动换档  | AWS FIS 实验 |  AWS FIS 实验将无法启动，或者如果正在进行则会失败。 | 
| 区域自动换档  | 手动可用区转移 | 资源的可用区自动转移状态将为 ACTIVE 而非 APPLIED。手动可用区转移优先。 | 
| 区域自动换档  | 练习运行 | 练习运行将无法启动，因为可用区自动转移优先。 | 

当前对资源有效的流量转移已将应用的可用区转移状态设置为 `APPLIED`。任何时候只有一个转移设置为 `APPLIED`。其他正在进行的转移会设置为 `NOT_APPLIED`，但会保持 `ACTIVE` 状态。

# 停止资源的活动自动转移或练习运行
<a name="arc-zonal-autoshift.how-it-works.stop-shift"></a>

要停止针对资源进行的自动转移，请禁用可用区转移。

该资源仍会按相同的计划进行定期练习运行。如果除了禁用自动转移之外您还想停止练习运行，则必须删除与该资源关联的练习运行配置。

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

有关更多信息，请参阅[取消可用区自动转移](arc-zonal-autoshift.canceling-an-autoshift.md)和[启用并使用可用区自动转移](arc-zonal-autoshift.start-cancel.md)。

# 流量是如何转移出去的
<a name="arc-zonal-autoshift.how-it-works.how-traffic-shifted"></a>

对于自动转移和练习运行可用区转移，使用与 ARC 用于客户发起的可用区转移相同的机制将流量从可用区转移出去。如果运行状况检查结果为“运行状况不佳”，Amazon Route 53 会将该资源对应的 IP 地址从 DNS 中移除，从而使流量从该可用区转移出去。现在，新连接将 AWS 区域 改为路由到中的其他可用区。

使用自动换档时，当可用区恢复并 AWS 决定结束自动换档时，ARC 会撤消运行状况检查流程，请求恢复 Route 53 的运行状况检查。然后，原始可用区 IP 地址将被恢复，如果运行状况检查结果持续为“运行状况良好”，可用区会重新被纳入应用程序的路由范围。

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

# 练习运行警报
<a name="arc-zonal-autoshift.how-it-works.alarms"></a>

在区域自动切换中，您可以为练习跑指定两种类型的 CloudWatch 警报：结果警报和阻塞警报。

**结果警报（必填）**  
 对于第一种类型的警报，即*结果警报*，至少需要指定一个警报。您应该配置结果警报，以便在每次为期 30 分钟的练习运行期间，在将流量从可用区转移出去时监控应用程序的运行状况。  
为了使练习生效，请将至少一个符合以下两个条件的 CloudWatch 警报指定为结果警报：  
警报监控资源或应用程序的指标  
AND  
当应用程序因丢失一个可用区而受到不利影响时，警报会以 `ALARM` 状态进行响应。  
有关更多信息，请参阅 [配置可用区自动转移的最佳实践](arc-zonal-autoshift.considerations.md)中的**为练习运行指定的警报**部分。  
结果警报还提供了 ARC 针对每次练习运行所报告的*练习运行结果*的信息。如果结果警报进入 `ALARM` 状态，ARC 将结束练习运行并返回练习运行的 `FAILED` 结果。如果练习运行完成了 30 分钟的计划测试期，并且您指定的任何结果警报均未进入 `ALARM` 状态，则结果将返回 `SUCCEEDED`。[练习运行结果](arc-zonal-autoshift.considerations.md#ZAConsiderationsPracticeRunOutcomes)部分提供了所有结果值的列表及其描述。

**阻止警报（可选）**  
您也可以选择指定第二个警报类型，即*阻止警报*。在一个或多个警报处于 `ALARM` 状态时，阻止警报将阻止练习运行启动或继续。当至少一个警报处于 `ALARM` 状态时，阻止警报会阻止练习运行流量转移启动，并停止任何正在进行的练习运行。  
例如，在具有多个微服务的大型架构中，当一个微服务遇到问题时，您通常希望停止应用程序环境中的所有其它更改，其中包括阻止练习运行。您可以在 ARC 中添加阻止警报来完成此操作。

# 阻止时段和允许时段（采用 UTC 时间）
<a name="arc-zonal-autoshift.how-it-works.blocked-windows"></a>

您可以选择*阻止*或*允许*特定日历日期或特定时段（即采用 UTC 时间的特定日期和时间）的练习运行。

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

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

或者，您可以决定将星期三和星期五中午至下午 5:00 设置为 ARC 启动练习运行的理想时段，以测试您的设置。对于这种情况，您可以将采用 UTC 时间的以下重复日期和时间设置为允许时段，例如：`WED-12:00-17:00 FRI-12:00-17:00`。

# AWS 区域 区域自动换档的可用性
<a name="introduction-region-zonal-autoshift"></a>

目前，商业 AWS 区域版以及中国区域（即中国（北京）区域和中国（宁夏）区域均提供区域移位和区域自动换档。

使用 Amazon 应用程序恢复控制器（ARC）的资源可包含其他注意事项。有关更多信息，请参阅 [支持的资源](arc-zonal-shift.resource-types.md)。

有关 ARC 的区域列表以及区域支持和服务端点的详细信息，请参阅《Amazon Web Services 一般参考》**中的 [Amazon 应用程序恢复控制器（ARC）端点和配额](https://docs.aws.amazon.com/general/latest/gr/r53arc.html)。

# 可用区自动转移组件
<a name="introduction-components-zonal-autoshift"></a>

下图说明了一个示例，即当内部遥测功能指示可用区存在可能影响客户的问题时，自动转移会将流量从可用区转移出去。

![\[包含三个可用区的自动转移的示意图\]](http://docs.aws.amazon.com/zh_cn/r53recovery/latest/dg/images/ZonalAutoshiftDiagram.png)


以下是 ARC 中可用区自动转移功能的组件。

**可用区自动转移**  
可用区自动转移无需您执行任何操作即可将资源的流量转移出去。区域自动换档是 ARC 中的一项功能，当内部遥测显示存在可能影响客户的可用区受损时，它会 AWS 启动自动换档。请注意，在某些情况下，没有受到影响的资源可能会被转移出去。

**练习运行**  
为资源启用区域自动移位时，还必须为该资源配置区域自动移*位练习运行*。 AWS 大约每周进行一次练习，持续大约 30 分钟。您也可以按需安排练习运行。  
练习运行可确保您的应用程序可以在丢失一个可用区的情况下正常运行。在练习运行中，通过区域 AWS 转移将资源的流量从一个可用区转移出去，然后在练习运行结束时将流量转移回去。

**练习运行配置**  
使用练习运行配置，您可以定义 ARC 为使用可用区自动转移的资源启动练习运行的时间范围（阻止时段或允许时段）。您还可以定义 AWS 练习跑的 CloudWatch警报。您可以随时编辑练习运行配置，添加或更改阻止时段或允许时段，或者更新练习运行的警报。  
要启用可用区自动转移，您必须为资源准备好练习运行配置。  
您可以删除练习运行，但必须先禁用可用区自动转移。

**练习运行警报**  
在配置练习跑时，您可以根据资源和应用程序要求指定 CloudWatch 警报（您首先在中创建 CloudWatch）。如果您的应用程序受到练习运行的不利影响，则您指定的警报可以阻止练习运行启动，或可以停止正在进行的练习运行。  
如果您指定的警报进入 `ALARM` 状态，ARC 将结束练习运行的可用区转移，这样资源的流量就不会再从可用区转移出去。  
您可以为练习运行指定两种类型的警报：一种是*结果*警报，用于在练习运行期间监控资源和应用程序的运行状况；另一种是*阻止*警报，您可以将其配置为防止练习运行启动或停止正在进行的练习运行。至少需要一个结果警报；阻止警报是可选的。

**练习运行结果**  
ARC 会报告每次练习运行的结果。以下是可能的练习跑结果：  
+ **待处理：**练习运行的可用区转移处于活动状态（正在进行中）。目前还没有结果可以返回。
+ **已成功：**在练习运行期间，结果警报未进入 `ALARM` 状态，练习运行完成了整 30 分钟的测试周期。
+ **已中断：**练习运行结束的原因并非结果警报进入 `ALARM` 状态。练习运行中断的原因可能有多种。例如，由于为练习运行指定的阻止警报进入 `ALARM` 状态而结束的练习运行的结果为 `INTERRUPTED`。有关出现 `INTERRUPTED` 结果的原因的详细信息，请参阅[练习运行结果](arc-zonal-autoshift.considerations.md#ZAConsiderationsPracticeRunOutcomes)。
+ **已失败：**在练习运行期间，结果警报进入了 `ALARM` 状态。
+ **CAPACITY\$1CHECK\$1FAILED：**对跨可用区的负载均衡和自动扩缩组资源的均衡容量检查失败。

**内置安全规则**  
ARC 中内置的安全规则可防止一个资源同时发生多个流量转移。也就是说，针对同一资源，只能执行一次客户发起的可用区转移、练习运行可用区转移（由 AWS 或客户发起）或自动转移，才能主动将流量从可用区转移出去。例如，如果您对某个资源启动可用区转移，而该资源当前正在通过自动转移而转移出去，则优先进行可用区转移。有关更多信息，请参阅[可用区转移的优先级](arc-zonal-autoshift.how-it-works.precedence.md#ZAShiftPrecedence)。

**资源标识符**  
要为其启用可用区自动转移的资源的标识符，即资源的 Amazon 资源名称（ARN）。您只能为账户中受 ARC 支持的 AWS 服务内的资源启用可用区自动转移。

**托管资源**  
应用程序负载均衡器会自动在 ARC 中注册资源以进行可用区自动转移。其他资源必须手动选择才能进行可用区自动转移。

**资源名称**  
ARC 中托管资源的名称。

**已应用状态**  
已应用状态指示资源的流量转移是否有效。配置可用区自动转移时，一个资源可以有多个活动的流量转移，即练习运行可用区转移、客户发起的可用区转移或自动转移。但是，仅应用一个*转移*，也就是说，即一次只有一个转移对资源有效。状态为 `APPLIED` 的转移可确定资源的应用程序流量已转移出去的可用区，以及该流量转移何时结束。

**转移类型**  
定义可用区转移类型。可用区转移可以为以下类型之一：  
+ **ZONAL\$1SHIFT**
+ **ZONAL\$1AUTOSHIFT**
+ **PRACTICE\$1RUN**
+ **FIS\$1EXPERIMENT**

# 可用区自动转移的数据面板和控制面板
<a name="data-and-control-planes-zonal-autoshift"></a>

在规划失效转移和灾难恢复时，请考虑失效转移机制的弹性。建议您确保在失效转移期间所依赖的机制高度可用，这样在灾难场景中有需要时就能使用它们。通常，应尽可能在机制中使用数据面板功能，以获得较高的可靠性和容错能力。考虑到这一点，请务必了解服务的功能如何在控制面板和数据面板之间划分，以及何时可以依赖服务的数据面板可预期的极高可靠性。

一般而言，*控制面板*允许您执行基本的管理功能，例如在服务中创建、更新和删除资源。*数据面板*提供服务的核心功能。

有关数据平面、控制平面以及如何 AWS 构建服务以满足高可用性目标的更多信息，请参阅 Amazon Builders Library 中的 “[使用可用区的静态稳定性” 论文](https://aws.amazon.com/builders-library/static-stability-using-availability-zones/)。

# ARC 中可用区自动转移的定价
<a name="introduction-pricing-zonal-autoshift"></a>

对于区域自动切换，在 AWS 确定存在可能对客户应用程序产生不利影响的潜在问题时，代表您将流量从可用区域 AWS 转移出受支持资源。启用可用区自动转移不收取任何额外费用。

有关 ARC 的详细定价信息和定价示例，请参阅 [ARC 定价](https://aws.amazon.com/application-recovery-controller/pricing/)。

# 配置可用区自动转移的最佳实践
<a name="arc-zonal-autoshift.considerations"></a>

在 Amazon 应用程序恢复控制器（ARC）中启用可用区自动转移时，请注意以下最佳实践和注意事项。

可用区自动转移包括两种类型的流量转移：自动转移和练习运行可用区转移。
+ 借 AWS 助*自动切换*，可在活动期间代表您转移可用区的应用程序资源流量，从而缩短恢复时间。
+ 借助*练习运行*，ARC 代表您启动可用区转移，或者您启动可用区转移练习运行。 AWS 练习运行区域转移将资源从可用区域转移出可用区，然后按每周的节奏再次转移回来。练习运行可帮助您确保已为区域中的可用区纵向扩展了足够的容量，以便您的应用程序能够容忍丢失一个可用区。

在使用自动转移和练习运行时，有几个最佳实践和注意事项需要牢记。在启用可用区自动转移或为资源配置练习运行之前，请先阅读以下主题。

**主题**
+ [限制客户端与您的端点保持连接的时间](#ZAConsiderationsCurrentConnections)
+ [预先扩展您的资源容量并测试流量的转移](#ZAConsiderationsCapacityPrescaling)
+ [注意资源类型和限制](#ZAConsiderationsResourceRequirements)
+ [指定练习运行警报](#ZAConsiderationsPracticeRunAlarms)
+ [评估练习运行结果](#ZAConsiderationsPracticeRunOutcomes)

**限制客户端与您的端点保持连接的时间**  
当 Amazon 应用程序恢复控制器（ARC）将流量从受影响的可用区中转移出去时（例如使用可用区转移或可用区自动转移），ARC 用来转移应用程序流量的机制是 DNS 更新。DNS 更新会导致所有新连接都避开受影响的位置。但是，先前已打开连接的客户端可能会继续向受影响的位置发出请求，直到客户端重新连接。为确保快速恢复，建议您限制客户端与您的端点保持连接的时间。  
如果使用的是应用程序负载均衡器，则可以使用 `keepalive` 选项来配置连接的持续时间。建议您降低 `keepalive` 值，使其与应用程序的恢复时间目标保持一致，例如 300 秒。在选择 `keepalive` 时间时，请考虑此值在更频繁地重新连接（这可能会影响延迟）和更快地将所有客户端从受影响的可用区或区域移出之间是一个折中值。  
有关为应用程序负载均衡器设置 `keepalive` 选项的更多信息，请参阅《应用程序负载均衡器用户指南》中的 [HTTP 客户端保持连接持续时间](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#http-client-keep-alive-duration)。

**预先扩展您的资源容量并测试流量的转移**  
当 AWS 将流量从一个可用区转移出来进行区域转移或自动切换时，重要的是剩余的可用区能够满足更高的资源请求速率。这种模式称为*静态稳定性*。有关更多信息，请参阅 Amazon Builders' Library 中的[“使用可用区的静态稳定性”白皮书](https://aws.amazon.com/builders-library/static-stability-using-availability-zones/)。  
例如，如果您的应用程序需要 30 个实例来为其客户端提供服务，则应跨三个可用区预置 15 个实例，总共预置 45 个实例。通过这样做，当流量从一个可用区域 AWS 转移出去时（使用自动换档或在练习运行期间），仍然AWS 可以跨两个可用区为应用程序的客户端提供剩余的 30 个实例。  
ARC 中的区域自动切换功能可帮助您快速从可用区 AWS 的事件中恢复，因为您的应用程序的资源已预先扩展，可以在失去一个可用区的情况下正常运行。在为资源启用可用区自动转移之前，请在 AWS 区域的所有已配置可用区中扩展您的资源容量。然后，对资源启动可用区转移，以测试当流量从可用区转移出去时，您的应用程序是否仍能正常运行。  
使用可用区转移进行测试后，启用可用区自动转移并为应用程序资源配置练习运行。运行您自己的按需练习运行，以帮助确保您的配置得到正确扩展。使用区域自动转移进行定期练习运行可帮助您持续确保容量仍得到适当扩展。由于跨可用区有足够的容量，您的应用程序可以在自动转移期间不间断地继续为客户端提供服务。  
有关为资源启动可用区转移的更多信息，请参阅[ARC 中的可用区转移](arc-zonal-shift.md)。

**注意资源类型和限制**  
可用区自动转移支持将由可用区转移支持的所有资源的流量移出可用区。在一些特定的资源场景中，可用区自动转移不会将流量从可用区转移出来进行自动转移。  
例如，如果可用区中的负载均衡器目标组没有任何实例，或者所有实例都运行状况不佳，则负载均衡器进入打开失败状态。如果在这种情况下为负载均衡器 AWS 启动自动切换，则自动切换不会更改负载均衡器使用的可用区，因为负载均衡器已经处于失效打开状态。这是预料之中的行为。 AWS 区域 如果所有可用区都无法打开（不正常），Autoshift 不会导致一个可用区运行状况不佳，也不会将流量转移到其他可用区。  
要查看有关受支持资源的详细信息（包括所有需要注意的要求和例外情况），请参阅[支持的资源](arc-zonal-shift.resource-types.md)。

**指定练习运行警报**  
您必须为使用可用区自动转移执行的练习运行至少配置一种类型的警报（结果警报）。或者，您也可以配置第二种类型的警报（阻止警报）。  
在考虑为资源练习跑配置的 CloudWatch 警报时，请记住以下几点：  
+ 对于练习运行配置，您至少需要配置一个结果警报。对于结果警报，我们建议您将 CloudWatch 警报配置为在资源或应用程序的指标表明将流量从可用区转移出去会对性能产生不利影响时进入`ALARM`状态。例如，您可以确定资源的请求速率阈值，然后将警报配置为在超出该阈值时进入 `ALARM` 状态。您负责配置适当的警报，从而使 AWS 结束练习运行并返回 `FAILED` 结果。
+ 我们建议您遵循[架构AWS 完善的框架，该框架](https://docs.aws.amazon.com/wellarchitected/2022-03-31/framework/perf_monitor_instances_post_launch_establish_kpi.html)建议您将关键性能指标 (KPIs) 作为 CloudWatch警报来实现。如果您这样做，则可以使用这些警报来创建复合警报以用作安全触发器，以防止在练习运行可能导致应用程序未达到 KPI 要求的情况下启动练习运行。当警报不再处于 `ALARM` 状态时，ARC 将在下次为资源安排练习运行时启动练习运行。
+ 对于练习跑屏蔽警报，如果您选择配置一个（或多个），则可以选择跟踪用于表示您不希望 AWS 练习开始运行的特定指标，例如，当警报表示正在发生事件时。
+ 对于练习运行警报，您需要为每个警报指定亚马逊资源名称 (ARN)，因此必须先在 Amazon 中配置警报。 CloudWatch您指定的 CloudWatch 警报可以是复合警报，这样您就可以为应用程序和资源添加多个指标和检查，从而触发警报进入`ALARM`状态。或者，您可以配置单独的警报，然后为您的练习跑配置指定每种类型的多个警报。有关更多信息，请参阅 Amazon CloudWatch 用户指南中的[合并警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html)。
+ 确保您为练习跑指定的 CloudWatch 警报与您为其配置练习跑的资源位于同一区域。

**评估练习运行结果**  
ARC 会报告每次练习运行的结果。执行练习运行后，评估结果并确定是否需要采取措施。例如，您可能需要扩展容量或调整警报的配置。  
以下是可能的练习跑结果：  
+ **SUCCEEDED**：在练习运行期间，无结果警报进入 `ALARM` 状态，练习运行完成了整整 30 分钟的测试周期。
+ **FAILED**：在练习运行期间，至少一个结果警报进入了 `ALARM` 状态。
+ **已中断：**练习运行结束的原因并非结果警报进入 `ALARM` 状态。练习运行可能因各种原因而中断，包括以下几个原因：
  + 练习跑之所以结束，是因为在该地区 AWS 开始了自动换档 AWS 区域 或者该地区出现了警报情况。
  + 练习运行之所以结束，是因为已删除资源的练习运行配置。
  + 练习运行之所以结束，是因为已为可用区中的资源启动客户发起的可用区转移，而练习运行可用区转移已将流量从可用区中转移出去。
  + 练习跑已结束，因为无法再访问为练习运行配置指定的 CloudWatch 警报。
  + 练习运行之所以结束，是因为为练习运行指定的阻止警报进入 `ALARM` 状态。
  + 练习运行因未知原因而结束。
  + 练习运行已结束，因为发起了优先于它的可用区自动转移。请参阅[可用区转移的优先级](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.how-it-works.html#ZAShiftPrecedence)。
+ **CAPACITY\$1CHECK\$1FAILED：**对跨可用区的负载均衡和自动扩缩组资源的均衡容量检查失败。
+ **待处理：**练习运行处于活动状态（正在进行中）。目前还没有结果可以返回。

# 可用区自动转移 API 操作
<a name="actions.zonalautoshift"></a>

下表列出了可用于可用区自动转移的 ARC API 操作。有关使用区域自动移位 API 操作的示例 AWS CLI，请参阅。

有关如何在 AWS Command Line Interface中使用常见可用区自动转移 API 操作的示例，请参阅[使用 AWS CLI 带区域自动换档的示例](getting-started-cli-zonal-autoshift.md)。


| Action | 使用 ARC 控制台 | 使用 ARC API | 
| --- | --- | --- | 
| 创建练习运行配置 | 请参阅 [启用或禁用可用区自动转移](arc-zonal-autoshift.start-cancel.md#arc-zonal-autoshift.configure)。 | 请参阅 [CreatePracticeRunConfiguration](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_CreatePracticeRunConfiguration.html) | 
| 删除练习运行配置 | 请参阅 [配置、编辑或删除练习运行配置](arc-zonal-autoshift.edit-delete-practice-run.md)。 | 请参阅 [DeletePracticeRunConfiguration](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_DeletePracticeRunConfiguration.html) | 
| 列出自动转移 | 请参阅 [ARC 中的可用区自动转移](arc-zonal-shift.md)。 | 请参阅 [ListAutoshifts](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListAutoshifts.html) | 
| 列出要进行可用区自动转移的资源 | 请参阅 [支持的资源](arc-zonal-shift.resource-types.md)。 | 请参阅 [ListManagedResources](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListManagedResources.html) | 
| 获取要进行可用区自动转移的资源 | 请参阅 [支持的资源](arc-zonal-shift.resource-types.md)。 | 请参阅 [GetManagedResource](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_GetManagedResource.html) | 
| 编辑练习运行配置 | 请参阅 [配置、编辑或删除练习运行配置](arc-zonal-autoshift.edit-delete-practice-run.md)。 | 请参阅 [UpdatePracticeRunConfiguration](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_UpdatePracticeRunConfiguration.html) | 
| 启用或禁用可用区自动转移 | 请参阅 [启用或禁用可用区自动转移](arc-zonal-autoshift.start-cancel.md#arc-zonal-autoshift.configure)。 | 请参阅 [UpdateZonalAutoshiftConfiguration](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_UpdateZonalAutoshiftConfiguration.html) | 
| 启用或禁用自动转移观察者通知 | 请参阅 [启用并使用可用区自动转移](arc-zonal-autoshift.start-cancel.md)。 | 请参阅 [UpdateAutoshiftObserverNotificationStatus](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_UpdateAutoshiftObserverNotificationStatus.html) | 
| 启动练习运行 | 请参阅 [启动练习运行可用区转移](arc-zonal-autoshift.start-cancel.md)。 | 请参阅 [StartPracticeRun](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_StartPracticeRun.html) | 
| 取消练习运行 | 请参阅 [取消练习运行可用区转移](arc-zonal-autoshift.start-cancel.md)。 | 请参阅 [CancelPracticeRun](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_CancelPracticeRun.html) | 

# 使用 AWS CLI 带区域自动换档的示例
<a name="getting-started-cli-zonal-autoshift"></a>

本节介绍使用区域自动移位的简单应用示例，使用使用 API 操作在 AWS Command Line Interface Amazon 应用程序恢复控制器 (ARC) 中使用区域自动移位功能。这些示例旨在帮助您基本了解如何通过 CLI 来执行可用区自动转移。

可用区自动转移是 ARC 中的一项功能。使用 zonal autoshift，您可以授权 AWS 在活动期间代表您转移可用区域中支持的应用程序资源流量，以帮助缩短恢复时间。有关可执行可用区自动转移的资源的更多信息，请参阅[支持的资源](arc-zonal-shift.resource-types.md)。

可用区自动转移包括练习运行，它还可以将流量从可用区转移出去，以帮助验证自动转移对您的应用程序是否安全。

有关可用区自动转移 API 操作的列表和指向更多信息的链接，请参阅[可用区自动转移 API 操作](actions.zonalautoshift.md)。有关使用的更多信息 AWS CLI，请参阅《[AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/arc-zonal-shift/index.html)》。

**Topics**
+ [创建练习运行配置](getting-started-cli-update-zonal_autoshift.create-practice-run.md)
+ [启用或禁用自动转移](getting-started-cli-zonal-autoshift.update-autoshift.md)
+ [启动按需练习运行](getting-started-cli-zonal-autoshift.start-practice-run.md)
+ [取消正在进行的练习运行](getting-started-cli-zonal-autoshift.cancel-practice-run.md)
+ [取消正在进行的自动转移](getting-started-cli-zonal-autoshift.cancel-autoshift.md)
+ [编辑练习运行配置](getting-started-cli-zonal_autoshift.edit-practice-run-config.md)
+ [删除练习运行配置](getting-started-cli-zonal-autoshift.delete-practice-run-config.md)

# 创建练习运行配置
<a name="getting-started-cli-update-zonal_autoshift.create-practice-run"></a>

在能够为资源启用可用区自动转移之前，必须为该资源创建练习运行配置，以便为所需的练习运行选择选项。您可以通过使用 `create-practice-run-configuration` 命令，借助 CLI 为资源创建练习运行配置。

在为资源创建练习运行配置时，请注意以下几点：
+ 此时，唯一受支持的警报类型为 `CLOUDWATCH`。
+ 您必须使用与您的资源部署相同的 AWS 区域 警报。
+ 必须指定结果警报。可以选择指定阻止警报。
+ 可选择指定阻止/允许日期或阻止/允许时段。

您可以通过使用 `create-practice-run-configuration` 命令，借助 CLI 创建练习运行配置。

例如，要为资源创建练习运行配置，可使用如下命令：

```
aws arc-zonal-shift create-practice-run-configuration \
      --resource-identifier="arn:aws:elasticloadbalancing:Region:111122223333:ExampleALB123456890" \
      --outcome-alarms type=CLOUDWATCH,alarmIdentifier=arn:aws:cloudwatch:Region:111122223333:alarm:Region-MyAppHealthAlarm \
      --blocking-alarms type=CLOUDWATCH,alarmIdentifier=arn:aws:cloudwatch:Region:111122223333:alarm:Region-BlockWhenALARM \
      --blocked-dates 2023-12-01 --blocked-windows Mon:10:00-Mon:10:30
```

```
{
   "arn": "arn:aws:elasticloadbalancing:us-west-2:111122223333:ExampleALB123456890",
   "name": "zonal-shift-elb"
   "zonalAutoshiftStatus": "DISABLED",
   "practiceRunConfiguration": {
       "blockingAlarms": [
                  {
               "type": "CLOUDWATCH",
               "alarmIdentifier": "arn:aws:cloudwatch:us-west-2:111122223333:alarm:us-west-2-BlockWhenALARM"
           }
       ]
       "outcomeAlarms": [
           {
               "type": "CLOUDWATCH",
               "alarmIdentifier": "arn:aws:cloudwatch:us-west-2:111122223333:alarm:us-west-2-MyAppHealthAlarm"
           }
       ],
       "blockedWindows": [
           "Mon:10:00-Mon:10:30"
       ],
       "blockedDates": [
           "2023-12-01"
       ]
}
```

# 启用或禁用自动转移
<a name="getting-started-cli-zonal-autoshift.update-autoshift"></a>

您可以通过使用 CLI 更新可用区自动转移状态来对资源启用或禁用自动转移。要更改可用区自动转移状态，请使用 `update-zonal-autoshift-configuration` 命令。

例如，要对资源启用自动转移，请使用如下命令：

```
aws arc-zonal-shift update-zonal-autoshift-configuration \
      --resource-identifier="arn:aws:elasticloadbalancing:Region:111122223333:ExampleALB123456890" \
      --zonal-autoshift-status="ENABLED"
```

```
{
   "resourceIdentifier": "arn:aws:elasticloadbalancing:us-west-2:111122223333:ExampleALB123456890",
   "zonalAutoshiftStatus": "ENABLED"
}
```

# 启动按需练习运行
<a name="getting-started-cli-zonal-autoshift.start-practice-run"></a>

您可以在 CLI 中使用 `start-practice-run` 命令启动按需练习运行可用区转移。

例如，要对资源启动练习运行，请使用如下命令：

```
aws arc-zonal-shift start-practice-run 
    --resource-identifier="arn:aws:elasticloadbalancing:Region:111122223333:ExampleALB123456890" \
    "awayFrom": "usw2-az1",
```

```
{
    "awayFrom": "usw2-az1",
    "comment": "Practice run started. Shifting traffic away from Availability Zone usw2-az1.",
}
```

# 取消正在进行的练习运行
<a name="getting-started-cli-zonal-autoshift.cancel-practice-run"></a>

您可以在 CLI 中使用 `cancel-practice-run` 命令来取消正在进行的练习运行。

例如，要对资源取消练习运行，请使用如下命令：

```
aws arc-zonal-shift cancel-practice-run \
   --zonal-shift-id="="arn:aws:testservice::111122223333:ExampleALB123456890"
```

```
{
    "zonalShiftId": "2222222-3333-444-1111",
    "resourceIdentifier": "arn:aws:testservice::111122223333:ExampleALB123456890",
    "awayFrom": "usw2-az1",
    "expiryTime": 2024-11-15T10:35:42+00:00,
    "startTime": 2024-11-15T09:35:42+00:00,
    "status": "CANCELED",
    "comment": "Practice run canceled"
}
```

# 取消正在进行的自动转移
<a name="getting-started-cli-zonal-autoshift.cancel-autoshift"></a>

您可以在 CLI 中通过取消针对资源的可用区自动转移来取消正在进行的自动转移。要取消可用区自动转移，请使用 `cancel-zonal-shift command`。

```
aws arc-zonal-shift cancel-zonal-shift --zonal-shift-id 9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38
```

```
{
    "awayFrom": "usw2-az1",
    "comment": "Zonal autoshift started. Shifting traffic away from Availability Zone usw2-az1.",
    "expiryTime": "2024-12-17T22:29:38-08:00",
    "resourceIdentifier": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
    "startTime": "2024-12-17T21:27:26-08:00",
    "status": "CANCELED",
    "zonalShiftId": "9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38"
}
```

# 编辑练习运行配置
<a name="getting-started-cli-zonal_autoshift.edit-practice-run-config"></a>

您可以使用 CLI 编辑资源的练习运行配置，以更新不同的配置选项，例如，当 ARC 无法启动练习运行时，更改练习运行的警报或更新阻止日期或阻止时段。要编辑练习运行配置，请使用 `update-practice-run-configuration` 命令。

在为资源编辑练习运行配置时，请注意以下几点：
+ 此时，唯一受支持的警报类型为 `CLOUDWATCH`。
+ 您必须使用与您的资源部署相同的 AWS 区域 警报。
+ 必须指定结果警报。可以选择指定阻止警报。
+ 可选择指定阻止日期或阻止时段。
+ 您指定的阻止日期或阻止时段将替换任何现有值。

例如，要编辑资源的练习运行配置以指定新的阻止日期，请使用如下命令：

```
aws arc-zonal-shift update-practice-run-configuration \
      --resource-identifier="arn:aws:elasticloadbalancing:Region:111122223333:ExampleALB123456890" \
      --blocked-dates 2024-03-01
```

```
{
   "arn": "arn:aws:elasticloadbalancing:us-west-2:111122223333:ExampleALB123456890",
   "name": "zonal-shift-elb"
   "zonalAutoshiftStatus": "DISABLED",
   "practiceRunConfiguration": {
       "blockingAlarms": [
                  {
               "type": "CLOUDWATCH",
               "alarmIdentifier": "arn:aws:cloudwatch:us-west-2:111122223333:alarm:us-west-2-BlockWhenALARM"
           }
       ]
       "outcomeAlarms": [
           {
               "type": "CLOUDWATCH",
               "alarmIdentifier": "arn:aws:cloudwatch:us-west-2:111122223333:alarm:us-west-2-MyAppHealthAlarm"
           }
       ],
       "blockedWindows": [
           "Mon:10:00-Mon:10:30"
       ],
       "blockedDates": [
           "2024-03-01"
       ]
}
```

# 删除练习运行配置
<a name="getting-started-cli-zonal-autoshift.delete-practice-run-config"></a>

您可以删除资源的练习运行配置，但必须先对该资源禁用可用区自动转移。资源需要具有练习运行配置，才能启用可用区自动转移。定期练习运行有助于您确保应用程序可以在没有一个可用区的情况下正常运行。

要使用 CLI 删除练习运行配置，请先使用 `update-zonal-autoshift` 命令禁用可用区自动转移（如果需要）。然后，可使用 `delete-practice-run-configuration` 命令删除练习运行配置。

首先，使用如下命令对资源禁用可用区自动转移：

```
aws arc-zonal-shift update-zonal-autoshift-configuration \
      --resource-identifier="arn:aws:elasticloadbalancing:Region:111122223333:ExampleALB123456890" \
      --zonal-autoshift-status="DISABLED"
```

```
{
   "resourceIdentifier": "arn:aws:elasticloadbalancing:us-west-2:111122223333:ExampleALB123456890",
   "zonalAutoshiftStatus": "DISABLED"
}
```

然后，使用如下命令删除练习运行配置：

```
aws arc-zonal-shift delete-practice-run-configuration \
      --resource-identifier="arn:aws:elasticloadbalancing:Region:111122223333:ExampleALB123456890"
```

```
{
   "arn": "arn:aws:elasticloadbalancing:us-west-2:111122223333:ExampleALB123456890",
   "name": "TestResource",
   "zonalAutoshiftStatus": "DISABLED"
}
```

# 启用并使用可用区自动转移
<a name="arc-zonal-autoshift.start-cancel"></a>

本节介绍在 Amazon 应用程序恢复控制器（ARC）中使用可用区自动转移的过程。启用可用区自动转移后，您可以更改练习运行配置、启动按需练习运行、取消正在进行的转移（包括练习运行）或启用自动转移观察者通知。

## 启用或禁用可用区自动转移
<a name="arc-zonal-autoshift.configure"></a>

以下步骤说明了如何在 Amazon 应用程序恢复控制器（ARC）控制台上启用或禁用可用区自动转移。要以编程方式使用可用区转移，请参阅[可用区转移和可用区自动转移 API 参考指南](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)。

启用区域自动切换后，您授权 AWS 在活动期间代表您转移可用区的应用程序资源流量，以帮助缩短恢复时间。

## 启用或禁用可用区自动转移


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift](https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift)，打开 ARC 控制台。

1. 在**资源可用区自动转移配置**下，选择资源。

1. 在**操作**菜单中，选择**启用可用区自动转移**，然后按照步骤完成更新。

如果资源没有练习运行配置，则**启用可用区自动转移**不可用。要配置练习运行配置并启用可用区自动转移，请选择**配置可用区自动转移**。

**Topics**
+ [启用或禁用可用区自动转移](#arc-zonal-autoshift.configure)
+ [配置、编辑或删除练习运行配置](arc-zonal-autoshift.edit-delete-practice-run.md)
+ [取消可用区自动转移](arc-zonal-autoshift.canceling-an-autoshift.md)
+ [启动练习运行可用区转移](arc-zonal-autoshift.start-practice-run.md)
+ [取消练习运行可用区转移](arc-zonal-autoshift.cancel-practice-run.md)
+ [启用或禁用自动转移观察者通知](arc-zonal-autoshift.enable-autoshift-observer.md)

# 配置、编辑或删除练习运行配置
<a name="arc-zonal-autoshift.edit-delete-practice-run"></a>

本节中的步骤说明了如何在 Amazon 应用程序恢复控制器（ARC）控制台上编辑或删除练习运行配置。要以编程方式使用可用区转移（包括对练习运行配置进行更改），请参阅[可用区转移和可用区自动转移 API 参考指南](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)。

如果您在控制台中删除练习运行配置，则会禁用可用区自动转移。在可以通过 API 操作删除练习运行配置之前，必须禁用可用区自动转移。您可以在不启用可用区自动转移的情况下配置练习运行。但是，要为资源启用可用区自动转移，您需要为该资源配置练习运行。

# 配置练习运行


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift](https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift)，打开 ARC 控制台。

1. 选择**配置可用区自动转移**。

1. 选择要为可用区自动转移配置的资源。

1. 如果您不想 AWS 在发生事件时为资源启动自动移位，请选择禁用区域自动移位。 AWS 您可以选择继续使用向导来配置练习运行配置，而不启用自动转移。

1. 为资源选择练习运行选项。对于警报，您可以执行以下操作：
   + （必需）至少指定一个结果警报以监控该资源的练习运行。
   + （可选）为该资源的练习运行指定一个或多个阻止警报。

   有关更多信息，请参阅 [配置可用区自动转移的最佳实践](arc-zonal-autoshift.considerations.md)中的**为练习运行指定的警报**部分。

1. 或者，指定阻止时段或允许时段，以阻止或允许 ARC 为此资源启动练习运行。所有日期和时间均采用 UTC 时间。

1. 选中相应复选框，确认您已阅读确认说明。

1. 选择**创建**。

# 编辑练习运行配置


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift](https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift)，打开 ARC 控制台。

1. 在**资源可用区自动转移配置**下，选择资源。

1. 在**操作**菜单中，选择**编辑练习运行配置**。

1. 对练习运行配置进行更改，以执行以下一项或多项操作：
   + 对于警报，您可以执行以下操作：
     + 对于阻止警报，您可以添加一个或多个警报或删除警报。
     + 对于结果警报，您可以添加一个或多个警报或删除警报。至少需要一个结果警报，因此您无法删除配置中的所有结果警报。
   + 对于阻止时段和允许时段，您可以添加新的日期或时间，也可以删除或更新现有的日期或时间。所有日期和时间均采用 UTC 时间。

1. 选择**保存**。

# 删除练习运行配置


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift](https://console.aws.amazon.com/route53recovery/zonalshift/home#/autoshift)，打开 ARC 控制台。

1. 在**资源可用区自动转移配置**下，选择资源。

1. 在**操作**菜单中，选择**删除练习运行配置**。

1. 在确认模态对话框中，键入 `Delete`，然后选择**删除**。

   请注意，在控制台中删除练习运行配置也会禁用资源的可用区自动转移。可用区自动转移需要为资源配置练习运行。

# 取消可用区自动转移
<a name="arc-zonal-autoshift.canceling-an-autoshift"></a>

要停止针对资源进行的可用区自动转移，必须取消可用区自动转移。

# 停止正在进行的可用区自动转移


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/](https://console.aws.amazon.com/route53recovery/zonalshift/home#/)，打开 ARC 控制台。

1. 选择要取消的可用区自动转移，然后选择**取消可用区转移**。

1. 在确认模态对话框中，选择**确认**。

# 启动练习运行可用区转移
<a name="arc-zonal-autoshift.start-practice-run"></a>

本节中的步骤说明了如何在 ARC 控制台上启动按需练习运行可用区转移。要以编程方式使用可用区转移和可用区自动转移，请参阅[可用区转移和可用区自动转移 API 参考指南](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)。

在配置可用区自动转移并创建练习运行配置后，您可以启动练习运行可用区转移。

# 启动练习运行可用区转移


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/](https://console.aws.amazon.com/route53recovery/zonalshift/home#/)，打开 ARC 控制台。

1. 在**可用区自动转移资源**下，浏览到配置了可用区自动转移的单个资源。

1. 在**资源概述**页面上，选择**启动练习运行**。

1. 选择一个可用区，然后为练习运行输入一条备注。练习运行会将流量从所选可用区转移出去。

1. 选择**启动**。

# 取消练习运行可用区转移
<a name="arc-zonal-autoshift.cancel-practice-run"></a>

本节中的步骤说明了如何在 ARC 控制台上取消可用区转移。要以编程方式使用可用区转移和可用区自动转移，请参阅[可用区转移和可用区自动转移 API 参考指南](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)。

您可以取消可用区转移，也可以取消自己发起的练习运行。您也可以取消为区域自动移位练习跑的资源而 AWS 开始的区域移动。

# 取消练习运行可用区转移


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/](https://console.aws.amazon.com/route53recovery/zonalshift/home#/)，打开 ARC 控制台。

1. 选择要取消的练习运行可用区转移，然后选择**取消可用区转移**或**取消练习运行**。

1. 在确认模态对话框中，选择**确认**。

# 启用或禁用自动转移观察者通知
<a name="arc-zonal-autoshift.enable-autoshift-observer"></a>

您可以配置区域自动切换，以便在 AWS 启动自动换档时通过 Amazon 通知您 EventBridge，将流量从可能受损的可用区域转移出去。您必须在要接收通知 AWS 区域 的每个选项中配置此选项。您无需使用可用区自动转移配置任何特定资源即可启用这些单独的通知。有关更多信息，请参阅 [在 Amazon 上使用区域自动换档 EventBridge](eventbridge-zonal-autoshift.md)。

本节中的步骤说明了如何在 Amazon 应用程序恢复控制器（ARC）控制台上启用自动转移观察者通知。要以编程方式使用可用区转移，请参阅[可用区转移和可用区自动转移 API 参考指南](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)。

# 启用或禁用自动转移观察者通知


1. 访问 [https://console.aws.amazon.com/route53recovery/zonalshift/home#/](https://console.aws.amazon.com/route53recovery/zonalshift/home#/)，打开 ARC 控制台。

1. 在**开始使用**下，选择**启用自动转移观察者通知**。

1. 在“确认”对话框中，选择**启用观察者通知**。

# 使用以下方法测试区域自动换档 AWS FIS
<a name="testing-zonal-autoshift-fis"></a>

您可以使用 AWS Fault Injection Service 来设置和运行实验，以帮助您模拟现实世界中的条件，例如 “[可用区可用性：电源中断” 场景，该场景将演示在可能存在广泛的 AZ](https://docs.aws.amazon.com//fis/latest/userguide/az-availability-scenario.html) 损伤期间，在启用自动换档的资源上 AWS 启动区域自动换档时会发生什么。

启动`aws:arc:start-zonal-autoshift`恢复操作允许您演示在执行可用区可用性场景 AWS 区域 期间，如何自动 AWS 将启用区域自动移位的资源的流量从可能受损的可用区转移出去，并将其重新路由到正常 AZs 运行状态。

例如，您可以使用 AWS FIS 场景库来模拟由电源中断引起的可用区损害。在本实验中，在可用区电源中断开始五分钟后，恢复操作 `aws:arc:start-zonal-autoshift` 会自动将资源流量从指定可用区转移出去。在电源中断的后 25 分钟内，流量会被转移出去，以演示在可用区可能大范围受影响时如何触发自动转移。实验完成后，交通转移结束，交通 AZs 再次开始流向所有人。此过程演示了如何从影响可用区的电源事件中完全恢复。

## 实验与可用区自动转移练习运行有何不同
<a name="zonal-shift-vs-practice"></a>

AWS FIS 实验与区域自动移位练习的不同之处在于，在练习运行期间，ARC 会将您的资源流量从一个可用区转移出去，这是正常流程的一部分，以确保您的应用程序能够承受可用区的损失。但是，在 AWS FIS 实验中， AWS FIS 演示如何代表您为启用自动换档的资源触发 AZ 损伤和自动换档，然后在损伤得到解决后取消自动换档。

在 AWS FIS 启动的区域偏移运行期间，您无法对其进行更新。此外，如果您取消外面的区域偏移 AWS FIS，则 AWS FIS 实验结束。

## AWS FIS 基于到期的安全机制
<a name="fis-safety-mechanism"></a>

AWS FIS 使用[StartZonalShift](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_StartZonalShift.html)、[UpdateZonalShift](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_UpdateZonalShift.html)和 [CancelZonalShift](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_CancelZonalShift.html)API 操作管理区域偏移，作为安全机制，将这些请求的`expiresIn`字段设置为 1 分钟。这使得 AWS FIS 在出现意外事件（例如网络中断或系统问题）时可以快速回滚区域偏移。在 ARC 控制台中，到期时间字段将显示 AWS FIS-managed，实际的预期到期时间由区域移位操作中指定的持续时间决定。有关练习运行的更多信息，请参阅[可用区自动转移和练习运行的工作原理](https://docs.aws.amazon.com//r53recovery/latest/dg/arc-zonal-autoshift.how-it-works.html)

在给定时间，应用的可用区转移不能超过一个。也就是说，只有一家诊所对资源进行区域移动、客户启动的区域移动、自动移位或 AWS FIS 实验。当启动第二次可用区转移时，ARC 会按照优先级来确定哪个可用区转移类型对资源有效。有关可用区转移优先级的更多信息，请参阅[可用区转移的优先级](arc-zonal-autoshift.how-it-works.precedence.md)。

有关 AWS FIS 恢复操作的更多信息，请参阅《*AWS Fault Injection Service 用户指南*[》中的AWS FIS 恢复操作](https://docs.aws.amazon.com//fis/latest/userguide/fis-actions-reference.html#fis-actions-recovery.html)。

# Amazon 应用程序恢复控制器（ARC）中可用区自动转移的日志记录和监控
<a name="monitoring-zonal-autoshift"></a>

您可以使用 AWS CloudTrail 和 Amazon EventBridge 监控 Amazon 应用程序恢复控制器 (ARC) 中的区域自动切换，以分析模式并帮助解决问题。

**Topics**
+ [使用 AWS CloudTrail 记录可用区自动转移 API 调用日志](cloudtrail-zonal-autoshift.md)
+ [在 Amazon 上使用区域自动换档 EventBridge](eventbridge-zonal-autoshift.md)

# 使用 AWS CloudTrail 记录可用区自动转移 API 调用日志
<a name="cloudtrail-zonal-autoshift"></a>

ARC 可用区自动转移与 AWS CloudTrail 集成，后者是一项服务，可用于记录 ARC 中由用户、角色或 AWS 服务所采取的操作。CloudTrail 将可用区转移的所有 API 调用作为事件捕获。捕获的调用包含来自 ARC 控制台的调用和对用于可用区转移的 ARC API 操作的代码调用。

如果您创建跟踪记录，则可以将 CloudTrail 事件持续传送到 Amazon S3 存储桶（包括可用区转移的事件）。如果您不配置跟踪，则仍可在 CloudTrail 控制台中的**事件历史记录**中查看最新事件。

使用 CloudTrail 收集的信息，您可以确定针对可用区转移向 ARC 发出了什么请求、发出请求的 IP 地址、请求方、请求时间以及其他详细信息。

要了解有关 CloudTrail 的更多信息，请参阅《AWS CloudTrail 用户指南》[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

## CloudTrail 中的可用区自动转移信息
<a name="service-name-info-in-cloudtrail"></a>

在您创建 AWS 账户时，将在该账户上启用 CloudTrail。当 ARC 中发生可用区自动转移活动时，该活动将记录在 CloudTrail 事件中，并与其他 AWS 服务事件一同保存在**事件历史记录**中。您可以在 AWS 账户 中查看、搜索和下载最新事件。有关更多信息，请参阅 [Working with CloudTrail Event history](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

要持续记录 AWS 账户中的事件（包括 ARC 中的可用区自动转移事件），请创建跟踪记录。通过*跟踪记录*，CloudTrail 可将日志文件传送至 Amazon S3 存储桶。预设情况下，在控制台中创建跟踪记录时，此跟踪记录应用于所有AWS 区域。此跟踪记录在 AWS 分区中记录所有区域中的事件，并将日志文件传送至您指定的 Simple Storage Service（Amazon S3）存储桶。此外，您可以配置其他 AWS 服务，进一步分析在 CloudTrail 日志中收集的事件数据并采取行动。有关更多信息，请参阅下列内容：
+ [创建跟踪记录概述](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [Configuring Amazon SNS notifications for CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [从多个区域接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[从多个账户接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

所有 ARC 操作由 CloudTrail 记录，[Amazon 应用程序恢复控制器的路由控制 API 参考指南](https://docs.aws.amazon.com/routing-control/latest/APIReference/)中有详细说明。例如，对 `StartZonalShift` 和 `ListManagedResources` 操作的调用会在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息可帮助您确定以下内容：
+ 请求是使用根用户凭证还是 AWS Identity and Access Management（IAM）用户凭证发出的。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 在事件历史记录中查看 ARC 事件
<a name="amazon-arc-events-in-cloudtrail-event-history"></a>

CloudTrail 可让您在 **Event history**（事件历史记录）中查看最新事件。有关更多信息，请参见《AWS CloudTrail 用户指南》的 [使用 CloudTrail 事件历史记录](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)**。

## 了解可用区自动转移日志文件条目
<a name="understanding-service-name-entries"></a>

跟踪是一种配置，可用于将事件作为日志文件传送到您指定的 Amazon S3 存储桶。CloudTrail 日志文件包含一个或多个日记账条目。一个事件表示来自任何源的一个请求，包括有关所请求的操作、操作的日期和时间、请求参数等方面的信息。CloudTrail 日志文件不是公用 API 调用的有序堆栈跟踪，因此它们不会按任何特定顺序显示。

下面的示例显示了一个 CloudTrail 日志条目，该条目说明了可用区自动转移的 `ListManagedResources` 操作。

```
{
      "eventVersion": "1.08",
      "userIdentity": {
        "type": "AssumedRole",
        "principalId": "A1B2C3D4E5F6G7EXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/admin",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
          "sessionIssuer": {
            "type": "Role",
            "principalId": "AROA33L3W36EXAMPLE",
            "arn": "arn:aws:iam::111122223333:role/admin",
            "accountId": "111122223333",
            "userName": "EXAMPLENAME"
          },
          "webIdFederationData": {},
          "attributes": {
            "creationDate": "2022-11-14T16:01:51Z",
            "mfaAuthenticated": "false"
          }
        }
      },
      "eventTime": "2022-11-14T16:14:41Z",
      "eventSource": "arc-zonal-shift.amazonaws.com",
      "eventName": "ListManagedResources",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "192.0.2.50",
      "userAgent": "Boto3/1.17.101 Python/3.8.10 Linux/4.14.231-180.360.amzn2.x86_64 exec-env/AWS_Lambda_python3.8 Botocore/1.20.102",      
      "requestParameters": null,
      "responseElements": null,
      "requestID": "VGXG4ZUE7UZTVCMTJGIAF_EXAMPLE",
      "eventID": "4b5c42df-1174-46c8-be99-d67_EXAMPLE",
      "readOnly": true,
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "recipientAccountId": "111122223333"
      "eventCategory": "Management"
      }
    }
```

# 在 Amazon 上使用区域自动换档 EventBridge
<a name="eventbridge-zonal-autoshift"></a>

使用 Amazon EventBridge，您可以设置事件驱动的规则，以监控您的区域自动转移资源并启动使用其他服务的目标操作。 AWS 例如，您可以设置一个规则，即，当练习运行面向可用区自动转移启动时，通过向 Amazon SNS 主题发信号来发送电子邮件通知。

您可以在 Amazon 中创建规则 EventBridge 来处理区域自动移动。可用区自动转移事件指定有关练习运行或自动转移的状态信息（例如，在启动练习运行时）。您可以配置可用区自动转移，以通知您为服务启用的资源的可用区自动转移事件。

除了或取代其他通知之外，您还可以选择启用自动移位观察者通知，每当为可能受损的可用区 AWS 启动自动换档时，它都会提供通知事件。自动转移观察者通知与您为其启用可用区自动转移的资源的流量从可用区转移出去时收到的通知是分开的。您无需使用可用区自动转移配置任何资源即可启用自动转移观察者通知。有关更多信息，请参阅 [启用并使用可用区自动转移](arc-zonal-autoshift.start-cancel.md)。

要捕获您感兴趣的特定区域自动移位事件，请定义 EventBridge 可用于检测事件的特定事件模式。事件规律与它们匹配的事件具有相同的结构。模式引用了您要匹配的字段，并提供您所查找的值。

尽最大努力发出事件。在正常运行 EventBridge 情况下，它们几乎实时地从 ARC 交付到。但是，可能会出现延迟或阻止事件交付的情况。

有关 EventBridge 规则如何处理事件模式的信息，请参阅[中的事件和事件模式 EventBridge](https://docs.aws.amazon.com//eventbridge/latest/userguide/eventbridge-and-event-patterns.html)。

## 使用以下命令监控区域自动移位资源 EventBridge
<a name="arc-eventbridge-tasks-zonal-autoshift"></a>

借 EventBridge助，您可以创建规则，定义 ARC 为其资源发出事件时要采取的操作。例如，您可以创建一个规则，即，当练习运行面向可用区自动转移启动时，向您发送电子邮件。

要在控制台中键入或复制并粘贴事件模式，请选择该选项以在 EventBridge 控制台中使用 **Enter my ow** n 选项。为帮助您确定可能对您有用的事件规律，本主题包括您可以使用的[可用区自动转移事件匹配模式](#ZAEventBridgePatterns)和[可用区自动转移事件](#ZAEventBridgeEventSamples)的示例。

**要为资源事件创建规则**

1. 打开亚马逊 EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 选择您 AWS 区域 要在其中创建规则的区域，即您有兴趣观看其赛事的区域。

1. 选择 **Create rule (创建规则)**。

1. 输入规则的 **Name (名称)** 和“Description (描述)”（可选）。

1. 对于**事件总线**，保留默认值，即**默认**。

1. 选择**下一步**。

1. 对于**构建事件规律**步骤，对于**事件源**，保留默认值，即 **AWS 事件**。

1. 在**示例事件**下，选择**输入我自己的**。

1. 对于**示例事件**，键入或复制并粘贴事件规律。

## 可用区自动转移事件规律示例
<a name="arc-eventbridge-patterns-zonal-autoshift"></a>

事件规律与它们匹配的事件具有相同的结构。模式引用了您要匹配的字段，并提供您所查找的值。

您可以将此部分中的事件模式复制并粘贴 EventBridge 到中，以创建可用于监控区域自动移位操作和资源的规则。

在为可用区自动转移事件创建事件规律时，可以为 `detail-type` 指定以下任一选项：
+ `Autoshift In Progress`
+ `Autoshift Completed`
+ `Practice Run Started`
+ `Practice Run Succeeded`
+ `Practice Run Interrupted`
+ `Practice Run Failed`
+ `FIS Experiment Autoshift In Progress`
+ `FIS Experiment Autoshift Completed`
+ `FIS Experiment Autoshift Canceled`
+ `Manual Shift Started`
+ `Manual Shift Updated`
+ `Manual Shift Canceled`

当练习运行中断时，可参阅 `additionalFailureInfo` 字段，以详细了解导致中断的原因。

您可以通过启用自动 AWS 换*档观察者通知来选择监控所有自动换档*。启用自动转移观察者通知后，要接收通知，请选择接收可用区自动转移详细信息类型为 `Autoshift In Progress` 的通知。要查看启用自动转移观察者通知的步骤，请参阅[启用并使用可用区自动转移](arc-zonal-autoshift.start-cancel.md)。

有关示例，请参阅[可用区自动转移事件示例](#ZAEventBridgeEventSamples)部分。
+ **从已启动自动转移的可用区自动转移中选择所有事件。

  注意以下几点：
  + 如果您启用了自动转移观察者通知，ARC 会返回所有自动转移事件。
  + 如果您未启用自动转移观察者通知，则只有在自动转移中包含您为可用区自动转移配置的资源时，ARC 才会返回自动转移事件。

  ```
  {
      "source": [
          "aws.arc-zonal-shift"
      ],
      "detail-type": [
          "Autoshift In Progress"
      ]
  }
  ```
+ **从已启动练习运行的可用区自动转移中选择所有事件。

  ```
  {
      "source": [
          "aws.arc-zonal-shift"
      ],
      "detail-type": [
          "Practice Run Started"
      ]
  }
  ```
+ **从无法启动练习运行的可用区自动转移中选择所有事件。

  ```
  {
      "source": [
          "aws.arc-zonal-shift"
      ],
      "detail-type": [
          "Practice Run Failed"
      ]
  }
  ```

## 可用区自动转移事件示例
<a name="arc-eventbridge-examples-zonal-autoshift"></a>

本节包括*可用区自动转移*操作的示例事件。

以下是 `Autoshift In Progress` 操作的示例事件，适用于 1) **“已启用”自动转移观察者通知且 2) 您尚未为自动转移中包含的资源配置可用区自动转移这一情况：

```
{
    "version": "0",
    "id": "05d4d2d5-9c76-bfea-72d2-d4614802adb4",
    "detail-type": "Autoshift In Progress",
    "source": "aws.arc-zonal-shift",
    "account": "111122223333",
    "time": "2023-11-16T23:38:14Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0.0.1",
        "data": "",
        "metadata": {
            "awayFrom": "use1-az2",
            "notes":"AWS has started an autoshift for an impaired Availability Zone. This notification 
            is separate from autoshift notifications for resources, if any, that you have configured for 
            zonal autoshift. For details, see the Developer Guide."
        }
    }
}
```

以下是 `Autoshift In Progress` 操作的示例事件，适用于 1) **“已禁用”自动转移观察者通知且 2) 您已为自动转移中包含的资源配置可用区自动转移这一情况：

```
{
    "version": "0",
    "id": "05d4d2d5-9c76-bfea-72d2-d4614802adb4",
    "detail-type": "Autoshift In Progress",
    "source": "aws.arc-zonal-shift",
    "account": "111122223333",
    "time": "2023-11-16T23:38:14Z",
    "region": "us-east-1",
    "resources": [
        "TEST-EXAMPLE-2023-11-16-23-28-11-5"
    ],
    "detail": {
        "version": "0.0.1",
        "data": "",
        "metadata": {
            "awayFrom": "use1-az2",
            "notes":""
        }
    }
}
```

以下是 `Practice Run Interrupted` 操作的示例事件：

```
{
    "version": "0",
    "id": "05d4d2d5-9c76-bfea-72d2-d4614802adb4",
    "detail-type": "Practice Run Interrupted",
    "source": "aws.arc-zonal-shift",
    "account": "111122223333",
    "time": "2023-11-16T23:38:14Z",
    "region": "us-east-1",
    "resources": [
        "TEST-EXAMPLE-2023-11-16-23-28-11-5"
    ],
    "detail": {
        "version": "0.0.1",
        "data": {
            "additionalFailureInfo": "Practice run interrupted. The blocking alarm entered ALARM state."
        },
        "metadata": {
            "awayFrom": "use1-az2"
        }
    }
}
```

以下是 `FIS Experiment Autoshift In Progress` 操作的示例事件：

```
{
    "version": "0",
    "id": "05d4d2d5-9c76-bfea-72d2-d4614802adb4",
    "detail-type": "FIS Experiment Autoshift In Progress",
    "source": "aws.arc-zonal-shift",
    "account": "111122223333",
    "time": "2023-11-16T23:38:14Z",
    "region": "us-east-1",
    "resources": [
        "TEST-EXAMPLE-2023-11-16-23-28-11-5"
    ],
    "detail": {
        "version": "0.0.1",
        "data": "",
        "metadata": {
            "awayFrom": "use1-az2",
            "notes":""
        }
    }
}
```

以下是该`Manual Shift Started`操作的示例事件。它是在资源上调`StartZonalShift`用 API 时发出的：

```
{
    "version": "0",
    "id": "05d4d2d5-9c76-bfea-72d2-d4614802adb4",
    "detail-type": "Manual Shift Started",
    "source": "aws.arc-zonal-shift",
    "account": "111122223333",
    "time": "2023-11-16T23:38:14Z",
    "region": "us-east-1",
    "resources": [
        "TEST-EXAMPLE-2023-11-16-23-28-11-5"
    ],
    "detail": {
        "version": "0.0.1",
        "data": "",
        "metadata": {
            "awayFrom": "use1-az2",
            "notes":""
        }
    }
}
```

## 指定要用作目标的 CloudWatch 日志组
<a name="arc-eventbridge-cw-loggroup"></a>

创建 EventBridge 规则时，必须指定将与规则匹配的事件发送到的目标。有关可用目标的列表 EventBridge，请参阅[ EventBridge 控制台中的可用目标](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html#eb-console-targets)。您可以添加到 EventBridge 规则的目标之一是 Amazon CloudWatch 日志组。本节介绍将 CloudWatch 日志组添加为目标的要求，并提供了在创建规则时添加日志组的过程。

要将 CloudWatch 日志组添加为目标，可以执行以下操作之一：
+ 创建新日志组 
+ 选择现有日志组

如果您在创建规则时使用控制台指定了新的日志组，则 EventBridge 会自动为您创建该日志组。确保用作 EventBridge 规则目标的日志组以开头`/aws/events`。如果要选择现有的日志组，请注意，只有以 `/aws/events` 开头的日志组才会作为选项出现在下拉菜单中。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[创建新日志组](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#Create-Log-Group)。

如果您使用控制台之外的 CloudWatch 操作创建或使用 CloudWatch 日志组作为目标，请确保正确设置权限。如果您使用控制台向 EventBridge 规则添加日志组，则该日志组的基于资源的策略会自动更新。但是，如果您使用 AWS Command Line Interface 或 S AWS DK 来指定日志组，则必须更新该日志组的基于资源的策略。以下示例策略说明了您必须在日志组的基于资源的策略中定义的权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "events.amazonaws.com",
                    "delivery.logs.amazonaws.com"
                ]
            },
            "Resource": "arn:aws:logs:us-east-1:222222222222:log-group:/aws/events/*:*",
            "Sid": "TrustEventsToStoreLogEvent"
        }
    ]
}
```

------

您无法使用控制台为日志组配置基于资源的策略。要向基于资源的策略添加所需的权限，请使用 CloudWatch [PutResourcePolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutResourcePolicy.html)API 操作。然后，您可以使用 [describe-resource-policies](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/describe-resource-policies.html)CLI 命令检查您的策略是否正确应用。

**为资源事件创建规则并指定 CloudWatch 日志组目标**

1. 打开亚马逊 EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 选择 AWS 区域 要在其中创建规则的。

1. 选择**创建规则**，然后输入有关该规则的所有信息，例如事件规律或计划详细信息。

   有关为 ARC 创建 EventBridge 规则的更多信息，请参阅本主题前面的部分。

1. 在 **“选择目标”** 页面上，选择**CloudWatch**作为您的目标。

1. 从下拉菜单中选择一个 CloudWatch 日志组。

# 适用于 ARC 中可用区自动转移的 Identity and Access Management
<a name="security-iam-zonalautoshift"></a>

AWS Identity and Access Management (IAM) AWS 服务 可帮助管理员安全地控制对 AWS 资源的访问权限。IAM 管理员控制可以通过“身份验证”**（登录）和“授权”**（具有权限）使用 ARC 资源的人员。您可以使用 IAM AWS 服务 ，无需支付额外费用。

**Topics**
+ [可用区自动转移如何与 IAM 结合使用](security_iam_service-with-iam-zonalautoshift.md)
+ [基于身份的策略示例](security_iam_id-based-policy-examples-zonalautoshift.md)
+ [服务相关角色](using-service-linked-roles-zonal-autoshift.md)
+ [AWS 托管策略](security-iam-awsmanpol-zonal-autoshift.md)

# ARC 中的可用区自动转移如何与 IAM 结合使用
<a name="security_iam_service-with-iam-zonalautoshift"></a>

在使用 IAM 管理对 Amazon 应用程序恢复控制器（ARC）中可用区自动转移的访问之前，您应该了解哪些 IAM 功能可用于可用区自动转移。


**可与 ARC 中的可用区自动转移结合使用的 IAM 功能**  

| IAM 功能 | 可用区自动转移支持 | 
| --- | --- | 
|  [基于身份的策略](#security_iam_service-with-iam-zonalautoshift-id-based-policies)  |   是  | 
|  [基于资源的策略](#security_iam_service-with-iam-zonalautoshift-resource-based-policies)  |   否   | 
|  [策略操作](#security_iam_service-with-iam-zonalautoshift-id-based-policies-actions)  |   是  | 
|  [策略资源](#security_iam_service-with-iam-zonalautoshift-id-based-policies-resources)  |   是  | 
|  [策略条件键](#security_iam_service-with-iam-zonalautoshift-id-based-policies-conditionkeys)  |   是  | 
|  [ACLs](#security_iam_service-with-iam-zonalautoshift-acls)  |   否   | 
|  [ABAC（策略中的标签）](#security_iam_service-with-iam-zonalautoshift-tags)  |   部分  | 
|  [临时凭证](#security_iam_service-with-iam-zonalautoshift-roles-tempcreds)  |   是  | 
|  [主体权限](#security_iam_service-with-iam-zonalautoshift-principal-permissions)  |   是  | 
|  [服务角色](#security_iam_service-with-iam-zonalautoshift-roles-service)  |   否   | 
|  [服务关联角色](#security_iam_service-with-iam-zonalautoshift-roles-service-linked)  |   是  | 

要全面了解 AWS 服务如何与大多数 IAM 功能配合使用，请参阅 IAM *用户指南中的与 IAM* [配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

## 适用于 ARC 的基于身份的策略
<a name="security_iam_service-with-iam-zonalautoshift-id-based-policies"></a>

**支持基于身份的策略：**是

基于身份的策略是可附加到身份（如 IAM 用户、用户组或角色）的 JSON 权限策略文档。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略，请参阅《IAM 用户指南》**中的[使用客户管理型策略定义自定义 IAM 权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。要了解可在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素引用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

要查看 ARC 基于身份的策略示例，请参阅 [Amazon 应用程序恢复控制器（ARC）基于身份的策略示例](security_iam_id-based-policy-examples.md)。

## ARC 内基于资源的策略
<a name="security_iam_service-with-iam-zonalautoshift-resource-based-policies"></a>

**支持基于资源的策略：**否 

基于资源的策略是附加到资源的 JSON 策略文档。基于资源的策略的示例包括 IAM 角色信任策略和 Amazon S3 存储桶策略。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。

## ARC 的策略操作
<a name="security_iam_service-with-iam-zonalautoshift-id-based-policies-actions"></a>

**支持策略操作：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。在策略中包含操作以授予执行关联操作的权限。

要查看可用区自动转移的 ARC 操作列表，请参阅《服务授权参考》**中的 [Amazon Route 53 可用区转移定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-actions-as-permissions)。

ARC 中可用区自动转移的策略操作在操作前使用以下前缀：

```
arc-zonal-shift
```

要在单个语句中指定多项操作，请使用逗号将它们隔开。如下所示：

```
"Action": [
      "arc-zonal-shift:action1",
      "arc-zonal-shift:action2"
         ]
```

您也可以使用通配符（\$1）指定多个操作。例如，要指定以单词 `Describe` 开头的所有操作，包括以下操作：

```
"Action": "arc-zonal-shift:Describe*"
```

要查看适用于可用区自动转移的 ARC 基于身份的策略的示例，请参阅 [ARC 中可用区自动转移基于身份的策略示例](security_iam_id-based-policy-examples-zonalautoshift.md)。

## ARC 中可用区自动转移的策略资源
<a name="security_iam_service-with-iam-zonalautoshift-id-based-policies-resources"></a>

**支持策略资源：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Resource` JSON 策略元素指定要向其应用操作的一个或多个对象。作为最佳实践，请使用其 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)指定资源。对于不支持资源级权限的操作，请使用通配符 (\$1) 指示语句应用于所有资源。

```
"Resource": "*"
```

要查看资源类型及其列表 ARNs，以及您可以使用每种资源的 ARN 指定的操作，请参阅《*服务授权*参考》中的以下主题：
+ [Amazon Route 53 可用区转移定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-actions-as-permissions)

要查看可与条件键配合使用的操作和资源，请参阅《服务授权参考》**中的以下主题：
+ [Amazon Route 53 可用区转移定义的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-policy-keys)

要查看适用于可用区自动转移的 ARC 基于身份的策略的示例，请参阅 [ARC 中可用区自动转移基于身份的策略示例](security_iam_id-based-policy-examples-zonalautoshift.md)。

## ARC 中可用区自动转移的策略条件键
<a name="security_iam_service-with-iam-zonalautoshift-id-based-policies-conditionkeys"></a>

**支持特定于服务的策略条件键：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Condition` 元素根据定义的条件指定语句何时执行。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。要查看所有 AWS 全局条件键，请参阅 *IAM 用户指南*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

要查看可用区自动转移的 ARC 条件键的列表，请参阅《服务授权参考》**中的以下主题：
+ [Amazon Route 53 可用区转移的条件键](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonroute53applicationrecoverycontroller-zonalshift.html#amazonroute53applicationrecoverycontroller-zonalshift-policy-keys)

要查看可与条件键配合使用的操作和资源，请参阅《服务授权参考》**中的以下主题：
+ [Amazon Route 53 可用区转移定义的操作](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonroute53applicationrecoverycontroller-zonalshift.html#amazonroute53applicationrecoverycontroller-zonalshift-actions-as-permissions)

要查看适用于可用区自动转移的 ARC 基于身份的策略的示例，请参阅 [ARC 中可用区自动转移基于身份的策略示例](security_iam_id-based-policy-examples-zonalautoshift.md)。

## ARC 中的访问控制列表 (ACLs)
<a name="security_iam_service-with-iam-zonalautoshift-acls"></a>

**支持 ACLs：**否 

访问控制列表 (ACLs) 控制哪些委托人（账户成员、用户或角色）有权访问资源。 ACLs 与基于资源的策略类似，尽管它们不使用 JSON 策略文档格式。

## 用于 ARC 的基于属性的访问权限控制（ABAC）
<a name="security_iam_service-with-iam-zonalautoshift-tags"></a>

**支持 ABAC（策略中的标签）：**部分支持

基于属性的访问权限控制（ABAC）是一种授权策略，该策略基于称为标签的属性来定义权限。您可以将标签附加到 IAM 实体和 AWS 资源，然后设计 ABAC 策略以允许在委托人的标签与资源上的标签匹配时进行操作。

要基于标签控制访问，您需要使用 `aws:ResourceTag/key-name``aws:RequestTag/key-name` 或 `aws:TagKeys` 条件键在策略的[条件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供标签信息。

如果某个服务对于每种资源类型都支持所有这三个条件键，则对于该服务，该值为**是**。如果某个服务仅对于部分资源类型支持所有这三个条件键，则该值为**部分**。

有关 ABAC 的更多信息，请参阅《IAM 用户指南》**中的[使用 ABAC 授权定义权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。要查看设置 ABAC 步骤的教程，请参阅《IAM 用户指南》**中的[使用基于属性的访问权限控制（ABAC）](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)。

ARC 中的可用区自动转移包含以下对 ABAC 的部分支持：
+ 对于在 ARC 中注册的要进行可用区转移的托管资源，可用区自动转移支持 ABAC。有关网络负载均衡器和应用程序负载均衡器托管资源的 ABAC 的更多信息，请参阅《Elastic Load Balancing 用户指南》之 [Elastic Load Balancing 中的 ABAC](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-tags)。

## 对 ARC 使用临时凭证
<a name="security_iam_service-with-iam-zonalautoshift-roles-tempcreds"></a>

**支持临时凭证：**是

临时证书提供对 AWS 资源的短期访问权限，并且是在您使用联合身份或切换角色时自动创建的。 AWS 建议您动态生成临时证书，而不是使用长期访问密钥。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的临时安全凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)和[使用 IAM 的。AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)

## ARC 的跨服务主体权限
<a name="security_iam_service-with-iam-zonalautoshift-principal-permissions"></a>

**支持转发访问会话（FAS）：**是

当您使用 IAM 实体（用户或角色）在中执行操作时 AWS，您被视为委托人。策略向主体授予权限。使用某些服务时，您可能会执行一个操作，此操作然后在不同服务中触发另一个操作。在这种情况下，您必须具有执行这两个操作的权限。

要查看某个操作是否需要策略中的其他相关操作，请参阅《服务授权参考》**中的以下主题：
+ [Amazon Route 53 可用区转移](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonroute53applicationrecoverycontroller-zonalshift.html)

## ARC 的服务角色
<a name="security_iam_service-with-iam-zonalautoshift-roles-service"></a>

**支持服务角色：**否 

 服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

## ARC 的服务相关角色
<a name="security_iam_service-with-iam-zonalautoshift-roles-service-linked"></a>

**支持服务关联角色：**是

 服务相关角色是一种与服务相关联的 AWS 服务服务角色。服务可以代入代表您执行操作的角色。服务相关角色出现在您的中 AWS 账户 ，并且归服务所有。IAM 管理员可以查看但不能编辑服务关联角色的权限。

有关创建或管理 ARC 服务相关角色的详细信息，请参阅[在 ARC 中使用服务关联角色进行区域自动切换](using-service-linked-roles-zonal-autoshift.md)。

有关创建或管理服务相关角色的详细信息，请参阅[能够与 IAM 搭配使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。在表中查找**服务相关角色**列中包含 `Yes` 的表。选择**是**链接以查看该服务的服务相关角色文档。

# ARC 中可用区自动转移基于身份的策略示例
<a name="security_iam_id-based-policy-examples-zonalautoshift"></a>

默认情况下，用户和角色没有创建或修改 ARC 资源的权限。要授予用户对所需资源执行操作的权限，IAM 管理员可以创建 IAM 策略。

要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略，请参阅《IAM 用户指南》**中的[创建 IAM 策略（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

有关 ARC 定义的操作和资源类型（包括每种资源类型的格式）的详细信息，请参阅《 ARNs *服务授权参考*》中的 [Amazon Application Recovery Controller (ARC) 的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html)。

**Topics**
+ [策略最佳实践](#security_iam_service-with-iam-policy-best-practices-zonal)
+ [示例：可用区自动转移控制台访问权限](#security_iam_id-based-policy-examples-console-zonalautoshift)
+ [示例：ARC API 操作](#security_iam_id-based-policy-examples-api-zonalautoshift)

## 策略最佳实践
<a name="security_iam_service-with-iam-policy-best-practices-zonal"></a>

基于身份的策略确定某个人是否可以创建、访问或删除您账户中的 ARC 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时，请遵循以下指南和建议：
+ **开始使用 AWS 托管策略并转向最低权限权限** — 要开始向用户和工作负载授予权限，请使用为许多常见用例授予权限的*AWS 托管策略*。它们在你的版本中可用 AWS 账户。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[工作职能的AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **应用最低权限**：在使用 IAM 策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为*最低权限许可*。有关使用 IAM 应用权限的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 策略中的条件进一步限制访问权限**：您可以向策略添加条件来限制对操作和资源的访问。例如，您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果服务操作是通过特定的方式使用的，则也可以使用条件来授予对服务操作的访问权限 AWS 服务，例如 CloudFormation。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 验证您的 IAM 策略，以确保权限的安全性和功能性**：IAM Access Analyzer 会验证新策略和现有策略，以确保策略符合 IAM 策略语言（JSON）和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议，以帮助您制定安全且功能性强的策略。有关更多信息，请参阅《IAM 用户指南》**中的[使用 IAM Access Analyzer 验证策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重身份验证 (MFA**)-如果 AWS 账户您的场景需要 IAM 用户或根用户，请启用 MFA 以提高安全性。若要在调用 API 操作时需要 MFA，请将 MFA 条件添加到您的策略中。有关更多信息，请参阅《IAM 用户指南》**中的[使用 MFA 保护 API 访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

有关 IAM 中的最佳实操的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 示例：可用区自动转移控制台访问权限
<a name="security_iam_id-based-policy-examples-console-zonalautoshift"></a>

要访问 Amazon 应用程序恢复控制器（ARC）控制台，您必须具有一组最低的权限。这些权限必须允许您列出和查看有关您的 ARC 资源的详细信息 AWS 账户。如果创建比必需的最低权限更为严格的基于身份的策略，对于附加了该策略的实体（用户或角色），控制台将无法按预期正常运行。

对于仅调用 AWS CLI 或 AWS API 的用户，您无需为其设置最低控制台权限。相反，只允许访问与其尝试执行的 API 操作相匹配的操作。

要执行某些任务，用户必须有权创建与 ARC 中的可用区自动转移关联的服务相关角色。要了解更多信息，请参阅[在 ARC 中使用服务关联角色进行区域自动切换](using-service-linked-roles-zonal-autoshift.md)。

要向用户提供在中使用区域自动移位的完全访问权限 AWS 管理控制台，请向用户附加类似以下内容的策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                   "arc-zonal-shift:ListManagedResources",
                   "arc-zonal-shift:GetManagedResource",
                   "arc-zonal-shift:ListZonalShifts",
                   "arc-zonal-shift:StartZonalShift",
                   "arc-zonal-shift:UpdateZonalShift",
                   "arc-zonal-shift:CancelZonalShift",
                   "arc-zonal-shift:CreatePracticeRunConfiguration",
                   "arc-zonal-shift:DeletePracticeRunConfiguration",
                   "arc-zonal-shift:ListAutoshifts",
                   "arc-zonal-shift:UpdatePracticeRunConfiguration",
                   "arc-zonal-shift:UpdateZonalAutoshiftConfiguration"
             ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeAvailabilityZones",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "cloudwatch:DescribeAlarms",
            "Resource": "*"
        }
    ]
}
```

------

## 示例：ARC API 操作
<a name="security_iam_id-based-policy-examples-api-zonalautoshift"></a>

您可以使用策略来确保用户可以使用 ARC API 操作进行区域自动切换，以配置区域自动切换，从而代表您将应用程序资源流量从可用区 AWS 转移到运行状况良好的 AZs 可用区，从而帮助缩短事件期间的恢复时间。 AWS 区域要提供这些权限，请附加与用户需要使用的 API 操作相对应的策略，如下所述。

要执行某些任务，用户必须具有与 ARC 关联的服务相关角色的权限。以下示例策略不包含创建服务相关角色所需的权限。要了解更多信息，请参阅[在 ARC 中使用服务关联角色进行区域自动切换](using-service-linked-roles-zonal-autoshift.md)。

要使用 API 操作进行可用区自动转移，请为用户附加如下策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [		
                   "arc-zonal-shift:ListManagedResources",
                   "arc-zonal-shift:GetManagedResource",
                   "arc-zonal-shift:ListZonalShifts",
                   "arc-zonal-shift:StartZonalShift",
                   "arc-zonal-shift:UpdateZonalShift",
                   "arc-zonal-shift:CancelZonalShift",
                   "arc-zonal-shift:CreatePracticeRunConfiguration",
                   "arc-zonal-shift:DeletePracticeRunConfiguration",
                   "arc-zonal-shift:ListAutoshifts",
                   "arc-zonal-shift:UpdatePracticeRunConfiguration",
                   "arc-zonal-shift:UpdateZonalAutoshiftConfiguration"
             ],
            "Resource": "*"
        },
        {
            "Effect" : "Allow",
            "Action" : [
                    "cloudwatch:DescribeAlarms",
                    "health:DescribeEvents"
            ],
            "Resource" : "*"
        },
        {
            "Effect" : "Allow",
            "Action" : [
                    "arc-zonal-shift:CancelZonalShift",
                    "arc-zonal-shift:GetManagedResource",
                    "arc-zonal-shift:StartZonalShift",
                    "arc-zonal-shift:UpdateZonalShift"
            ],
            "Resource" : "*"
        }
    ]
}
```

------

# 在 ARC 中使用服务关联角色进行区域自动切换
<a name="using-service-linked-roles-zonal-autoshift"></a>

Amazon 应用程序恢复控制器中的区域自动切换使用 AWS Identity and Access Management (IAM) [服务相关](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)角色。服务相关角色是一种独特的 IAM 角色，直接链接到服务（在本例中为 ARC）。服务相关角色由 ARC 预定义，包括该服务出于特定目的代表您调用其他 AWS 服务所需的所有权限。

服务相关角色可以更轻松地设置 ARC，因为您不必手动添加必要的权限。ARC 定义服务相关角色的权限，除非另有定义，否则只有 ARC 可以担任其角色。定义的权限包括信任策略和权限策略，而且权限策略不能附加到任何其它 IAM 实体。

只有在首先删除服务相关角色的相关资源后，才能删除该角色。这可以保护您的 ARC 区域自动移位资源，因为您不会无意中移除对资源的访问权限。

有关支持服务相关角色的其他服务的信息，请参阅与 [IAM 配合使用的AWS 服务，](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并在**服务相关角色**列中查找标有 “**是**” 的服务。选择**是**和链接，查看该服务的服务相关角色文档。

## 的服务相关角色权限 AWSService RoleForZonalAutoshiftPracticeRun
<a name="slr-permissions-slr2"></a>

ARC 使用名为的服务相关角色**AWSServiceRoleForZonalAutoshiftPracticeRun**执行以下操作：
+ 监控客户提供的 Amazon CloudWatch 警报和客户 Health Dashboard 事件以进行练习
+ 管理练习运行（练习可用区转移）

本节介绍适用于该服务相关角色的权限，以及有关创建、编辑和删除该角色的信息。

### 的服务相关角色权限 AWSService RoleForZonalAutoshiftPracticeRun
<a name="slr-permissions-slr2-permissions"></a>

此服务相关角色使用托管策略 `AWSZonalAutoshiftPracticeRunSLRPolicy`。

**AWSServiceRoleForZonalAutoshiftPracticeRun** 服务相关角色仅信任以下服务来担任该角色：
+ `practice-run.arc-zonal-shift.amazonaws.com`

要查看此策略的权限，请参阅《AWS 托管式策略参考》中的 [AWSZonalAutoshiftPracticeRunSLRPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSZonalAutoshiftPracticeRunSLRPolicy.html)**。

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务相关角色。有关更多信息，请参阅*《IAM 用户指南》*中的[服务相关角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

### 为 ARC 创建**AWSServiceRoleForZonalAutoshiftPracticeRun**服务相关角色
<a name="create-slr2"></a>

无需手动创建 **AWSServiceRoleForZonalAutoshiftPracticeRun** 服务相关角色。当你在 AWS 管理控制台、或 AWS SDK 中创建第一个练习运行配置时，ARC 会为你创建服务相关角色。 AWS CLI

如果您删除该服务相关角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您创建第一个练习运行配置时，ARC 会再次为您创建服务相关角色。

### 编辑 AR **AWSServiceRoleForZonalAutoshiftPracticeRun**C 的服务相关角色
<a name="edit-slr"></a>

ARC 不允许您编辑**AWSServiceRoleForZonalAutoshiftPracticeRun**服务相关角色。创建该服务相关角色后，将无法更改角色名称，因为可能有其它实体引用该角色。不过，您可以使用 IAM 编辑角色的说明。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

### 删除 AR **AWSServiceRoleForZonalAutoshiftPracticeRun**C 的服务相关角色
<a name="delete-slr"></a>

如果不再需要使用某个需要服务相关角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，您必须先清除服务相关角色的资源，然后才能手动删除它。

禁用自动切换后，您可以删除**AWSServiceRoleForZonalAutoshiftPracticeRun**与服务相关的角色。有关自动转移功能的更多信息，请参阅 [ARC 中的可用区转移](arc-zonal-shift.md)。

**注意**  
如果您尝试删除资源时 ARC 服务正在使用该角色，则删除服务角色可能会失败。如果发生这种情况，请等待几分钟，然后重新尝试删除该角色。

**使用 IAM 手动删除服务相关角色**

使用 IAM 控制台 AWS CLI、或 AWS API 删除 AWSServiceRoleForZonalAutoshiftPracticeRun服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## 更新了用于区域自动换档的 ARC 服务相关角色
<a name="security-iam-awsmanpol-zonal-autoshift-updates"></a>

有关 ARC 服务相关角色 AWS 托管策略的更新，请参阅 ARC 的[AWS 托管策略更新表](security-iam-awsmanpol.md#security-iam-awsmanpol-arc-updates)。您也可以在 ARC [文档历史记录页面](doc-history.md)上订阅自动 RSS 提醒。

# AWS ARC 中区域自动换档的托管策略
<a name="security-iam-awsmanpol-zonal-autoshift"></a>

 AWS 托管策略是由创建和管理的独立策略 AWS。 AWS 托管策略旨在为许多常见用例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住， AWS 托管策略可能不会为您的特定用例授予最低权限权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新 AWS 托管策略中定义的权限，则更新会影响该策略所关联的所有委托人身份（用户、组和角色）。 AWS 最有可能在启动新的 API 或现有服务可以使用新 AWS 服务 的 API 操作时更新 AWS 托管策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 托管策略： AWSZonalAutoshiftPracticeRunSLRPolicy
<a name="security-iam-awsmanpol-AWSZonalAutoshiftPracticeRunSLRPolicy"></a>

您不能将 `AWSZonalAutoshiftPracticeRunSLRPolicy` 附加到自己的 IAM 实体。将此策略附加至服务相关角色，该角色允许 Amazon 应用程序恢复控制器（ARC）为可用区自动转移执行以下操作：
+ 监控客户提供的 Amazon CloudWatch 警报和客户 Health Dashboard 事件以进行练习
+ 管理练习运行（练习可用区转移）
+ 管理练习运行和自动转移的容量均衡检查

有关更多信息，请参阅 [在 ARC 中使用服务关联角色进行区域自动切换](using-service-linked-roles-zonal-autoshift.md)。

## 区域自动换档 AWS 托管策略更新
<a name="security-iam-awsmanpol-zonal-autoshift-updates"></a>

有关自该服务开始跟踪这些更改以来，ARC 中区域自动换档的 AWS 托管策略更新的详细信息，请参阅。[Amazon 应用程序恢复控制器 (ARC) AWS 托管策略的更新](security-iam-awsmanpol.md#security-iam-awsmanpol-arc-updates)有关此页面更改的自动提示，请订阅 ARC [文档历史记录页面](doc-history.md)上的 RSS 信息源。

# 可用区自动转移配额
<a name="quotas.zonal-autoshift"></a>

Amazon 应用程序恢复控制器（ARC）中的可用区自动转移受以下配额约束。


| 实体 | 配额 | 
| --- | --- | 
|  每个练习运行配置的结果警报数量  |  10 您可以[请求提高配额](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/arc-region-switch/quotas)。  | 
|  每个练习运行配置的阻止警报数量  |  10 您可以[请求提高配额](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/arc-region-switch/quotas)。  | 