Amazon Web Services ブログ
ゾーンオートシフトのための新しい AWS Fault Injection Service リカバリーアクション
AWS Fault Injection Service (FIS) が Amazon Application Recovery Controller (ARC) のゾーンオートシフトのリカバリーアクションをサポートするようになったことをお知らせいたします。この統合により、障害を注入するイベントの作成とゾーンオートシフトのトリガーを同一実験内で行えるようになり、より包括的なテストが可能になりました。これにより、アベイラビリティーゾーン (AZ) の障害時にアプリケーションがどのように動作するかを観察できます。
アプリケーションを複数の AZ にデプロイすることは、AWS で可用性の高いアプリケーションを構築するための重要な戦略です。各 AZ は障害分離境界として機能し、デプロイ、ネットワークの問題、停電、人的ミスなどの障害は、その特定のゾーン内に封じ込められ、システム全体には影響を与えません。このマルチ AZ アプローチにより、1 つの AZ で問題が発生しても、アプリケーションは利用可能な状態を維持でき、より信頼性が高く、耐障害性のあるものとなります。
ゾーンシフトとゾーンオートシフト
AZ に障害が発生した場合、ゾーンシフトを復旧メカニズムとして使用し、AWS リージョン内の障害が発生した AZ から同じリージョン内の正常な AZ にトラフィックを移動させることができます。これにより障害を分離し、アプリケーションが別の AZ で顧客にサービスを提供し続けることができます。この機能をさらに強化するため、ARC がサポートするリソースのリストを拡張し、Amazon EC2 Auto Scaling グループ、Amazon Elastic Kubernetes Service、そしてクロスゾーンロードバランシングが有効または無効な Application Load Balancer および Network Load Balancer が含まれるようになりました。
ARC のゾーンオートシフトは、復旧時間の最小化に役立ちます。AWS は、内部モニタリングシステムが顧客に影響する可能性のある AZ 障害を検出した場合、自動的にオートシフトを開始します。オートシフトは、ゾーンオートシフト用に設定された AWS リソースのトラフィックを、影響を受けたゾーンから一時的に移動させます。問題が解決すると、トラフィックは再びすべての AZ に分散されます。
AWS FIS AZ の可用性:電源の中断
お客様は、AWS FIS を使用して、AZ 内のリソースと AWS サービスに障害を発生させることで、アプリケーションが AZ レベルのイベントにどのように応答するかを検証してきました。AZ 可用性:電源の中断シナリオは、複数の FIS アクションを組み合わせることで、AZ での完全な電源中断で予想される多くの症状を作り出します。このシナリオでは、単一の AZ 内の特定のリソースセットに対して、ゾーンのコンピューティングリソース (Amazon EC2、EKS、ECS) の停止、AZ 内でのコンピュートのスケーリングの禁止、サブネット接続の損失、Amazon Relational Database Service (RDS) のフェイルオーバー、Amazon ElastiCache のフェイルオーバー、Amazon Elastic Block Store ボリュームの無応答化を引き起こすことで、一時的に「電源を切る」状態を作り出します。
AZ 中断のテストにおける一般的な落とし穴は、ネットワーク接続のブロックのみに焦点を当てることです。しかし、この方法はお客様が管理するネットワーク内のリソースにのみ影響を与えるにとどまり、ネットワーク構成とは独立して動作する AWS マネージドサービスには影響を与えません。FIS AZ シナリオは、リソースと AWS マネージドサービスの両方に対する中断をシミュレートすることで、より包括的なテストソリューションを提供します。
AZ の可用性:電源の中断シナリオは、アプリケーションの耐障害性をテストし改善するための大きな利点を提供します。このシナリオでは、マルチ AZ アプリケーションが実際の障害発生時にどのように動作するかを観察できます。この管理された実験を実行することで、アーキテクチャ、監視システム、運用手順における潜在的な弱点を発見できます。これにより、アプリケーションの耐障害性と全体的な信頼性が向上し、復旧時間の短縮が可能になり、災害復旧計画のコンプライアンス要件にも対応できます。
AWS FIS とゾーンオートシフトを組み合わせる
復旧戦略において重要な側面は、テストを行う能力です。ビジネスニーズに合わせてシステムがより急速に進化するクラウドでは、レジリエンステストが特に重要です。また、手順の有効性確認、チームの対応準備状況の評価、パフォーマンス指標の検証、潜在的な問題の特定にも役立ちます。
そのため、AZ の可用性:電源の中断シナリオが、ゾーンオートシフトとどのように連携するかをご紹介できることを嬉しく思います。これらの機能を組み合わせることで、障害発生時の AWS の動作をテストできるようになりました。つまり、影響を受けた AZ からトラフィックを自動的に移す動作を確認できます。この統合されたテストアプローチにより、AZ でのインフラストラクチャに障害が発生した際にアプリケーションがどのように動作するかをより包括的に把握できます。
ゾーンオートシフトのための AWS FIS 復旧アクション
今回のリリースでは、最初の復旧アクションとともに、AWS FIS アクションの新しいカテゴリを導入しました。新しい AWS FIS 復旧アクションにより、ゾーンオートシフトを有効にしているお客様は、FIS AZ の可用性:電源の中断シナリオを実行して、AZ での完全な電源中断の想定される状態を再現し、実際の障害時に AWS がどのようにゾーンオートシフトを起動するかを実証できます。また、単純に正常な AZ からトラフィックを移すだけでは発見できない問題も発見できます。つまり、実際に AZ が使用不能になった時に初めて表面化するアプリケーションの隠れた依存関係がわかります。
復旧アクションを含む AWS FIS 実験テンプレートの作成
AWS FIS を使用してゾーンオートシフトをテストする方法を見てみましょう。この記事では新しい統合機能について説明します。AZ の可用性:電源の中断シナリオを使用した実験を作成したことがない場合は、AWS Fault Injection Service シナリオライブラリでカオスエンジニアリングを始めるための基礎で、セットアップ方法の詳細な手順を参照してください。
開始するには、AWS FIS シナリオライブラリから AZ の可用性:電源の中断シナリオを選択して、実験テンプレートを作成します。
アクションとターゲットを指定の下に、ゾーンオートシフトが追加されているのが確認できます。下部には、新しいリカバリーアクション Start-ARC-Zonal-Autoshift とそのターゲット ARC-Managed-Resources が表示されています。
ゾーンオートシフトアクションの設定を見てみましょう。
アクションタイプ: ここでは、aws:arc:start-zonal-autoshift アクションとともに、新しい ARC アクションタイプが表示されます。
次のあと開始: アクションは、実験開始後 5 分間待機するように FIS-Wait アクションで設定されており、イベント発生から一定時間が経過した状況をシミュレートしてからゾーンオートシフトを開始します。実際のイベントでは、症状が始まってから数分後にオートシフトがトリガーされることが予想されます。
ターゲット: ARC-Managed-Resources という名前のターゲットが自動的に作成され、対象となるリソースを定義します。
Availability Zone identifier: ゾーンオートシフトでトラフィックを移動させる AZ を選択します。また、共有パラメータを編集を使用することで、実験内のすべてのアクションに対して一貫した値で共有パラメータを設定できます。
Duration: 時間の値は、実験内の他のアクションが終了してトラフィックの移行を開始するタイミングと同時に、ゾーンオートシフトが終了するように設定されます。期間は、上記で説明したゾーンオートシフトをトリガーする前の 5 分間の待機時間を考慮して、[ 障害継続時間 - 5 minutes]
に設定されます。たとえば、実験の停止時間が 30 分の場合、ゾーンオートシフトの期間は 25 分に設定されます。
ARC-Managed-Resources ターゲット設定では、ゾーンオートシフトに含めるリソースを定義できます。デフォルトでは、アカウント内でゾーンオートシフトが有効化されている、サポート対象の AWS リソースが含まれます。これらのリソースは、ゾーンシフトへオプトインされている必要があります。
ターゲットメソッド: デフォルトでは、リソースタグ、フィルター、パラメータ オプションが選択されます。
リソースタグ: デフォルトでは、キー名が AzImpairmentPower、キー値が RecoverAutoshiftResources のリソースタグが作成されます。これらのリソースタグを、実験対象とするゾーンオートシフト対応リソースに設定できます。
これまでの設定オプションは、他の FIS アクションと同様です。aws:arc:start-zonal-autoshift アクションの新機能として、リソースパラメータ が追加され、ターゲットとするリソースについてより柔軟な設定が可能になりました。
この新しいパラメータ群は、ターゲットメソッド (リソース ID やリソースタグなど) に加えて、リソースを対象とするための Managed resource types と Zonal autoshift status を提供します。
Managed resource types: ゾーンオートシフトをサポートするリソース (Auto Scaling グループ、Application Load Balancer、Network Load Balancer、および/または EKS クラスター) から、ターゲットとするものを 1 つ以上選択します。
Zonal autoshift status: 対象とする管理対象リソースタイプは、ゾーンオートシフトが Enabled、Disabled、またはその両方の状態にすることができます。デフォルトでは、Enabled が事前に選択されています。このパラメータを Disabled に設定すると、ゾーンオートシフトは無効だがゾーンシフトにオプトインしているリソースを対象とすることができます。これにより、ゾーンオートシフトを有効にする前にアプリケーションの動作を事前に確認することができます。
FIS リカバリーアクションの詳細については、AWS Fault Injection Service ユーザーガイドを参照してください。
料金と利用可能地域
AWS FIS は、使用した分だけ料金が発生します。前払い費用や最低料金はありません。アクションの実行時間と実験に含まれるアカウント数に基づいて課金されます。料金の詳細については、FIS の料金ページをご覧ください。
ゾーンオートシフトの使用自体に追加料金はかかりませんが、AZ からの切り替え時に追加のトラフィックを処理するために、複数のアベイラビリティーゾーンでリソースを事前にスケーリングするための追加コストや、CloudWatch、データ転送などの関連コストを考慮する必要があります。
FIS のリカバリーアクションは、FIS とゾーンオートシフトが利用可能なすべての AWS リージョンで利用できます。FIS が利用可能な AWS リージョンのリストについては、FIS サービスエンドポイントをご覧ください。ゾーンオートシフトが利用可能なリージョンのリストについては、ゾーンオートシフトの AWS リージョン提供状況をご覧ください。
まとめ
AWS Fault Injection Service の AZ の可用性: 電源の中断シナリオと ARC のゾーンオートシフトを組み合わせることで、AZ 障害に対するテストと復旧メカニズムの検証を同時に実行できます。この組み合わせたテストアプローチにより、インフラストラクチャの中断時におけるアプリケーションの動作をより包括的に評価できます。
AWS Fault Injection Service と ARC ゾーンオートシフトを使用して、アプリケーションのレジリエンステストを今すぐ始めましょう。本番環境に展開する前に、非本番ワークロードで小規模なテストから開始できます。
実践的な演習として、AWS Fault Injection Service シナリオライブラリでカオスエンジニアリングの旅を始めるというステップバイステップのガイドを試して、最初の実験をセットアップしてみてください。
耐障害性を維持し、テストを継続しましょう!