本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:创建 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:创建区域切换计划
-
在区域切换控制台中,选择创建区域切换计划。
-
提供以下详细信息:
主要区域:选择 us-east-1
备用区域:选择 us-west-2
所需的恢复时间目标(RTO)(可选)
IAM 角色:输入计划执行 IAM 角色。此 IAM 角色允许在执行期间切换区域以呼叫 Amazon 服务。
-
选择创建。
(可选)将来自不同 Amazon 账户的资源添加到您的区域切换套餐中:
-
创建跨账户角色:
在托管资源的账户中,创建 IAM 角色。
针对计划将要访问的特定资源添加权限。
添加允许执行角色代入新该色的信任策略。
输入并记下您将用作共享密钥的外部 ID。
-
在您的计划中配置资源:
将资源添加到计划时,请指定另外两个字段:
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:构建计划的工作流程和执行块
-
在区域切换计划详细信息页面中,选择构建工作流程。
-
选择为所有区域构建相同的激活工作流程。
-
输入区域激活工作流程描述(可选)。这将用于在执行计划时轻松识别工作流程。
-
选择 保存并继续。
-
选择添加步骤,然后选择按顺序运行。
-
选择 EC2 Auto Scaling 执行块,然后选择添加和编辑。您可以借助此块开始增加被动区域的容量。
-
在右窗格中,配置块:
步骤名称:输入“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
容量监控方法:保留为“最近”
超时(可选)
-
选择保存步骤。
-
选择添加步骤。
-
选择手动批准审批执行块并将其添加到设计窗口。通过此块,您可以继续操作之前进行人工验证。
-
在右窗格中,配置块:
步骤名称:输入“Manual approval before setup”
步骤描述(可选)
IAM 批准角色:用户要批准执行所必需代入的角色
超时(可选)。超时后,执行将暂停,您可以选择重试、跳过或取消。
-
选择保存步骤。
-
选择添加步骤。
-
选择自定义操作 Lambda 执行块,然后选择添加和编辑。此块将在要激活的区域中发布维护页面。
-
在右窗格中,配置块:
步骤名称:输入“Display maintenance page”
步骤描述(可选)
用于激活 us-east-1 的 Lambda ARN:部署在 us-east-1 中的维护页面 Lambda 函数的 ARN
用于激活 us-west-2 的 Lambda ARN:部署在 us-west-2 中的维护页面 Lambda 函数的 ARN
运行 Lambda 函数的区域:选择在激活区域运行
超时(可选)
重试间隔(可选)
-
选择保存步骤。
-
选择添加步骤。
-
选择第二个自定义操作 Lambda 执行块,然后选择添加和编辑。此封锁会触发活跃区域中的屏蔽机制,确保停用的区域无法再接受流量。
-
在右窗格中,配置块:
步骤名称:输入“Fencing”
步骤描述(可选)
用于激活 us-east-1 的 Lambda ARN:部署在 us-east-1 中的屏蔽 Lambda 函数的 ARN
用于激活 us-west-2 的 Lambda ARN:部署在 us-west-2 中的屏蔽 Lambda 函数的 ARN
运行 Lambda 函数的区域:选择在停用区域运行
超时(可选)
重试间隔(可选)
-
选择保存步骤。
-
选择添加步骤。
-
选择手动批准执行块,然后选择添加并编辑。此块请求团队成员批准。
-
在右窗格中,配置块:
步骤名称:输入 Manual approval before Database and DNS change
步骤描述(可选)
IAM 审批角色:用户批准执行所需代入的角色
超时(可选)
-
选择保存步骤。
-
选择添加步骤。
-
选择 Aurora Global Database 执行块,然后选择添加和编辑。此块会触发 Aurora Global Database 切换(不会丢失数据)。有关更多信息,请参阅《Aurora 用户指南》中的在 Aurora Global Database 中使用切换或失效转移。
-
在右窗格中,配置块:
步骤名称:输入 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 数据库的选项:选择切换
超时(可选)
-
选择保存步骤。
-
选择添加步骤。
-
选择 ARC 路由控制执行块,然后选择添加和编辑。此块执行 DNS 故障转移以将流量转移到被动区域。
-
在右窗格中,配置块:
步骤名称:输入 Toggle DNS
步骤描述(可选)
激活 us-east-1 中使用的路由控制:选择添加路由控制
超时:输入超时值。
-
选择添加路由控制:
路由控制 ARN:控制 us-east-1 的路由控制的 ARN
路由控制状态:选择开启
-
再次选择添加路由控制:
路由控制 ARN:控制 us-west-2 的路由控制的 ARN
路由控制状态:选择关闭
-
选择保存。
-
激活 us-west-2 中使用的路由控制:选择添加路由控制
-
选择添加路由控制:
路由控制 ARN:控制 us-west-2 的路由控制的 ARN
路由控制状态:选择开启
-
再次选择添加路由控制:
路由控制 ARN:控制 us-east-1 的路由控制的 ARN
路由控制状态:选择关闭
-
选择保存。
-
选择保存步骤。
-
选择保存。
步骤 3:执行计划
-
在区域切换计划详细信息页面的右上角,选择执行。
-
输入执行详细信息:
选择要激活的区域。
选择计划执行模式。
(可选)查看执行步骤。
确认计划执行。
-
选择启动。
-
您可以在执行详细信息页面上查看计划执行的详细信息步骤。您可以看到计划执行中的每个步骤,包括开始时间、结束时间、资源 ARN 和日志消息。
受影响区域恢复后,您可以再次执行计划(更改您提供的参数)以激活原始区域,将应用程序操作切换回原始主区域。