Amazon Web Services ブログ

AWS Fault Injection Service を使用して、マルチリージョンおよびマルチ AZ アプリケーションの耐障害性を実証する

AWS Fault Injection Service (FIS) は、Chaos Engineering を大規模に実践するのに役立ちます。11月30日、AWS アベイラビリティーゾーンで停電が発生したり、ある AWS リージョンから別の AWS リージョンへの接続が失われたりした場合に、アプリケーションが意図したとおりに動作することを実証できる新しいシナリオを発表しました。

シナリオを使用して実験を行うことで、何か問題が発生したときにアプリケーション (単一リージョンかマルチリージョンかを問わず) が期待どおりに動作するという確信を築き、直接的および間接的な依存関係をよりより深く理解し、復旧時間をテストできます。アプリケーションを一定のペースでテストし、期待どおりに機能することを確認したら、実験の結果をコンプライアンスの目的で使用できます。AWS Resilience Hub、 の他の部分と組み合わせて使用すると、アプリケーションの全体的な耐障害性体制を完全に理解するのに役立ちます。

シナリオ入門
AWS アプリケーションで管理された実験を実施できるように、2021 年に FIS を立ち上げました。今回のリリースを発表するために書いた私の投稿では、実験テンプレートの作成方法と、それを使った実験方法を紹介しました。これらの実験は強力で低レベルのアクションを使用して構築されており、特定タイプの AWS リソースの指定されたグループに影響を与えます。例えば、次のアクションは EC2 インスタンスと Auto Scaling グループで動作します。

これらのアクションを構成要素として、私たちは最近 AWS FIS シナリオ ライブラリを立ち上げました。ライブラリ内の各シナリオでは、アプリケーションの耐障害性をテストするために使用できるイベントまたは条件が定義されています。

各シナリオを使用して実験テンプレートを作成します。シナリオをそのまま使用することも、任意のテンプレートをベースに必要に応じてカスタマイズまたは拡張することもできます。

シナリオは、同じ AWS アカウントまたは他の AWS アカウントのリソースを対象にすることができます。

新しいシナリオ
これらすべてを背景として、新しいシナリオを見てみましょう。

AZ 可用性: 停電 — このシナリオでは、EC2 インスタンス (EKS および ECS クラスター内のインスタンスを含む)、EBS ボリューム、Auto Scaling グループ、VPC サブネット、Amazon ElastiCache for Redis クラスター、Amazon Relational Database Service (RDS) クラスターなどを含む 1 つのアベイラビリティーゾーン内の対象となるリソースすべてで一時的に「プラグを抜く」ことになります。ほとんどの場合、複数のアベイラビリティーゾーンにリソースを持つアプリケーションで実行しますが、予想される結果として停電が発生するシングル AZ アプリケーションで実行することもできます。1 つの AZ を対象とし、実験中に指定した一連の IAM ロールまたは Auto Scaling グループが新しいインスタンスを起動したり、停止したインスタンスを起動したりできないようにすることもできます。

新しいアクションとターゲットエクスペリエンスにより、シナリオ内のアクションとそれらが影響する AWS リソースの種類など、すべてを一目で簡単に確認できるようになります。

シナリオには、実験テンプレートのカスタマイズに使用されるパラメーターが含まれます。

詳細パラメータ — ターゲットタグを使用すると、実験の対象となるリソースを見つけるために使用されるタグキーと値を制御できます。

クロスリージョン: 接続 — このシナリオでは、テストリージョンのアプリケーションがターゲットリージョンのリソースにアクセスできなくなります。これには、VPC にアタッチされた EC2 インスタンス、ECS タスク、EKS ポッド、および Lambda 関数からのトラフィックが含まれます。また、Transit GatewayVPC ピアリング接続を経由するトラフィック、およびクロスリージョンの S3 と DynamoDB のレプリケーションも含まれます。このシナリオは、初期の状態で次のとおりです。

このシナリオは 3 時間実行され (disruptionDuration パラメーターを変更しない限り)、指定された方法でテストリージョンをターゲットリージョンから分離します。詳細なパラメータを使用して、分離されたリージョン内の影響を受ける AWS リソースを選択するために使用されるタグを制御します。

また、このシナリオで使用されている中断アクションや一時停止アクションは、それだけでも役立つ場合があります。

例えば、aws:s3:bucket-pause-replication アクションを使用して、リージョン内のレプリケーションを一時停止できます。

留意点
新しいシナリオについて知っておくべきことがいくつかあります。

リージョン — 新しいシナリオは、FIS が利用できるすべての商用 AWS リージョンで、追加費用なしで利用できます。

料金 — 実験の実行で消費されたアクション分に対してお支払いいただきます。詳細については、AWS Fault Injection Service (FIS) の料金表ページをご覧ください。

サービス名 — このサービスは、以前は AWS Fault Injection Simulator と呼ばれていました。

Jeff;

原文はこちらです。