教程:创建 active/passive 区域切换计划 - Amazon 应用程序恢复控制器(ARC)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程:创建 active/passive 区域切换计划

本教程将指导您为在 us-east-1 中运行的应用程序创建 active/passive 区域切换计划并恢复到 us-west-2。该示例包括用于计算的亚马逊 EC2 实例、用于存储的 Amazon Aurora 全球数据库和用于 DNS 的亚马逊 Route 53 实例。

在本教程中,您将完成以下步骤:

  • 创建区域切换计划

  • 构建计划的工作流程和执行块

  • 构建 A EC2 uto Scaling 组执行块

  • 构建两个手动批准执行块

  • 构建两个自定义操作 Lambda 执行块

  • 构建 Amazon Aurora Global Database 执行块

  • 构建 ARC 路由控制块

  • 执行区域切换计划

先决条件

开始本教程之前,请确认您在这两个区域都具有先决条件:

  • IAM 角色,具有适当的权限

  • EC2 Auto Scaling 群组

  • 用于维护页面和屏蔽的 Lambda 函数

  • Aurora Global Database

  • ARC 路由控制

步骤 1:创建区域切换计划

  1. 在区域切换控制台中,选择创建区域切换计划

  2. 提供以下详细信息:

    • 主要区域:选择 us-east-1

    • 备用区域:选择 us-west-2

    • 所需的恢复时间目标(RTO)(可选)

    • IAM 角色:输入计划执行 IAM 角色。此 IAM 角色允许在执行期间切换区域以呼叫 Amazon 服务。

  3. 选择创建

(可选)将来自不同 Amazon 账户的资源添加到您的区域切换套餐中:

  1. 创建跨账户角色:

    • 在托管资源的账户中,创建 IAM 角色。

    • 针对计划将要访问的特定资源添加权限。

    • 添加允许执行角色代入新该色的信任策略。

    • 输入并记下您将用作共享密钥的外部 ID。

  2. 在您的计划中配置资源:

    • 将资源添加到计划时,请指定另外两个字段:

      • crossAccountRole:您在步骤 1 中创建的角色的 ARN

      • externalId:您在步骤 1 中输入的外部 ID

访问账户 987654321 中资源的 A EC2 uto Scaling 执行块的配置示例:

{ "executionBlock": "EC2AutoScaling", "name": "ASG", "crossAccountRole": "arn:aws:iam::987654321:role/RegionSwitchCrossAccountRole", "externalId": "unique-external-id-123", "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:987654321:autoScalingGroup:*:autoScalingGroupName/CrossAccountASG" }

所需权限:

  • 执行角色必须具有跨账户角色的 sts: AssumeRole 权限。

  • 跨账户角色必须仅对要访问的特定资源具有权限。

  • 跨账户角色的信任策略必须包括:

    • 执行角色的账户作为可信实体。

    • 外部 ID 条件。

在执行计划之前,区域切换将验证以下内容:

  • 执行角色可以代入跨账户角色。

  • 跨账户角色具有所需的权限。

  • 外部 ID 与信任策略相匹配。

