Codex を使って障害対応の机上演習をやってみよう

PMO 兼 SET 兼 QMO の Kuniwak です。今回は障害対応机上演習をコーディングエージェントと一緒に実施し、成果を挙げた話をします。

背景

障害対応の能力を計測して継続的に改善するには障害対応の机上演習が有効です。 再現度の高い机上演習を実施するには、ゲームマスターの役割を担う人間が必要になります。 ゲームマスターとはインシデント対応者からの質問と対応手順の提示を通して、段階的に情報を開示していく存在です。

実際の障害対応では真因がわからない状態からスタートし、観測可能な情報を収集しながら対応を進めます。 この不確実な状況をなるべく現実に近い形で再現するためには、ゲームマスターの進行が欠かせません。 たとえば対応者が「Xジョブのエラーログを見ます」と宣言したとき、ゲームマスターは「大量のYという警告が出ています」と返すことで調査の過程をシミュレートします。

解決したい問題

私の関わるプロジェクトではこのゲームマスターとして振る舞える人は限られており、机上演習のために予定を空けてもらうことが困難でした。 ゲームマスターとして適切な情報開示の加減を判断するにはシステムのアーキテクチャと過去の障害事例に通じている必要があります。 これが演習を実施するうえでの大きなハードルになっていました。

解決方法

この問題を解決するために、コーディングエージェントを活用した机上演習の仕組みを構築しました(github.com/Kuniwak/ttx)。 コーディングエージェントにゲームマスターを任せることで、人間への依存を減らし演習を手軽に実施できます。 とくに Codex の「reasoning effort」を低く設定すると応答が速くなりテンポよく演習を進められます。 本リポジトリを使えば、SREや一般のWebエンジニアでも簡単にこの仕組みを導入できます。

今回実現した仕組みは、Slack または TUI アプリケーション越しに Codex がゲームマスターとして振る舞うシステムです。 次の動画は TUI アプリケーション版での様子です。

www.youtube.com

なお Slack 版ではこのやりとりを Slack 越しにできます。

この仕組みを動かすためには、事前に4つの要素を準備しておく必要があります。 それは、障害の原因、理想タイムライン、想定質問集、想定回答集です。 これらは、専用の AI スキルを使って生成します。 入力は、Fault Tree Analysis(FTA)や Failure Mode and Effects Analysis(FMEA)の結果、障害対応手順書、他社のインシデント事例です。

理想タイムラインとは、障害発生から対応完了までに起きるイベントを時系列に並べたものです。 想定質問・回答集は、対応者から寄せられるであろう質問と、それに対する開示情報をまとめたものです。 たとえばタイムラインの一部は次のようになっています:

時刻      2026-06-08 10:03:00
イベント   checkout のエラー率急増アラートが発火する
開示可能   Prometheus/Grafana で checkout と payment のエラー率が急上昇している
開示不能   この時点では、失敗が payment 由来かネットワークか依存先かは未確定

時刻      2026-06-08 10:08:00
イベント   失敗リクエストの分散トレースとサービス別エラー率を確認する
開示可能   Jaeger で失敗した checkout のトレースを辿ると、payment 呼び出しのスパンがエラーで、payment のエラー率が高い
開示不能   失敗は checkout から payment の課金呼び出しで発生。cart や currency、shipping は正常水準

生成した理想タイムラインと想定質問・回答集は、本番の演習で使う前に自動でレビューします。 理想タイムラインについては、評価基準に照らしてより良い対応手順が存在しないかを確認します。 想定回答集については、開示不能な情報のリークや、推奨手順の提示など、対応者の思考を肩代わりする内容が含まれていれば却下します。

演習の開始が指示されると、Codex は現在タイムラインを更新しながらゲームマスターとして振る舞います。 各イベントには、その時点で開示可能な情報と開示不能な情報がまとめられています。 最初の現在タイムラインは理想タイムラインと同じです。 対応者の行動によって現在タイムラインは理想タイムラインから分岐していきます。 対応者の調査や緩和策の実施が遅れれば事態はより悪化していきます。 Codex は現在タイムライン、現在時刻、想定回答集を参照しながら、対応者からの質疑に応答し続けます。

効果測定

この仕組みを社内で運用した結果、高い評価を得ました。 参加者からは「臨場感がある」「胃が痛くなる」といった声が挙がりました。

実装と運用のコストも低く抑えられています。 Claude Code を使って片手間で開発を進め、開発開始から11営業日で運用を開始できました。 運用にかかる変動費用は1回あたり100〜200円程度に収まります。 固定費用も Google Compute Engine のインスタンス代として月額8000円程度です。

本リポジトリを利用すれば、少人数のチームでも障害対応の机上演習をすぐに始められます。 Codex をゲームマスターに見立てることで準備と実施の手間を大幅に削減できます。 ぜひ手元で動かしてチームの障害対応力の向上に役立ててください。