AWS Fault Injection Simulator 専門
AWS 環境に意図的に障害を注入してシステムの耐障害性を検証するサービス
何ができるか
AWS Fault Injection Simulator (FIS) は、カオスエンジニアリングを実践するためのマネージドサービスです。EC2 インスタンスの停止、ネットワーク遅延の注入、AZ 障害のシミュレーションなど、さまざまな障害シナリオを安全に実行できます。実験にはストップ条件を設定でき、影響が想定を超えた場合に自動的に実験を停止します。
どのような場面で使うか
本番環境に近い構成でのディザスタリカバリ訓練、マルチ AZ 構成の冗長性検証、Auto Scaling の動作確認、アプリケーションのタイムアウト処理やリトライロジックの検証などに活用されています。Game Day (障害対応訓練) の自動化にも利用されます。
身近な例え
ビルの防災訓練に例えるとわかりやすいでしょう。実際に火災報知器を鳴らし、エレベーターを止め、非常階段への誘導が正しく機能するかを確認します。本当の火事が起きる前に、避難経路や防災設備が正しく動作するかを安全にテストできます。
AWS Fault Injection Simulator とは
AWS Fault Injection Simulator (FIS) は、AWS 環境でカオスエンジニアリングを実践するためのサービスです。カオスエンジニアリングとは、本番環境に意図的に障害を注入し、システムがどのように振る舞うかを観察する手法です。「障害は必ず起きる」という前提に立ち、事前に弱点を発見して改善することで、実際の障害発生時の影響を最小化します。FIS はこの実験を安全かつ再現可能な形で実行する基盤を提供します。
実験テンプレートとアクション
FIS では「実験テンプレート」を作成して障害シナリオを定義します。テンプレートには実行するアクション (障害の種類)、対象リソース、ストップ条件を指定します。利用可能なアクションには EC2 インスタンスの停止・再起動、ECS タスクの停止、ネットワーク遅延やパケットロスの注入、API のスロットリングシミュレーションなどがあります。複数のアクションを並列または順次実行する複雑なシナリオも構築できます。
安全な実験の実行
FIS の重要な特徴は、実験の安全性を確保する仕組みが組み込まれている点です。ストップ条件として CloudWatch アラームを指定でき、たとえばエラー率が閾値を超えた場合に実験を自動停止します。IAM ロールで実験が操作できるリソースの範囲を制限でき、意図しないリソースへの影響を防ぎます。実験の実行ログは詳細に記録されるため、事後の分析や改善にも活用できます。
注意点
- 料金はアクションの実行時間 (分単位) に基づいて課金される。実験の設計段階では課金されない
- ストップ条件を適切に設定しないと、実験が本番環境に想定以上の影響を与える可能性がある。必ず CloudWatch アラームと連携すること
- FIS の実験は対象リソースに実際の影響を与える。まずは開発環境やステージング環境で十分にテストしてから本番環境で実行すること
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。