> **arc-region-switch** — chapter 94 of 120 in [aws/agent-toolkit-for-aws](https://skillsdocs.com/aws/agent-toolkit-for-aws).
>
> Book (all chapters, one file): https://skillsdocs.com/aws/agent-toolkit-for-aws.md
> Machine manifest: https://skillsdocs.com/aws/agent-toolkit-for-aws/.well-known/agent-skills/index.json
> Install the book: `npx skills add aws/agent-toolkit-for-aws`
> Upstream: https://github.com/aws/agent-toolkit-for-aws/blob/main/skills/specialized-skills/resilience-skills/arc-region-switch/SKILL.md @ `main`
> Raw bytes, no header: https://raw.githubusercontent.com/aws/agent-toolkit-for-aws/main/skills/specialized-skills/resilience-skills/arc-region-switch/SKILL.md
> Base for relative paths: https://raw.githubusercontent.com/aws/agent-toolkit-for-aws/main/skills/specialized-skills/resilience-skills/arc-region-switch/
> Licence: Apache-2.0 — https://spdx.org/licenses/Apache-2.0.html
>
> Bundled files (2), referenced from this skill's directory:
>   - `references/doc-links.md` — https://raw.githubusercontent.com/aws/agent-toolkit-for-aws/main/skills/specialized-skills/resilience-skills/arc-region-switch/references/doc-links.md
>   - `references/positioning.md` — https://raw.githubusercontent.com/aws/agent-toolkit-for-aws/main/skills/specialized-skills/resilience-skills/arc-region-switch/references/positioning.md
>
> Content © its authors, served unmodified. Takedown: https://github.com/kyleledbetter/skillsdocs/issues/new?labels=takedown&title=Takedown+request

<!-- Verbatim upstream SKILL.md follows, YAML frontmatter included. -->

---
name: arc-region-switch
description: "Answers questions about Amazon Application Recovery Controller (ARC) Region switch including architecture, plans, execution blocks, workflows, triggers, active/active vs active/passive, cross-account support, recovery time, dashboards, and customer positioning. Applicable when users ask about ARC Region switch adoption, design, or troubleshooting."
version: 1
---

# ARC Region switch Expert

## Overview

Makes the agent an expert on **Amazon Application Recovery Controller (ARC) Region switch** — the feature for orchestrating cross-Region workload failover and switchover. Supports technical questions, customer positioning, and SA engagement preparation.

Region switch orchestrates recovery for applications already deployed multi-Region. It does not create multi-Region architecture or handle data replication — it orchestrates failover of existing replicas and resources.

## Guardrail — where this skill's own files live (MCP vs local install)

Before reading a reference file, determine how this skill was loaded:

- **Loaded via the AWS MCP `retrieve_skill` tool:** the skill's reference files are not on the local filesystem. Fetch each one through `retrieve_skill` with the `file` parameter (e.g. `file="references/positioning.md"` or `file="references/doc-links.md"`) — do NOT `file_read` these paths locally or search the filesystem for them.
- **Installed locally** (e.g. `.kiro/skills/arc-region-switch/` or `~/.claude/skills/arc-region-switch/`): read reference files from the local skill directory using the relative paths shown here.

This applies only to the skill's own reference files; always read and write user or session data in the working directory, never through `retrieve_skill`.

## When Not to Use

- **In-Region failover** — Region switch is for cross-Region recovery only. Use AZ-level mechanisms (ALB, Auto Scaling) for in-Region resilience.
- **Data replication design** — Region switch orchestrates failover of existing replicas; it does not set up or manage replication. Use Aurora Global Database, DynamoDB Global Tables, S3 Cross-Region Replication, etc.
- **AZ-level resiliency** — For Availability Zone failures within a single Region, use multi-AZ architecture patterns instead.

## Terminology Constraints

- ALWAYS use "Region switch" (lowercase 's') for the product name
- Use "Routing Controls" only when referring to the Routing Controls execution block or the legacy cluster-based approach — do not use it as a synonym for Region switch
- Do NOT conflate **triggers** (CloudWatch alarms that start execution) with **application health alarms** (measure actual recovery time)
- Region switch orchestrates failover — it does NOT replicate data

## Critical Warnings

- **Irreversible in-progress steps**: Plan executions can be paused or cancelled, but any step that is already started cannot be reversed without another plan execution.
- **Monitor during events**: Customers should still monitor their application health during an event, even if they configure plan triggers to automatically start a plan execution.
- **Regional endpoint matters**: When deactivating a Region, call `start-plan-execution` from the healthy Region, not the Region being deactivated. When activating a Region, call from the Region being activated. See [StartPlanExecution API](https://docs.aws.amazon.com/arc-region-switch/latest/api/API_StartPlanExecution.html).

## Workflow

1. Classify the question: technical architecture, customer positioning, how-to, troubleshooting, or comparison
2. Answer from embedded knowledge in this skill
3. If the knowledge base is insufficient, search official AWS documentation (`docs.aws.amazon.com`)
4. Format the response for the audience (engineer, SA, customer)

Always validate:

- Correct terminology (Region switch, not routing controls for plan-based features)
- Include doc links where helpful (see Documentation Links section)
- Use positioning language from the Positioning section

## Architecture

### Components

| Component | Description |
|-----------|-------------|
| **Plan** | Top-level resource scoped to a multi-Region application. Contains workflows. |
| **Child Plan** | A self-contained plan nested within a parent plan (one level deep). |
| **Workflow** | Ordered sequence of steps within a plan. Defines activation/deactivation logic. |
| **Step** | Container for one or more execution blocks, run in parallel or sequence. |
| **Execution Block** | Performs a specific recovery action (e.g., scale up, reroute traffic, failover DB). |
| **Trigger** | CloudWatch alarm-based automation that initiates plan execution. |
| **Application Health Alarms** | CloudWatch alarms indicating app health per Region; used to calculate actual recovery time. |
| **Post-recovery Workflow** | Optional workflow that runs after recovery to prepare for future events. |
| **Plan Evaluation** | Automated checks verifying plan execution readiness. Verifies IAM permissions, resource existence and configuration, capacity, etc. |
| **Automatic Execution Reports** | PDF reports delivered to S3 after each plan execution for compliance/audit. |

### Execution Modes

Recommend using graceful execution unless not possible (e.g., when an execution block has a dependency on the impaired Region — such as Aurora/DocumentDB/Neptune switchover requiring connectivity to the impaired Region, or a Custom Action Lambda deployed in the impaired Region).

- **Graceful**: Runs all steps in orderly sequence. Preferred for planned switchovers, DR tests, and any scenario where the source Region is still healthy.
- **Ungraceful**: Skips or modifies certain execution blocks — only critical steps run. Use only when the source Region is impaired and graceful execution is not possible.
- **Post-recovery**: Runs after successful recovery in the previously-impaired Region. Requires both Regions to be healthy. Supports a subset of execution blocks — see the [Add execution blocks](https://docs.aws.amazon.com/r53recovery/latest/dg/working-with-rs-execution-blocks.html) documentation for the current set.

### Active/Passive vs Active/Active

| Approach | Workflows Needed | Behavior |
|----------|-----------------|----------|
| **Active/Passive** | 1 activation workflow (either Region) OR 2 separate activation workflows (one per Region) | Failover from primary to standby; failback when primary recovers |
| **Active/Active** | 1 activation workflow + 1 deactivation workflow per Region | Shift-away from impaired Region + return when healthy |

### Supported Execution Blocks

Execution blocks are the individual step types a Region switch workflow is composed of — each performs one recovery action, spanning traffic/DNS rerouting, compute scaling, database failover, custom-action Lambdas, manual-approval gates, and nested child plans.

**Do not rely on a hardcoded list of block types** — ARC adds and changes execution blocks over time. Retrieve the current supported set at query time from the [Components & concepts](https://docs.aws.amazon.com/r53recovery/latest/dg/components-rs.html) and [Add execution blocks](https://docs.aws.amazon.com/r53recovery/latest/dg/working-with-rs-execution-blocks.html) documentation.

### Recovery Time Tracking

- **Recovery Time Objective (RTO)**: Set when creating a plan
- **Actual Recovery Time**: Plan execution time + time for application health alarms to return to green
- Visible on plan execution details page for comparison against RTO

### Plan Evaluation

- Validates: IAM permissions, resource configurations, running capacity
- Warnings surfaced in console, EventBridge, and API
- Passing evaluation alone is NOT sufficient — always test by executing plans

### Automatic Execution Reports

- PDF reports generated after each plan execution
- Delivered to customer-specified S3 bucket (within ~30 min)
- Customers must configure the S3 bucket and update permissions for the PlanExecutionRole to enable reporting
- Contents: executive summary, plan config, execution timeline, resource states, alarm history, child plan details, glossary
- Useful for regulatory compliance and DR audit evidence
- See Security Considerations for encryption and access control guidance

## Cross-Account Support

Plans can orchestrate resources across multiple AWS accounts via IAM roles with cross-account trust policies. This is a key enterprise differentiator — always mention it for large customers.

When configuring cross-account trust policies:

- Include condition keys (`aws:SourceArn`, `aws:SourceAccount`, `sts:ExternalId`) to prevent confused deputy attacks
- Scope IAM policies to least privilege — avoid `*` resource wildcards and `FullAccess` managed policies
- Scope permissions to only the specific resources (ASG ARNs, Aurora cluster ARNs, Route 53 health check ARNs, etc.) referenced in execution blocks

## Regional Availability

Available in multiple commercial AWS Regions and AWS GovCloud (US) Regions — always verify the current list before stating availability to a customer, as Region coverage changes over time. Each Region has its own data-plane endpoint (`arc-region-switch.<region>.api.aws`), ensuring execution doesn't depend on the impaired Region.

> Verify the complete list of available regions/endpoints at [AWS Regions & endpoints](https://docs.aws.amazon.com/r53recovery/latest/dg/aws-regions-rs.html).

## Security Considerations

### IAM Least Privilege

- Scope cross-account IAM roles to only the specific resources referenced in execution blocks (ASG ARNs, Aurora cluster ARNs, Route 53 health check ARNs, Lambda function ARNs, etc.)
- Avoid `*` resource wildcards and `FullAccess` managed policies
- Include condition keys (`aws:SourceArn`, `aws:SourceAccount`, `sts:ExternalId`) in cross-account trust policies to prevent confused deputy attacks

### Execution Reports S3 Bucket

- Enable default encryption (SSE-KMS preferred) on the reports S3 bucket
- Add a bucket policy denying requests where `aws:SecureTransport` is `false` (enforce TLS)
- Restrict bucket access to authorized personnel only — reports contain sensitive infrastructure details (plan config, execution timeline, resource states, alarm history)
- Enable S3 bucket versioning and MFA Delete for tamper protection
- Ensure the bucket is not publicly accessible

### Custom Action Lambda Security

- Apply least-privilege execution roles to Custom Action Lambda functions
- Validate inputs within Lambda functions
- Do not embed secrets in Lambda environment variables — use Secrets Manager or Parameter Store

### Notification & Event Targets

- Restrict EventBridge rule targets (SNS topics, Lambda functions, etc.) that receive plan-evaluation warnings and execution events to authorized recipients only
- Lock down SNS topic subscription policies and Lambda resource policies so sensitive infrastructure details (plan configuration, resource ARNs, execution state) are not exposed to unauthorized parties

### Logging and Monitoring

- Enable AWS CloudTrail for auditing all ARC Region switch API calls
- Configure CloudWatch alarms for unexpected or unauthorized plan executions
- Enable S3 access logging on the execution reports bucket
- See [Logging and monitoring for Region switch](https://docs.aws.amazon.com/r53recovery/latest/dg/logging-and-monitoring-rs.html)

## Positioning

Customer-facing framing, the Region switch vs Routing Controls comparison, analyst talking
points, and per-audience conversation guidance are maintained in
**[Positioning](references/positioning.md)**. Load that reference for any customer-positioning,
competitive-comparison, or analyst-briefing question. Key rules that always apply:

- Use "Region switch" (plan-based orchestration) framing; do NOT present legacy "routing controls"
  / "ARC clusters" language as the Region switch (plan-based) approach.
- Always mention **cross-account** support and **data-plane-per-Region** isolation for enterprise customers.

## Documentation Links

The curated documentation index and the "when to link which doc" guidance live in
**[Documentation Links](references/doc-links.md)**. Load that reference to attach the right AWS
doc to an answer (overview, components & concepts, execution blocks, API/CLI, security & IAM,
logging & monitoring, quotas, Terraform provider).

## Troubleshooting

### Customer confuses triggers with health alarms
Triggers are CloudWatch alarms that **start** plan execution. Application health alarms **measure** when recovery is complete. They serve different purposes and are configured separately.

### Customer assumes Region switch handles data sync
Clarify: Region switch orchestrates failover of existing replicas (e.g., Aurora Global DB promotion). The customer must set up multi-Region data replication independently.

### Cross-account execution fails
Usually missing IAM permissions. Verify: cross-account trust policy includes condition keys (`aws:SourceArn`, `aws:SourceAccount`, `sts:ExternalId`), target IAM role ARN is correct, and permissions are scoped to the specific resources in the execution blocks.

### Plan evaluation warnings
Warnings indicate IAM, resource, or capacity issues. Fix the underlying issue — but note that passing evaluation alone isn't sufficient; always test by executing plans.

### Wrong Regional endpoint used
When deactivating a Region, `start-plan-execution` MUST be called from the healthy Region. When activating a Region, it MUST be called from the Region being activated. Using the wrong endpoint will fail or produce unexpected behavior. See [StartPlanExecution API](https://docs.aws.amazon.com/arc-region-switch/latest/api/API_StartPlanExecution.html).
