みなさん、こんにちは。サニービュー事業部の小寺です。
Fault Injection SimulatorがAmazon Elastic Container Service (以下、ECS) のタスクレベルをサポートするようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/03/amazon-fault-injection-simulator-task-faults/

AWS Fault Injection Simulatorとは

AWS Fault Injection Simulator(以下、FIS)とは、AWS でフォールト挿入実験を実行するためのフルマネージドサービスであり、アプリケーションのパフォーマンス、オブザーバビリティ、および回復性を簡単に改善できるサービスです。

「フォールト挿入実験」って聞いたことがありますか。
フォールト挿入実験はカオスエンジニアリングで利用されているものです。

カオスエンジニアリングでは、本番環境が障害等による不安定な状況にも耐えられるという自信をつけるための考え方です。
実際にクラウド障害をわざと発生させる「フォールト挿入実験」を繰り返して、システムの「弾力性」を検証します。弾力性とは、障害が起こってもユーザーに悪影響を与えないことを示す指標です。
このテストを通じてシステムの問題点をあぶり出し、可用性や耐障害性の向上につながります。Netflixが2012年にケイオスエンジニアリングのためのツール「Chaos Monkey」を公開したことにより、認知度が高まりましたね。

Fault Injection Simulator は、特定の条件が満たされた場合に自動的にロールバックしたり、実験を停止したりするなど、チームが本番環境で実験を実行するために必要なコントロールとガードレールを提供します

なお、FISの対象となるサービスは現時点でAmazon EC2,Amazon ECS/EKS,Amazon RDSです。

アップデート内容

AWS Fault Injection Simulator (FIS) 実験で、ECSタスクレベルのコンテナー障害をテストできるようになりました。

今までもFISでは、ECSの対応はしていました。対応していたのは、インスタンスレベルの障害なので、ハードウェア、ネットワーク、オペレーティングシステムの障害のシュミレートには有効でした。
ただ、コンテナベースのアプリケーションの個々のコンポーネントやAWS Fargate にデプロイされたコンテナはFIS対象外となっていました。

今回のアップデートでは、AWS Fargate または Amazon EC2 インフラストラクチャにデプロイされているかどうかに関係なく、コンテナベースのアプリケーションでのタスクの実行を停止することができます。
より柔軟なバグの発見やパフォーマンス面でのボトルネックを確認することができるようになります。

ECSタスクをFISで実験してみる

Amazon ECSを利用している場合、特定のタスクの ARN、タグ、またはクラスターやサービスの名前をターゲットにすることで、ECS タスクを停止する AWS FIS 実験を作成して実行することができます。

(1)AWSマネジメントコンソールより、FISから「実験テンプレートを作成」をクリックする。

(2)FISの実験時のアクションとしては、ECSのタスクを停止を選びます。

(3)FISのターゲットとしては、ECSのタスクを選びます。

(4)FISの停止条件として、ECS用に設定したCloudWatchアラームを選びます。

(5)実験用テンプレート作成をクリック後、テンプレートが作成され、テンプレートから実験を行うことができます。

対象リージョン

本アップデートは全ての商用リージョンで利用できます。

AWSをご利用いただくには、直接契約するより断然お得。
AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!