Chaos Engineering

制御された障害実験で弱点を発見し、システムの耐障害性を高める

よくあるシナリオ:本番で初めて知る弱点

決済クライアントで外部決済APIが落ちたとき、自社システムがどう動くか誰も知らなかった。タイムアウト設定が間違っていてユーザーが30秒フリーズ、エラーメッセージも不適切。テスト環境では「動く」が本番の複雑さは全く別物だった。

よくある課題
  • 外部サービスが落ちたときの挙動を誰も知らない
  • テスト環境では再現できない本番固有の障害
  • 障害時に「とりあえず再起動」しか手がない状態
  • ランブックが実際のシナリオと乖離している

カオス実験サイクル

カオス実験サイクル

仮説
「XX が障害を起こしても Y は動くはず」
実験
Blast Radius を最小化して障害注入
観察
メトリクス・ログで影響を計測
学習
結果を分析して弱点を文書化

核心概念を押さえる

カオスエンジニアリングたとえるなら「システムの防災訓練」

制御された障害を意図的に発生させ、システムの弱点を事前に発見する実践。破壊ではなく「科学的実験」。

例:「Redisが落ちてもAPIはDBに直接アクセスして動き続けられる」という仮説を検証

仮説(Hypothesis)たとえるなら「実験の予測」

「〇〇が壊れても△△は動く(定量的指標付き)」という形式で事前に立てる。定量化することで客観的に評価できる。

例:「DBが1台停止してもエラー率は1%以内に収まり、60秒以内にフェイルオーバーする」

Blast Radiusたとえるなら「実験の被害範囲」

実験が影響を与えうる範囲。最初は最小限(ローカル/ステージング)から始め、徐々に本番へ拡大。

例:Stage1: docker killでローカルプロセス停止 → Stage4: 本番の一部サーバーに適用

中断条件(Abort Criteria)たとえるなら「実験の緊急停止ボタン」

実験前に「エラー率X%を超えたら即中断」という条件を決めておく。これがないと単なる障害になる。

例:エラー率5%超過 または SEV2以上のアラート発火で実験を即時中止

ゲームデー(Game Day)たとえるなら「災害シミュレーション訓練」

チーム全体で定期的に模擬障害シナリオを実行する訓練。SpotifyやAmazonが定期開催し、障害対応の筋肉を維持。

例:四半期ごとに「本番DBが落ちたシナリオ」でチーム全員が対応訓練を実施

耐障害性(Resilience)たとえるなら「建物の耐震強度」

一部が壊れても全体が動き続ける能力。Circuit Breaker・タイムアウト・リトライ・フォールバックの4パターンで実現。

例:決済APIが落ちた場合、UI上は「後払いを選択してください」と代替フローを提示

Blast Radius(爆発半径)の段階的拡大

Stage 1ローカル環境

docker kill / tc netem で単一プロセスに障害

リスクゼロ
Stage 2Staging 環境

本番に近い環境で実験。ユーザー影響なし

低リスク
Stage 3本番の一部

カナリアや1台のみに適用。モニタリング必須

中リスク
Stage 4本番全体

Netflix Chaos Monkey レベル。完全な自動化と監視が前提

高リスク

AI で SRE の仕事はどう変わるか

これまで人がしていた作業
  • 実験仮説をエンジニアのブレインストーミングで立案
  • 実験結果のレポートを手書きで作成
  • システムトポロジーを手動で把握して脆弱点を推測
  • ゲームデーのシナリオを毎回一から考案
AI が担う作業
  • サービスマップを解析し「最も壊れやすい依存関係」を提案(Gremlin AI)
  • 実験レポート・学習サマリーを自動生成(AWS FIS + Bedrock)
  • 過去インシデントから「未検証の弱点」を自動発見(Chaos Genius)
  • 実験中のメトリクスをリアルタイム解析し自動中断判断(Steadybit AI)
人に残る役割
  • 本番環境でのBlast Radius拡大の承認判断
  • ビジネス影響を考慮した実験優先度の決定
  • AI発見の弱点に対するアーキテクチャ改善設計
  • 耐障害性の文化・方針をチームに根付かせる

主なツール:Gremlin AI、AWS FIS + Bedrock、Chaos Genius、Steadybit AI、OpenChaos

この先の見通し:2027年にはAIエージェントが自律的にカオス実験を設計・実行・分析し、「常にシステムの弱点を探し続ける」継続的な耐障害性検証が実現。人間は実験ポリシーの設計と大規模アーキテクチャ変更の意思決定に専念できる。

導入による効果の目安(業界の一般的な傾向)

年間実験数
3倍
AI支援による実験加速
障害発見コスト
-80%
本番障害vs事前実験の差
未知の脆弱性
-60%
継続的実験による網羅
ランブック精度
+90%
実験で検証済みの手順