关于 arc-region-switch
为 Agent 提供 Amazon Application Recovery Controller(ARC)Region switch 的技术、定位和客户沟通指导,涵盖跨 Region 故障转移编排及其边界。
主要功能
- 01跨 Region 恢复架构说明
- 02计划、工作流与执行模式指导
- 03故障恢复时间跟踪说明
- 04跨账户与安全配置建议
- 05常见误解与问题排查
适用场景
- 01准备 Region switch 客户演示
- 02设计多 Region 故障切换计划
- 03解释触发器与健康告警差异
MCP 相关
可通过 AWS MCP 的 `retrieve_skill` 工具读取技能参考文件;此技能本身是指导内容,不执行恢复操作。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill arc-region-switch安装后在 Claude Code 中输入/arc-region-switch确认已加载。
附带文件references/doc-links.mdreferences/positioning.md
详细介绍
ARC Region switch 专家
概述
让 Agent 成为 Amazon Application Recovery Controller (ARC) Region switch 专家——这项功能用于编排跨区域工作负载的故障转移和切换。支持回答技术问题、客户定位以及为 SA 沟通做准备。
Region switch 可为已部署到多个区域的应用程序编排恢复。它不会创建多区域架构,也不会处理数据复制;它只会编排现有副本和资源的故障转移。
防护措施 — 此技能自身文件的位置(MCP 与本地安装)
读取参考文件前,请先确定此技能的加载方式:
- 通过 AWS MCP
retrieve_skill工具加载: 此技能的参考文件不在本地文件系统中。请通过带有file参数的retrieve_skill获取每个文件(例如file="references/positioning.md"或file="references/doc-links.md")——不要在本地使用file_read读取这些路径,也不要在文件系统中搜索这些文件。 - 本地安装(例如
.kiro/skills/arc-region-switch/或~/.claude/skills/arc-region-switch/):请使用此处显示的相对路径,从本地技能目录读取参考文件。
这只适用于此技能自身的参考文件;始终在工作目录中读取和写入用户或会话数据,切勿通过 retrieve_skill 处理这些数据。
不适用场景
- 区域内故障转移 — Region switch 仅用于跨区域恢复。对于区域内的弹性,请使用可用区级机制(ALB、Auto Scaling)。
- 数据复制设计 — Region switch 负责编排现有副本的故障转移;它不会设置或管理复制。请使用 Aurora Global Database、DynamoDB Global Tables、S3 Cross-Region Replication 等。
- 可用区级弹性 — 对于单个区域内的可用区故障,请改用多可用区架构模式。
术语约束
- 产品名称始终使用 “Region switch”(“s” 为小写)
- 仅在指代 Routing Controls 执行区块或旧版基于集群的方法时使用 “Routing Controls”——不要将其用作 Region switch 的同义词
- 不要混淆触发器(启动执行的 CloudWatch 警报)与应用程序运行状况警报(用于衡量实际恢复时间)
- Region switch 负责编排故障转移——它不会复制数据
重要警告
- 进行中的步骤不可逆: 可以暂停或取消计划执行,但已开始的步骤无法撤销,除非再执行一次计划。
- 事件期间进行监控: 即使客户配置了计划触发器来自动启动计划执行,仍应在事件期间监控应用程序运行状况。
- 区域端点很重要: 停用某个区域时,请从运行正常的区域调用
start-plan-execution,而不要从将被停用的区域调用。激活某个区域时,请从将被激活的区域调用。请参阅 StartPlanExecution API。
工作流
- 对问题分类:技术架构、客户定位、操作指南、故障排除或比较
- 根据此技能中嵌入的知识作答
- 如果知识库信息不足,请搜索 AWS 官方文档(
docs.aws.amazon.com) - 根据受众(工程师、SA、客户)调整回答格式
始终确认:
- 术语正确(基于计划的功能应使用 Region switch,而不是 Routing Controls)
- 在适当之处提供文档链接(参见“文档链接”部分)
- 使用“定位”部分中的表述
架构
组件
| 组件 | 描述 |
|---|---|
| 计划 | 适用于多区域应用程序的顶层资源。包含工作流。 |
| 子计划 | 嵌套在父计划中的独立计划(深度为一级)。 |
| 工作流 | 计划中的有序步骤序列。定义激活/停用逻辑。 |
| 步骤 | 用于容纳一个或多个执行块的容器,可并行或按顺序运行。 |
| 执行块 | 执行特定的恢复操作(例如扩展容量、重新路由流量、数据库故障转移)。 |
| 触发器 | 基于 CloudWatch 告警的自动化,用于启动计划执行。 |
| 应用程序运行状况告警 | 指示各区域应用程序运行状况的 CloudWatch 告警;用于计算实际恢复时间。 |
| 恢复后工作流 | 可选工作流,在恢复后运行,为未来事件做准备。 |
| 计划评估 | 用于验证计划是否已准备好执行的自动检查。验证 IAM 权限、资源是否存在及其配置、容量等。 |
| 自动执行报告 | 每次计划执行后发送到 S3 的 PDF 报告,用于合规/审计。 |
执行模式
除非无法使用优雅执行(例如执行块依赖受损区域——如 Aurora/DocumentDB/Neptune 切换需要连接受损区域,或部署在受损区域的自定义操作 Lambda),否则建议使用优雅执行。
- 优雅:按顺序运行所有步骤。适用于计划内切换、灾难恢复测试,以及源区域仍运行正常的任何场景。
- 非优雅:跳过或修改某些执行块——仅运行关键步骤。仅在源区域受损且无法进行优雅执行时使用。
- 恢复后:在先前受损的区域成功恢复后运行。要求两个区域均运行正常。支持部分执行块——当前支持的执行块请参阅添加执行块文档。
主动/被动与主动/主动
| 方式 | 所需工作流 | 行为 |
|---|---|---|
| 主动/被动 | 1 个激活工作流(任一区域)或 2 个独立的激活工作流(每个区域各一个) | 从主区域故障转移到备用区域;主区域恢复后再切回 |
| 主动/主动 | 每个区域各需 1 个激活工作流和 1 个停用工作流 | 将流量移出受损区域,并在其恢复正常后切回 |
支持的执行块
执行块是区域切换工作流由哪些步骤类型组成的具体内容——每个执行块执行一项恢复操作,涵盖流量/DNS 重新路由、计算资源扩展、数据库故障转移、自定义操作 Lambda、人工审批关卡以及嵌套子计划。
请勿依赖硬编码的执行块类型列表——ARC 会随时间添加和更改执行块。查询时,请从组件和概念和添加执行块文档中获取当前支持的类型。
恢复时间跟踪
- 恢复时间目标(RTO):创建计划时设置
- 实际恢复时间:计划执行时间 + 应用程序运行状况告警恢复为绿色所需的时间
- 可在计划执行详情页查看,并与 RTO 进行比较
计划评估
- 验证:IAM 权限、资源配置、运行容量
- 警告会显示在控制台、EventBridge 和 API 中
- 评估通过本身并不足够——务必通过执行计划进行测试
自动执行报告
- 每次计划执行后都会生成 PDF 报告
- 报告会在约 30 分钟内发送到客户指定的 S3 存储桶
- 客户必须配置 S3 存储桶并更新 PlanExecutionRole 的权限,才能启用报告功能
- 内容包括:执行摘要、计划配置、执行时间线、资源状态、警报历史记录、子计划详情和术语表
- 可用于满足法规合规要求,并作为灾难恢复审计证据
- 有关加密和访问控制的指导,请参阅 Security Considerations
跨账户支持
计划可通过具有跨账户信任策略的 IAM 角色,跨多个 AWS 账户编排资源。这是面向企业客户的一项关键差异化优势——面向大型客户时务必提及。
配置跨账户信任策略时:
- 添加条件键(
aws:SourceArn、aws:SourceAccount、sts:ExternalId),以防止混淆代理攻击 - 将 IAM 策略限定为最小权限——避免使用
*资源通配符和FullAccess托管策略 - 仅对执行区块中引用的特定资源授予权限(ASG ARN、Aurora 集群 ARN、Route 53 运行状况检查 ARN 等)
区域可用性
可在多个 AWS 商业区域和 AWS GovCloud(美国)区域使用——向客户说明可用性之前,务必核实当前列表,因为区域覆盖范围会随时间变化。每个区域都有自己的数据平面端点(arc-region-switch.<region>.api.aws),确保执行不依赖受影响的区域。
请在 AWS 区域和端点查看完整的可用区域和端点列表。
安全注意事项
IAM 最小权限
- 将跨账户 IAM 角色限定为仅访问执行区块中引用的特定资源(ASG ARN、Aurora 集群 ARN、Route 53 运行状况检查 ARN、Lambda 函数 ARN 等)
- 避免使用
*资源通配符和FullAccess托管策略 - 在跨账户信任策略中添加条件键(
aws:SourceArn、aws:SourceAccount、sts:ExternalId),以防止混淆代理攻击
执行报告 S3 存储桶
- 为报告 S3 存储桶启用默认加密(优先使用 SSE-KMS)
- 添加存储桶策略,拒绝
aws:SecureTransport为false的请求(强制使用 TLS) - 将存储桶访问权限限制为仅授权人员——报告包含敏感基础设施详情(计划配置、执行时间线、资源状态、警报历史记录)
- 启用 S3 存储桶版本控制和 MFA Delete,以防篡改
- 确保存储桶无法公开访问
自定义操作 Lambda 安全性
- 为自定义操作 Lambda 函数应用最小权限执行角色
- 在 Lambda 函数中验证输入
- 不要在 Lambda 环境变量中嵌入密钥——请使用 Secrets Manager 或 Parameter Store
通知和事件目标
- 将接收计划评估警告和执行事件的 EventBridge 规则目标(SNS 主题、Lambda 函数等)限制为仅授权接收方
- 锁定 SNS 主题订阅策略和 Lambda 资源策略,避免敏感基础设施详情(计划配置、资源 ARN、执行状态)泄露给未经授权的人员
日志记录和监控
- 启用 AWS CloudTrail,以审计所有 ARC 区域切换 API 调用
- 配置 CloudWatch 警报,以检测意外或未经授权的计划执行
- 为执行报告存储桶启用 S3 访问日志记录
- 请参阅区域切换的日志记录和监控
定位
面向客户的表述、Region switch 与 Routing Controls 的比较、分析师谈话要点,以及面向不同受众的沟通指南均维护在 定位 中。遇到任何有关客户定位、竞争对比或分析师简报的问题时,请加载该参考资料。始终适用的关键规则:
- 使用“Region switch”(基于计划的编排)这一表述;切勿将旧版“routing controls”/“ARC clusters”表述说成是 Region switch(基于计划)的方法。
- 对企业客户,始终提及跨账户支持,以及每个 Region 各自的数据平面隔离。
文档链接
精选文档索引以及“何时链接哪份文档”的指南位于 文档链接 中。回答时,请加载该参考资料,以附上合适的 AWS 文档(概览、组件与概念、执行块、API/CLI、安全与 IAM、日志记录与监控、配额、Terraform provider)。
故障排除
客户混淆了触发器与运行状况告警
触发器是会启动计划执行的 CloudWatch 告警。应用运行状况告警用于衡量恢复何时完成。两者用途不同,且需分别配置。
客户认为 Region switch 会处理数据同步
请澄清:Region switch 会协调现有副本的故障转移(例如,提升 Aurora Global DB)。客户必须自行设置多 Region 数据复制。
跨账户执行失败
通常是缺少 IAM 权限。请确认:跨账户信任策略包含条件键(aws:SourceArn、aws:SourceAccount、sts:ExternalId),目标 IAM 角色 ARN 正确,并且权限范围限定为执行块中的特定资源。
计划评估警告
警告表示存在 IAM、资源或容量问题。请修复根本问题——但请注意,仅通过评估并不足够;务必通过执行计划进行测试。
使用了错误的区域端点
停用某个 Region 时,必须从健康的 Region 调用 start-plan-execution。激活某个 Region 时,必须从正在激活的 Region 调用该命令。使用错误的端点会导致失败或产生意外行为。请参阅 StartPlanExecution API。