ゲームデイ

本番環境で意図的に障害を発生させ、チームの対応力とシステムの耐障害性を検証する訓練

SRE耐障害性

ゲームデイとは

ゲームデイ (Game Day) は、本番環境で意図的に障害を発生させ、チームの対応力とシステムの耐障害性を検証する訓練である。AWS が推奨するプラクティスで、「障害は起きるもの」という前提で準備する。

なぜ必要か

フェイルオーバーやアラートは設定しただけでは本当に機能するか分からない。実際に障害を起こして初めて、復旧手順の不備やアラートの欠落、チームの対応力の課題が明らかになる。ゲームデイは本番に近い条件で訓練することで、実際の障害発生時に慌てず対処できる体制を作る。

問題ゲームデイで検証
フェイルオーバーが動くか不明RDS のフェイルオーバーを実行
アラートが正しく発火するか障害を起こしてアラートを確認
ランブックが最新か手順通りに復旧できるか検証
チームが障害対応できるか実践的な訓練

ゲームデイの進め方

ゲームデイの進め方を図で示す。

1. 計画
   - シナリオを定義 (例: AZ 障害、DB フェイルオーバー)
   - 影響範囲を限定 (本番の一部 or ステージング)
   - ロールバック手順を準備
   - 関係者に事前通知

2. 実行
   - 障害を注入
   - チームが検知・対応
   - タイムラインを記録

3. 振り返り
   - 検知までの時間
   - 復旧までの時間
   - 改善点の洗い出し
   - アクションアイテムの作成

シナリオの例

シナリオの例を以下に示す。

シナリオ注入方法検証項目
AZ 障害サブネットのルートテーブルを変更Multi-AZ フェイルオーバー
DB フェイルオーバーaws rds reboot-db-instance --force-failover復旧時間、アプリの挙動
Lambda スロットリングReserved Concurrency を 0 にアラート、フォールバック
外部 API 障害DNS を変更して接続不能にサーキットブレーカー
DynamoDB スロットリング大量書き込みで WCU を超過リトライ、アラート

FIS は AWS のカオスエンジニアリングサービスで、安全に障害を注入できる。停止条件 (Stop Condition) を設定し、影響が大きすぎる場合は自動停止する。

ゲームデイの頻度

ゲームデイの頻度を以下にまとめる。

チームの成熟度頻度
初期四半期に 1 回
成長期月 1 回
成熟期週 1 回 (自動化)

実践的な知識は関連書籍でも得られる。

この記事は役に立ちましたか?

関連用語

関連する記事