mcpField
A
arc-region-switch

arc-region-switch

github.com/awsクラウド・DevOps3.3k4.0k 回インストール今日更新
リポジトリ

arc-region-switch について

Amazon Application Recovery Controller(ARC)Region switch に関する技術、位置付け、顧客対応の指針をエージェントに提供します。リージョン間の復旧オーケストレーションと、その対象範囲を説明します。

主な機能

  1. 01リージョン間復旧アーキテクチャの解説
  2. 02プラン、ワークフロー、実行モードの指針
  3. 03復旧時間の追跡に関する説明
  4. 04クロスアカウントとセキュリティの推奨事項
  5. 05よくある誤解の解消とトラブルシューティング

活用シーン

  1. 01Region switch の顧客説明を準備
  2. 02マルチリージョンのフェイルオーバープランを設計
  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 エキスパート

概要

エージェントをAmazon Application Recovery Controller(ARC)Region switchのエキスパートにします。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 はクロスリージョンの復旧専用です。リージョン内の耐障害性には、AZ レベルのメカニズム(ALB、Auto Scaling)を使用してください。
  • データレプリケーションの設計 — Region switch は既存のレプリカのフェイルオーバーをオーケストレーションしますが、レプリケーションの設定や管理は行いません。Aurora Global Database、DynamoDB Global Tables、S3 Cross-Region Replication などを使用してください。
  • AZ レベルの耐障害性 — 単一リージョン内のアベイラビリティーゾーン障害には、代わりにマルチ AZ アーキテクチャのパターンを使用してください。

用語に関する制約

  • 製品名には必ず「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、顧客)に合わせて回答を整えます

必ず次の点を確認してください。

  • 正しい用語を使用していること(プランベースの機能では「Routing Controls」ではなく「Region switch」)
  • 必要に応じてドキュメントへのリンクを含めること(「ドキュメントへのリンク」セクションを参照)
  • 「位置付け」セクションの表現を使用すること

アーキテクチャ

コンポーネント
コンポーネント説明
プラン複数リージョンのアプリケーションを対象とする最上位のリソースです。ワークフローを含みます。
子プラン親プラン内にネストされた、自己完結型のプランです(ネストは1階層まで)。
ワークフロープラン内の順序付けられたステップのシーケンスです。アクティベーション/ディアクティベーションのロジックを定義します。
ステップ1つ以上の実行ブロックを格納するコンテナです。実行ブロックは並列または順番に実行されます。
実行ブロック特定の復旧アクション(例:スケールアップ、トラフィックの再ルーティング、データベースのフェイルオーバー)を実行します。
トリガープランの実行を開始する、CloudWatch アラームに基づく自動化です。
アプリケーションヘルスアラームリージョンごとのアプリケーションの状態を示す CloudWatch アラームです。実際の復旧時間の計算に使用されます。
復旧後ワークフロー復旧後に実行され、将来のイベントに備えるための任意のワークフローです。
プラン評価プランを実行できる状態かを確認する自動チェックです。IAM 権限、リソースの存在と設定、キャパシティなどを検証します。
自動実行レポートコンプライアンス/監査用に、各プラン実行後に S3 に配信される PDF レポートです。
実行モード

可能でない場合(たとえば、Aurora/DocumentDB/Neptune のスイッチオーバーで障害のあるリージョンへの接続が必要な場合や、カスタムアクションの Lambda が障害のあるリージョンにデプロイされている場合)を除き、グレースフル実行の使用を推奨します。

  • グレースフル:すべてのステップを順序どおりに実行します。計画的なスイッチオーバー、DR テスト、ソースリージョンがまだ正常なあらゆるシナリオで推奨されます。
  • 非グレースフル:一部の実行ブロックをスキップまたは変更し、重要なステップのみを実行します。ソースリージョンに障害があり、グレースフル実行が不可能な場合にのみ使用してください。
  • 復旧後:以前に障害があったリージョンでの復旧が成功した後に実行されます。両方のリージョンが正常である必要があります。一部の実行ブロックに対応しています。現在の対応状況については、実行ブロックの追加のドキュメントを参照してください。
アクティブ/パッシブとアクティブ/アクティブ
アプローチ必要なワークフロー動作
アクティブ/パッシブ1つのアクティベーションワークフロー(どちらかのリージョン)または2つの個別のアクティベーションワークフロー(リージョンごとに1つ)プライマリからスタンバイへのフェイルオーバー、プライマリ復旧後のフェイルバック
アクティブ/アクティブリージョンごとに1つのアクティベーションワークフローと1つのディアクティベーションワークフロー障害のあるリージョンからトラフィックを移し、正常化後に戻します
対応している実行ブロック

実行ブロックは、リージョン切り替えワークフローを構成する個々のステップの種類です。それぞれが、トラフィック/DNS の再ルーティング、コンピューティングのスケーリング、データベースのフェイルオーバー、カスタムアクションの Lambda、手動承認ゲート、ネストされた子プランなど、1つの復旧アクションを実行します。

ブロックの種類をハードコードした一覧に依存しないでください — ARC は実行ブロックを随時追加・変更します。クエリ時に、コンポーネントと概念および実行ブロックの追加のドキュメントから、現在対応している種類を取得してください。

