mcpField
A
arc-region-switch

arc-region-switch

github.com/aws云与 DevOps3.3k4.0k 次安装今天更新
代码仓库

关于 arc-region-switch

为 Agent 提供 Amazon Application Recovery Controller(ARC)Region switch 的技术、定位和客户沟通指导,涵盖跨 Region 故障转移编排及其边界。

主要功能

  1. 01跨 Region 恢复架构说明
  2. 02计划、工作流与执行模式指导
  3. 03故障恢复时间跟踪说明
  4. 04跨账户与安全配置建议
  5. 05常见误解与问题排查

适用场景

  1. 01准备 Region switch 客户演示
  2. 02设计多 Region 故障切换计划
  3. 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。

工作流

  1. 对问题分类:技术架构、客户定位、操作指南、故障排除或比较
  2. 根据此技能中嵌入的知识作答
  3. 如果知识库信息不足,请搜索 AWS 官方文档(docs.aws.amazon.com)
  4. 根据受众(工程师、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。

评论

支持 Markdown