步骤 2:构建计划的工作流程和执行块

  1. 在区域切换计划详细信息页面中,选择构建工作流程

  2. 选择为所有区域构建相同的激活工作流程

  3. 输入区域激活工作流程描述(可选)。这将用于在执行计划时轻松识别工作流程。

  4. 选择 保存并继续

  5. 选择添加步骤,然后选择按顺序运行

  6. 选择 EC2 Auto Scaling 执行块,然后选择添加和编辑。您可以借助此块开始增加被动区域的容量。

  7. 在右窗格中,配置块:

    • 步骤名称:输入“Scale”

    • 步骤描述(可选)

    • 适用于 us-east-1 的 Auto Scaling 群组 ARN:us-east-1 中你的 ASG 的 ARN

    • us-west-2 的 A@@ uto Scaling 群组 ARN:us-west-2 中你的 ASG 的 ARN

    • 与来源区域容量匹配的百分比:输入 100

    • 容量监控方法:保留为“最近”

    • 超时(可选)

  8. 选择保存步骤

  9. 选择添加步骤

  10. 选择手动批准审批执行块并将其添加到设计窗口。通过此块,您可以继续操作之前进行人工验证。

  11. 在右窗格中,配置块:

    • 步骤名称:输入“Manual approval before setup”

    • 步骤描述(可选)

    • IAM 批准角色:用户要批准执行所必需代入的角色

    • 超时(可选)。超时后,执行将暂停,您可以选择重试、跳过或取消。

  12. 选择保存步骤

  13. 选择添加步骤

  14. 选择自定义操作 Lambda 执行块,然后选择添加和编辑。此块将在要激活的区域中发布维护页面。

  15. 在右窗格中,配置块:

    • 步骤名称:输入“Display maintenance page”

    • 步骤描述(可选)

    • 用于激活 us-east-1 的 Lambda ARN:部署在 us-east-1 中的维护页面 Lambda 函数的 ARN

    • 用于激活 us-west-2 的 Lambda ARN:部署在 us-west-2 中的维护页面 Lambda 函数的 ARN

    • 运行 Lambda 函数的区域:选择在激活区域运行

    • 超时(可选)

    • 重试间隔(可选)

  16. 选择保存步骤

  17. 选择添加步骤

  18. 选择第二个自定义操作 Lambda 执行块,然后选择添加和编辑。此封锁会触发活跃区域中的屏蔽机制,确保停用的区域无法再接受流量。

  19. 在右窗格中,配置块:

    • 步骤名称:输入“Fencing”

    • 步骤描述(可选)

    • 用于激活 us-east-1 的 Lambda ARN:部署在 us-east-1 中的屏蔽 Lambda 函数的 ARN

    • 用于激活 us-west-2 的 Lambda ARN:部署在 us-west-2 中的屏蔽 Lambda 函数的 ARN

    • 运行 Lambda 函数的区域:选择在停用区域运行

    • 超时(可选)

    • 重试间隔(可选)

  20. 选择保存步骤

  21. 选择添加步骤

  22. 选择手动批准执行块,然后选择添加并编辑。此块请求团队成员批准。

  23. 在右窗格中,配置块:

    • 步骤名称:输入 Manual approval before Database and DNS change

    • 步骤描述(可选)

    • IAM 审批角色:用户批准执行所需代入的角色

    • 超时(可选)

  24. 选择保存步骤

  25. 选择添加步骤

  26. 选择 Aurora Global Database 执行块,然后选择添加和编辑。此块会触发 Aurora Global Database 切换(不会丢失数据)。有关更多信息,请参阅《Aurora 用户指南》中的在 Aurora Global Database 中使用切换或失效转移

  27. 在右窗格中,配置块:

    • 步骤名称:输入 Aurora switchover

    • 步骤描述(可选)

    • Aurora Global Database 标识符:Aurora 集群的名称

    • 用于激活 us-east-1 的集群 ARN:us-east-1 中的 Aurora 集群 ARN

    • 用于激活 us-west-2 的集群 ARN:us-west-2 中的 Aurora 集群 ARN

    • 选择 Aurora 数据库的选项:选择切换

    • 超时(可选)

  28. 选择保存步骤

  29. 选择添加步骤

  30. 选择 ARC 路由控制执行块,然后选择添加和编辑。此块执行 DNS 故障转移以将流量转移到被动区域。

  31. 在右窗格中,配置块:

    • 步骤名称:输入 Toggle DNS

    • 步骤描述(可选)

    • 激活 us-east-1 中使用的路由控制:选择添加路由控制

    • 超时:输入超时值。

  32. 选择添加路由控制

    • 路由控制 ARN:控制 us-east-1 的路由控制的 ARN

    • 路由控制状态:选择开启

  33. 再次选择添加路由控制

    • 路由控制 ARN:控制 us-west-2 的路由控制的 ARN

    • 路由控制状态:选择关闭

  34. 选择保存

  35. 激活 us-west-2 中使用的路由控制:选择添加路由控制

  36. 选择添加路由控制

    • 路由控制 ARN:控制 us-west-2 的路由控制的 ARN

    • 路由控制状态:选择开启

  37. 再次选择添加路由控制

    • 路由控制 ARN:控制 us-east-1 的路由控制的 ARN

    • 路由控制状态:选择关闭

  38. 选择保存

  39. 选择保存步骤

  40. 选择保存

步骤 3:执行计划

  1. 在区域切换计划详细信息页面的右上角,选择执行

  2. 输入执行详细信息:

    • 选择要激活的区域。

    • 选择计划执行模式。

    • (可选)查看执行步骤。

    • 确认计划执行。

  3. 选择启动

  4. 您可以在执行详细信息页面上查看计划执行的详细信息步骤。您可以看到计划执行中的每个步骤,包括开始时间、结束时间、资源 ARN 和日志消息。

受影响区域恢复后,您可以再次执行计划(更改您提供的参数)以激活原始区域,将应用程序操作切换回原始主区域。