復旧時間の追跡
  • 目標復旧時間(RTO):プランの作成時に設定します
  • 実際の復旧時間:プランの実行時間と、アプリケーションヘルスアラームが正常に戻るまでの時間の合計です
  • プランの実行詳細ページで、RTO と比較できます
プラン評価
  • 検証対象:IAM 権限、リソース設定、実行キャパシティ
  • 警告はコンソール、EventBridge、API で通知されます
  • 評価に合格しただけでは不十分です。必ずプランを実行してテストしてください
自動実行レポート
  • 各プラン実行後に PDF レポートが生成されます
  • 顧客が指定した S3 バケットに配信されます(約 30 分以内)
  • レポートを有効にするには、顧客が S3 バケットを設定し、PlanExecutionRole の権限を更新する必要があります
  • 内容:エグゼクティブサマリー、プラン設定、実行タイムライン、リソースの状態、アラーム履歴、子プランの詳細、用語集
  • 規制コンプライアンスや DR 監査の証跡として役立ちます
  • 暗号化とアクセス制御のガイダンスについては、「セキュリティに関する考慮事項」を参照してください

クロスアカウントのサポート

プランでは、クロスアカウント信頼ポリシーを持つ IAM ロールを通じて、複数の AWS アカウントにまたがるリソースをオーケストレーションできます。これはエンタープライズ向けの重要な差別化要素です。大規模なお客様には必ず説明してください。

クロスアカウント信頼ポリシーを設定する際は、次の点に注意してください。

  • 混乱した代理人攻撃を防ぐため、条件キー(aws:SourceArn、aws:SourceAccount、sts:ExternalId)を含めます
  • IAM ポリシーは最小権限に設定し、* のリソースワイルドカードや FullAccess の管理ポリシーは避けます
  • 実行ブロックで参照されている特定のリソース(ASG ARN、Aurora クラスター ARN、Route 53 ヘルスチェック ARN など)のみに権限を限定します

リージョンの利用可能状況

複数の商用 AWS リージョンおよび AWS GovCloud(US)リージョンで利用できます。リージョンの対象範囲は随時変更されるため、お客様に利用可能状況を伝える前に、必ず最新の一覧を確認してください。各リージョンには独自のデータプレーンエンドポイント(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、実行状態)が許可されていない関係者に公開されないようにします
ログ記録とモニタリング
  • すべての ARC リージョンスイッチ API 呼び出しを監査するため、AWS CloudTrail を有効にします
  • 予期しないプラン実行や許可されていないプラン実行に対する CloudWatch アラームを設定します
  • 実行レポート用バケットで S3 アクセスログを有効にします
  • リージョンスイッチのログ記録とモニタリングを参照してください

ポジショニング

顧客向けの説明、「リージョンスイッチ」とルーティングコントロールの比較、アナリスト向けの説明ポイント、対象者別の会話ガイダンスは、ポジショニング で管理されています。顧客向けのポジショニング、競合比較、アナリスト向けブリーフィングに関する質問には、このリファレンスを読み込んでください。常に適用される主なルールは次のとおりです。

  • 「リージョンスイッチ」(プランベースのオーケストレーション)として説明してください。従来の「ルーティングコントロール」/「ARC クラスター」という表現を、リージョンスイッチ(プランベースのアプローチ)として提示しないでください。
  • エンタープライズ顧客には、クロスアカウント対応とリージョンごとのデータプレーンによる分離を必ず説明してください。

ドキュメントへのリンク

厳選されたドキュメントの一覧と「どのドキュメントにいつリンクするか」のガイダンスは、ドキュメントへのリンク にあります。回答に適切な AWS ドキュメント(概要、コンポーネントと概念、実行ブロック、API/CLI、セキュリティと IAM、ログ記録とモニタリング、クォータ、Terraform プロバイダー)を添付するには、このリファレンスを読み込んでください。

トラブルシューティング

顧客がトリガーとヘルスアラームを混同している

トリガーは、プランの実行を開始する CloudWatch アラームです。アプリケーションのヘルスアラームは、復旧の完了を測定します。それぞれ用途が異なり、個別に設定します。

顧客がリージョンスイッチでデータ同期も行われると思っている

リージョンスイッチは既存のレプリカのフェイルオーバー(Aurora Global DB の昇格など)をオーケストレーションすることを説明してください。マルチリージョンのデータレプリケーションは、顧客が別途設定する必要があります。

クロスアカウント実行が失敗する

通常、IAM 権限が不足しています。クロスアカウントの信頼ポリシーに条件キー(aws:SourceArn、aws:SourceAccount、sts:ExternalId)が含まれていること、ターゲット IAM ロール ARN が正しいこと、権限の対象が実行ブロック内の特定のリソースに限定されていることを確認してください。

プランの評価に関する警告

警告は IAM、リソース、またはキャパシティの問題を示しています。根本的な問題を修正してください。ただし、評価に合格しただけでは不十分です。必ずプランを実行してテストしてください。

間違ったリージョンのエンドポイントが使用されている

リージョンを非アクティブ化する場合、start-plan-execution は正常なリージョンから呼び出す必要があります。リージョンをアクティブ化する場合は、アクティブ化するリージョンから呼び出す必要があります。間違ったエンドポイントを使用すると、失敗したり、予期しない動作が発生したりします。StartPlanExecution API を参照してください。

コメント