[アップデート] AWS FIS のシナリオライブラリに「単一AZのアプリケーション速度低下」と「マルチAZ間のトラフィック中断・遅延」のシナリオが追加されました
いわさです。
AWS Fault Injection Service (AWS FIS) を使うと、AWS 上のワークロードで障害を発生させてカオスエンジニアリングを行うことができます。
この AWS FIS では実験テンプレートを用意して実験(障害の発生)を行うのですが、実験テンプレートをイチから組み立てるのではなく複雑な障害シナリオの実験テンプレートのプリセットが「シナリオライブラリ」として提供されています。
先日のアップデートでこのシナリオライブラリに新しく「単一AZのアプリケーション速度低下」と「マルチAZ間のトラフィック中断・遅延」の2つのシナリオが追加されました。
これらのシナリオではワークロード全体の完全な停止ではなく、一部や特定の条件でだけ障害事象が発生するグレー障害[1]をシミュレーションすることができます。
どういう仕組みで何をしているものなのか調べてみましたので紹介します。
新しいシナリオの確認
アナウンスによるとこれらの新しいシナリオは AWS FIS がサポートされている全リージョンが対象なのですが、今朝時点では東京リージョンではまだ新しいシナリオを確認することは出来ませんでした。
東京リージョンのシナリオライブラリには 16 件のシナリオが提供されています。

こちらはバージニア北部リージョンです。こちらでは 18 件のシナリオが提供されていますね。

AWS FIS はリージョンごとの実験の中身の差異はないので、今回はバージニア北部リージョンで中身を見ていきたいと思います。
今回追加された対象のシナリオはこの2つです。
- AZ: Application Slowdown
- Cross-AZ: Traffic Slowdown

AZ: Application Slowdown
「AZ: Application Slowdown」シナリオを使用すると、単一AZ内のリソース間にネットワークレイテンシや中断を発生させることが出来ます。
これによってアプリケーションのグレー障害を発生させることができます。このシナリオの詳細仕様は次の公式ドキュメントに記載されています。
シナリオパラメータはこんな感じで、発生対象の AZ をひとつ指定する感じです。
また、対象リソースとしては EC2、ECS、EKS になるのですが、それぞれタグでターゲットを決める形になっていて、すべてが対象になるわけではありません。
発生させる障害の時間や割合などはシナリオパラメータからも調整ができます。

例えば次のように us-east-1f に EC2 が存在していてそれをターゲットにしたければ us-east-1f をシナリオパラメータでも指定します。


リソースへのタグ付けが事前に必要なのでそこは認識しておきましょう。
タグは変更できますがデフォルトでは次のものが設定されています。

シナリオから作成される実験テンプレートを見てみると、EC2、ECS、EKS でそれぞれ次のようにアクションとターゲットが設定されています。
で、それぞれのターゲットでタグで指定されているという感じですね。


このアクションの中身ですが、実は単純で SSM の SendCommand を使って OS 上でレイテンシーを発生させています。
次のようにアクションの実態としてはAWSFIS-Run-Network-Latency-Sourcesを呼び出しているだけです。

この SSM ドキュメントが何をしているのかはマネジメントコンソールから知ることができます。
Amazon 所有ドキュメントとして次のように確認できます。

そしてこの SSM ドキュメントの中身ですが、Linuxのtcコマンドとsch_netemを使用してネットワークレイテンシーを発生させている感じです。
あまり私は詳しくないのですが、調べてみると tc + sch_netem でネットワーク問題をテストするのは一般的みたいですね。いくつか記事を見つけることが出来ました。
Cross-AZ: Traffic Slowdown
「Cross-AZ: Traffic Slowdown」シナリオを使用すると、AZ間のパケットロスを発生させたグレー障害を作ることができます。
このシナリオの詳細仕様は次の公式ドキュメントに記載されています。
こちらもシナリオパラメータの大きなところは同じです。
AZ を指定して、パラメータ値を調整し、タグに従ってリソースターゲットを決めます。こちらも同じく EC2、ECS、EKS が対象になります。
そして注目のアクションの中身ですが、こちらも同じように SSM の SendCommand が実態です。
ドキュメントはAWSFIS-Run-Network-Packet-Loss-Sourcesですね。

同じように SSM ドキュメントを確認してみます。

こちらも同じでtc qdiscを使ってパケットロスを発生させています。
特定の送信元/送信先に対してい一定割ありでパケットロスを起こすような感じになっていますね。
さいごに
本日は AWS FIS のシナリオライブラリに「単一AZのアプリケーション速度低下」と「マルチAZ間のトラフィック中断・遅延」のシナリオが追加されたので中身を確認してみました。
新しい組み込みアクションが追加されたわけではなくて、既存の仕組みを使ってシナリオとして提供されているものになっています。
もしグレー障害周りに興味があればこちらのシナリオを確認してみてください。
ちなみに今年の AWS Summit Japan 2025 でもこのグレー障害周りのセッションが提供されていました。
その中でもこの SSM ドキュメントAWSFIS-Run-Network-Latency-SourcesとAWSFIS-Run-Network-Packet-Loss-Sourcesについて触れられていたみたいですね。こちらもぜひ見てみてください。






