ホーム 信頼性改善戦略

AWS Fault Injection Service — カオスエンジニアリングによる耐性検証

障害注入によるレジリエンス検証、実験テンプレート設計、本番適用時の安全策を解説します。

最終更新: 2026-07-28 カテゴリ: 信頼性改善戦略

「障害が起きたら復旧できるはず」という設計上の想定は、実際に障害を起こしてみるまで 検証されていません。この考え方を体系化したのがカオスエンジニアリングであり、 AWSではこれをAWS Fault Injection Service (FIS) で実現します。

SAA レベル:基礎概念

カオスエンジニアリングの基本思想

  • システムに意図的に障害(インスタンス停止、レイテンシ注入、ネットワーク断等)を注入し、実際にシステムが設計通りに耐性を発揮するかを検証する手法
  • 「障害は起きる」という前提に立ち、本番相当の環境で事前に弱点を発見する

SAA 試験のポイント

カオスエンジニアリングは、闇雲に障害を起こすものではなく、仮説(「このインスタンスが停止しても、Auto Scalingにより自動復旧するはず」)を立てて、それを検証する科学的なアプローチです。この基本思想の理解がSAAで問われることがあります。

AWS FISの基本要素

  • 実験テンプレート: どのリソースに、どのようなアクション(停止、CPU負荷注入等)を、どれくらいの時間実行するかを定義
  • 停止条件 (Stop Condition): CloudWatchアラームと連携し、想定以上の悪影響が出た場合に実験を自動停止する安全装置

SAP レベル:高度な設計シナリオ

実験テンプレート設計のベストプラクティス

SAP 試験のポイント

SAPレベルでは、いきなり本番環境の広範囲に障害を注入するのではなく、影響範囲を最小限に絞ったスコープ(特定のAZの一部インスタンスのみ等)から始め、段階的に対象範囲を広げていく実験設計が問われます。また、実験対象には必ずタグでフィルタリングし、意図しないリソースへの影響を防ぐ設計が必須です。

Step 1: 開発環境で実験テンプレートを検証 Step 2: 本番環境の限定的な範囲(1台のインスタンス)で実施 Step 3: 段階的に対象範囲を拡大(1 AZ→複数AZ) Step 4: 停止条件(CloudWatchアラーム)を必ず設定し、異常時は自動中断

停止条件による安全策

SAP 試験のポイント

本番環境で障害注入実験を行う際、想定以上にビジネスへ悪影響が出た場合に、実験を即座に中断する仕組み(停止条件)が必須です。「エラー率が5%を超えたら実験を自動停止する」といったCloudWatchアラームと連携した安全装置なしに本番実験を行うことは、SAP試験ではリスクの高いアンチパターンとして扱われます。

設計上の落とし穴

「本番環境でカオスエンジニアリングを行うこと自体が危険」という判断で、開発環境だけでの検証に留めるのも不十分です。開発環境と本番環境ではトラフィックパターンやスケールが異なるため、真の耐性検証には、適切な安全策(停止条件、限定的なスコープ、事前のステークホルダーへの通知)を伴った本番環境での実験が必要というのがSAPレベルの認識です。

代表的な実験シナリオ

シナリオ検証したいこと
AZ全体の障害シミュレーションマルチAZ構成が実際にフェイルオーバーするか
APIレイテンシの注入サーキットブレーカー・タイムアウト設定が機能するか
DBへの接続障害アプリケーションが適切にリトライ・縮退運転するか

Game Day(実践訓練)への組み込み

  • FISによる障害注入実験を、チーム全体で参加するGame Dayという定期訓練イベントに組み込むことで、技術的な検証だけでなく、インシデント対応の運用プロセス(誰が何を確認し、どう意思決定するか)も同時に鍛えることができる

まとめ

  • SAA: カオスエンジニアリングの基本思想、FISの実験テンプレートと停止条件の役割を理解する。
  • SAP: 段階的にスコープを広げる実験設計、停止条件による安全な本番実験、Game Dayとの組み合わせによる運用プロセスの検証ができる。

次は レジリエンス強化のリファクタリングを見ていきましょう。