[アップデート] AWS FIS のシナリオライブラリに「単一AZのアプリケーション速度低下」と「マルチAZ間のトラフィック中断・遅延」のシナリオが追加されました

[アップデート] AWS FIS のシナリオライブラリに「単一AZのアプリケーション速度低下」と「マルチAZ間のトラフィック中断・遅延」のシナリオが追加されました

2025.11.13

いわさです。

AWS Fault Injection Service (AWS FIS) を使うと、AWS 上のワークロードで障害を発生させてカオスエンジニアリングを行うことができます。
この AWS FIS では実験テンプレートを用意して実験(障害の発生)を行うのですが、実験テンプレートをイチから組み立てるのではなく複雑な障害シナリオの実験テンプレートのプリセットが「シナリオライブラリ」として提供されています。

https://dev.classmethod.jp/articles/fis-scenarios-library/

先日のアップデートでこのシナリオライブラリに新しく「単一AZのアプリケーション速度低下」と「マルチAZ間のトラフィック中断・遅延」の2つのシナリオが追加されました。

https://aws.amazon.com/about-aws/whats-new/2025/11/aws-fis-test-scenarios-partial-failures/

これらのシナリオではワークロード全体の完全な停止ではなく、一部や特定の条件でだけ障害事象が発生するグレー障害[1]をシミュレーションすることができます。
どういう仕組みで何をしているものなのか調べてみましたので紹介します。

新しいシナリオの確認

アナウンスによるとこれらの新しいシナリオは AWS FIS がサポートされている全リージョンが対象なのですが、今朝時点では東京リージョンではまだ新しいシナリオを確認することは出来ませんでした。
東京リージョンのシナリオライブラリには 16 件のシナリオが提供されています。

8A34C968-655E-4AF9-A60F-2B38B77CCB49.png

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

4C6B0318-17C4-4707-BE75-8969EB798D4F.png

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

  • AZ: Application Slowdown
  • Cross-AZ: Traffic Slowdown

4302ACAC-8A64-439A-9E42-207C5D43880B.png

AZ: Application Slowdown

「AZ: Application Slowdown」シナリオを使用すると、単一AZ内のリソース間にネットワークレイテンシや中断を発生させることが出来ます。
これによってアプリケーションのグレー障害を発生させることができます。このシナリオの詳細仕様は次の公式ドキュメントに記載されています。

https://docs.aws.amazon.com/fis/latest/userguide/az-application-slowdown-scenario.html

シナリオパラメータはこんな感じで、発生対象の AZ をひとつ指定する感じです。
また、対象リソースとしては EC2、ECS、EKS になるのですが、それぞれタグでターゲットを決める形になっていて、すべてが対象になるわけではありません。
発生させる障害の時間や割合などはシナリオパラメータからも調整ができます。

F2B89429-AED8-47E9-B958-14CC2136F072.png

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

B82C8B63-178C-43ED-A7B6-0F3813EBC0CB_4_5005_c.jpeg

2CA76DC6-66F4-48DB-8E64-BDBD35993E19.png

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

C88B46D7-EF2A-48EB-A85D-B555CDE2B8B9.png

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

1450C2F6-2295-46E6-B826-7012FAFA6D64.png

B1E5C844-19D0-417A-A9FF-E5FD726CF687.png

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

92537797-6D08-4B58-8EE4-E7754A67FB18.png

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

BF3FE5B5-5331-445F-9B71-BA26EFCF1FD0.png

そしてこの SSM ドキュメントの中身ですが、Linuxのtcコマンドとsch_netemを使用してネットワークレイテンシーを発生させている感じです。
あまり私は詳しくないのですが、調べてみると tc + sch_netem でネットワーク問題をテストするのは一般的みたいですね。いくつか記事を見つけることが出来ました。

https://blog.amedama.jp/entry/linux-tc-netem-qdisc

https://zenn.dev/ryoma_dq/articles/20241126-network-tc

Cross-AZ: Traffic Slowdown

「Cross-AZ: Traffic Slowdown」シナリオを使用すると、AZ間のパケットロスを発生させたグレー障害を作ることができます。
このシナリオの詳細仕様は次の公式ドキュメントに記載されています。

https://docs.aws.amazon.com/fis/latest/userguide/cross-az-traffic-slowdown-scenario.html

こちらもシナリオパラメータの大きなところは同じです。
AZ を指定して、パラメータ値を調整し、タグに従ってリソースターゲットを決めます。こちらも同じく EC2、ECS、EKS が対象になります。

そして注目のアクションの中身ですが、こちらも同じように SSM の SendCommand が実態です。
ドキュメントはAWSFIS-Run-Network-Packet-Loss-Sourcesですね。

C0372F58-70DE-457E-BCE6-7CF4F2BD982A.png

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

AADEC3BF-2B3F-43AC-BD05-2447ED31B930.png

こちらも同じでtc qdiscを使ってパケットロスを発生させています。
特定の送信元/送信先に対してい一定割ありでパケットロスを起こすような感じになっていますね。

さいごに

本日は AWS FIS のシナリオライブラリに「単一AZのアプリケーション速度低下」と「マルチAZ間のトラフィック中断・遅延」のシナリオが追加されたので中身を確認してみました。

新しい組み込みアクションが追加されたわけではなくて、既存の仕組みを使ってシナリオとして提供されているものになっています。
もしグレー障害周りに興味があればこちらのシナリオを確認してみてください。

ちなみに今年の AWS Summit Japan 2025 でもこのグレー障害周りのセッションが提供されていました。
その中でもこの SSM ドキュメントAWSFIS-Run-Network-Latency-SourcesAWSFIS-Run-Network-Packet-Loss-Sourcesについて触れられていたみたいですね。こちらもぜひ見てみてください。

https://dev.classmethod.jp/articles/aws-summit-japan-2025-aws-50/

脚注
  1. グレー障害 - マルチ AZ の高度なレジリエンスパターン ↩︎

この記事をシェアする

FacebookHatena blogX

関連記事