View a markdown version of this page

マルチリージョン: 復旧 - AWS レジリエンスハブ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マルチリージョン: 復旧

マルチリージョン: 復旧テストでは、1 つのリージョンの依存関係に障害が発生し、サービスが復旧目標内の復旧リージョンからクライアントを復旧して提供できることを検証します。このテストは、アクティブ/アクティブアーキテクチャとアクティブ/パッシブアーキテクチャの両方に適用されます。たとえば、復旧手順を開始し、復旧リージョンで定義された目標復旧時間 (RTO) 内にサービスが復旧することを確認できます。

このテストを一意にする理由
  • リージョン内のレジリエンスだけでなく、復旧目標に照らして別のリージョンへの復旧を検証します。

  • 検出と復旧を練習できるように、プライマリリージョンでどの依存関係を損なうかを選択します。

  • テストは ARC リージョンスイッチと統合されるため、テストレポートで計画実行の詳細を追跡できます。

このテストに合格する方法
  • これは復旧テストです。RTO カウントダウンは、テストアクションの開始時に開始されます。すべての成功アラームがマルチリージョン RTO 内のOK状態に戻り、テストアクションが終了するまでそこにとどまる場合、テストは合格です。サービスには、マルチリージョン RTO が定義されたレジリエンスポリシーが必要です。

考慮すべき事項
  • 障害が発生したリージョンで、復旧手順をトリガーするのに十分な大きさの依存関係を選択します。ブロックすると、そのリージョンが著しく損なわれるようなハード依存関係または DNS エンドポイントを選択します。

  • テストは障害のあるリージョンに障害を挿入します。復旧アクションは自分で実行します (フェイルオーバー/ARC リージョンスイッチプランのトリガーなど)。テストでは、アラーム状態を評価することで、復旧リージョンが RTO 内で正常であるかどうかを監視します。

  • トラフィックを処理していることを検証する復旧リージョンで成功アラームを選択するか、全体的なカスタマーエクスペリエンスを反映するグローバル/アプリケーションレベルのアラームを使用します。

  • 復旧が持続していることを検証するために、RTO よりも長い期間を設定することを検討してください。

  • テスト中に依存関係がアクティブに使用されている (トラフィックがアクティブに流れている) ことを確認します。これにより、ブロックが効果を持っていることが検証されます。依存関係の使用状況 (リクエスト数や接続エラーなど) を追跡するアラームやメトリクスを追加して、テスト中に依存関係が実行されていることを確認することを検討してください。

  • 依存関係は解決可能な DNS エンドポイントである必要があります。

  • ヘルスチェックの失敗をトリガーする依存関係をブロックすると、コンピューティング (Amazon ECS タスクなど) が置き換えられる可能性があります。パケット損失アクションは置き換えタスクに再適用されず、失敗としてレポートされる場合があります。

主要なテストパラメータ
  • 障害のあるリージョン – 障害が挿入されるリージョン。

  • 復旧リージョン – サービスが復旧する予定のリージョン。

  • Duration – テストアクションが実行される時間の長さ。テストが終了する前に、最終結果を収集するまでに数分かかります。デフォルトで、サービスポリシーからマルチリージョン RTO に加えて、テストを初めて作成するときの 30 分が設定されます。

  • ブロックする依存関係 – ブロックするとサービスが大幅に損なわれ、別のリージョンへのフェイルオーバーを検証するのに役立つ依存関係を選択します。デフォルトでは、最も高いクエリボリュームで検出されたハード依存関係が事前に選択されています。依存関係がハードに分類されていない場合は、何も選択されません。DNS ドメイン名で依存関係を調整または手動で追加できます。ここで追加された追加の依存関係は、このテストにのみ使用され、サービスの依存関係検出には保存されません。これらのデフォルトは コンソールで適用されます。API を使用する場合は、依存関係を明示的に指定します。

  • リージョンスイッチプラン (オプション) – ARC リージョンスイッチプランをアタッチすると、次世代の Resilience Hub に実際のフェイルオーバータイムラインをテスト結果とレポートに含めることができます。手動フェイルオーバーまたはカスタムオートメーションを使用する場合は、これを空のままにします。

アクション

このテストでは、次の AWS FIS アクションを実行して、選択した依存関係にトラフィックをドロップします。アクションは、Amazon EC2 インスタンス、Amazon ECS タスク (Amazon EC2 および Fargate)、Amazon EKS ポッド (Amazon EC2) に 100% のパケット損失を発生させます。サービスにアクションのターゲットタイプに一致するリソースがない場合、そのアクションはスキップされます。

注記

依存関係をブロックするために使用されるアクションには、Amazon EC2 インスタンスにインストールされた SSM エージェント、Amazon ECS タスク定義の SSM エージェントコンテナ、Amazon EKS ポッドの Kubernetes サービスアカウントなど、追加の設定が必要です。

[アクション] 説明
aws:ssm:send-command Amazon EC2 インスタンスから選択した依存関係にトラフィックをドロップします。
aws:ecs:task-network-packet-loss Amazon ECS タスクからのトラフィックを選択した依存関係にドロップします。
aws:eks:pod-network-packet-loss Amazon EKS ポッドからのトラフィックを選択した依存関係にドロップします。

このテストのパラメータとそのデフォルト値を表示するには、 を使用しますget-test-template