EXERCISE 90分

ストーリー

佐藤CTO
これがMonth 4の集大成だ
佐藤CTO
ブラックフライデーに発生した大規模障害のポストモーテムを、一から書いてほしい。SREの全スキルを総動員する時だ

シナリオ

企業: ECプラットフォーム「ShopNow」
イベント: ブラックフライデーセール(11月最終金曜日)
障害: 10:00開始のタイムセール直後にシステムダウン

タイムライン(事実):
  09:55 - タイムセール開始の事前キャッシュウォームアップ実行
  10:00 - タイムセール開始、トラフィック通常の8倍に急増
  10:02 - 商品サービスのレスポンスタイムが5秒超に悪化
  10:03 - 注文サービスがタイムアウト、Kafkaキューにメッセージ滞留
  10:05 - データベース接続数が上限に到達、全サービスでDB接続エラー
  10:07 - アラート発報(SLO: p95レスポンスタイム 500ms 違反)
  10:10 - オンコールエンジニアが対応開始
  10:15 - IC任命、War Room設置
  10:20 - DBコネクションプール枯渇を特定
  10:25 - 商品サービスのレプリカ数を3→10にスケール
  10:30 - DB接続プール上限を100→300に引き上げ
  10:35 - 一部復旧するも、Kafkaの滞留メッセージ処理で再度負荷
  10:40 - Kafkaコンシューマーのスロットリング実施
  10:50 - サービス全面復旧
  11:00 - 監視強化フェーズに移行
  12:00 - インシデントクローズ

影響:
  - 50分間のサービス劣化(10:00-10:50)
  - 推定売上損失: 5,000万円
  - 影響ユーザー数: 約30万人
  - カスタマーサポート問い合わせ: 2,000件

Part 1: ポストモーテムドキュメント作成(30分)

タイムライン、影響、根本原因、寄与要因を含むポストモーテムドキュメントを作成してください。

解答例
# ポストモーテム: ブラックフライデータイムセール障害

## 概要
| 項目 | 内容 |
|------|------|
| 発生日時 | 2026-11-27 10:00-10:50 JST |
| 影響時間 | 50分 |
| 重大度 | P1 |
| IC | 田中(SREリード) |
| 影響 | 30万ユーザー、推定5,000万円の売上損失 |

## タイムライン
(シナリオのタイムラインをそのまま整理)

## 根本原因
DBコネクションプールのサイズ(100)がピーク時のトラフィック(通常の8倍)に
対して不十分だった。商品サービスの各Podがコネクションを保持し続け、
DB側の最大接続数に到達した。

## 寄与要因
1. 事前のキャパシティプランニングで8倍トラフィックを想定していなかった
2. オートスケールのトリガーがCPUベースで、DB接続数は監視対象外だった
3. Kafkaコンシューマーの処理速度制限が設定されていなかった
4. アラート発報までに7分のギャップがあった(10:00→10:07)

Part 2: 5 Whys分析(15分)

根本原因を5 Whysで深掘りしてください。

解答例
Why 1: なぜシステムがダウンした?
  → DBコネクションプールが枯渇した

Why 2: なぜコネクションプールが枯渇した?
  → ピーク時のトラフィック(8倍)に対してプールサイズ(100)が不十分

Why 3: なぜ8倍のトラフィックを想定していなかった?
  → キャパシティプランニングで過去最大の3倍までしか想定していなかった

Why 4: なぜ3倍までしか想定しなかった?
  → 事業チームからのトラフィック予測が共有されていなかった

Why 5: なぜ共有されていなかった?
  → マーケティングとエンジニアリング間の大規模イベント事前調整プロセスがなかった

根本原因: 大規模イベント時のクロスファンクショナルな事前調整プロセスの欠如

Part 3: SLO分析(15分)

このインシデントがSLOに与えた影響を計算してください。

解答例
SLISLO目標インシデント中の値影響
可用性99.9%(月間ダウンタイム43分)50分のサービス劣化SLO違反(月間バジェット超過)
レスポンスタイム(p95)500ms5,000ms以上10倍の劣化
エラー率0.1%以下推定30%300倍の悪化

エラーバジェット計算

  • 月間許容ダウンタイム: 43.2分(99.9%の場合)
  • 消費: 50分 → バジェット超過
  • 対応: エラーバジェットポリシーに従い、信頼性改善にフォーカス

Part 4: アクションアイテム策定(15分)

優先度付きのアクションアイテムリストを作成してください。

解答例
IDタイトル優先度担当期限
AI-001DBコネクションプールの動的スケーリング導入P0SRE1週間
AI-002DB接続数の監視アラート追加P0SRE1週間
AI-003大規模イベント事前調整プロセスの策定P1PM+SRE2週間
AI-004キャパシティプランニングにDB接続数を追加P1SRE1ヶ月
AI-005Kafkaコンシューマーのバックプレッシャー設定P1Backend2週間
AI-006オートスケールトリガーにDB接続数を追加P2SRE四半期
AI-007大規模イベント前の負荷テスト必須化P2QA四半期

Part 5: 改善のレビュー(15分)

3ヶ月後の改善レビューで報告する内容を作成してください。

解答例
アクションアイテムステータス効果
DB動的スケーリング完了ピーク時に自動拡張、接続枯渇なし
DB接続数アラート完了接続数80%で早期警告
イベント事前調整完了年末セールでマーケ+SRE合同計画実施
キャパシティプランニング改善完了DB指標を追加、8倍想定でプランニング
Kafkaバックプレッシャー完了コンシューマーの処理速度制御実装
オートスケールトリガー進行中設計完了、テスト中
負荷テスト必須化進行中CIパイプラインに組み込み中

改善効果の検証

  • 年末セールでの同様のトラフィック急増に対して、障害なく処理完了
  • DB接続数はピーク時でも上限の60%に収まった

まとめ

ポイント内容
ポストモーテム事実ベースで、ブレイムレスに記述する
RCA表面的な原因を超えて仕組みの問題まで到達する
SLOインシデントのエラーバジェットへの影響を定量化する
アクションアイテム優先度と期限を明確にし、追跡する
レビュー改善の有効性を検証する

チェックリスト

  • ポストモーテムドキュメントを作成できた
  • 5 Whysで根本原因を分析できた
  • SLOへの影響を定量的に分析できた
  • 優先度付きアクションアイテムを策定できた
  • 改善レビューを設計できた

次のステップへ

最後は卒業クイズです。Month 4の全体を振り返りましょう。


推定読了時間: 90分