🐱 うさねこ教室 Python と可観測性の教室

インシデント管理

🐱 この章の目次

インシデントとは

インシデント(Incident) は、サービスの品質が SLO を下回り、ユーザーに影響を与えている状態を指します。 障害が「起きるかどうか」ではなく「いつ起きるか」の問題であると認識し、対応プロセスを事前に設計しておくことが重要です。 『入門監視』第 3 章が述べるとおり、インシデント管理の目的はサービスの早期回復であり、原因究明は後回しにします。

インシデントライフサイクル

インシデント対応は 5 つのフェーズで構成されます。

フェーズ目的主なアクション
検知(Detect)異常を認識するアラート発火、ユーザー報告
トリアージ(Triage)重大度を判定するSeverity 決定、担当者アサイン
緩和(Mitigate)影響を最小化するロールバック、フェイルオーバー
解決(Resolve)正常状態に復帰する修正デプロイ、確認テスト
学習(Learn)再発を防止するポストモーテム、改善タスク起票

重大度レベル

Severity(重大度) を事前に定義し、対応のスピードとエスカレーション範囲を決めます。

レベル定義対応目標
Sev1サービス全体停止即時、全員招集
Sev2主要機能の劣化15 分以内に対応開始
Sev3一部ユーザーに影響営業時間内に対応
Sev4影響なし(潜在リスク)次スプリントで対応

インシデント中のコミュニケーション

対応中はひとつの War Room(対策チャンネル) に情報を集約します。 ステータスアップデートは 15〜30 分ごとに定時発信し、ステークホルダーの不安を軽減します。 「何がわかっていて、何がまだわかっていないか」を明示する習慣が信頼を生みます。

ポストモーテム文化

インシデント収束後に ポストモーテム(Postmortem) を実施し、タイムライン・根本原因・改善アクションを文書化します。 最も重要な原則は ブレイムレス(Blameless) であることです。 個人を責めるのではなく、システムやプロセスの弱点に焦点を当てることで、報告のインセンティブを維持します。

# ポストモーテムテンプレート(例)
postmortem:
  title: "2026-08-09 決済 API タイムアウト"
  severity: Sev2
  duration: "45 min"
  impact: "決済成功率が 60% に低下"
  timeline:
    - "09:15 アラート発火: HighErrorBurnRate"
    - "09:18 オンコール担当が War Room 開設"
    - "09:25 DB コネクションプール枯渇を確認"
    - "09:30 プールサイズを拡張しデプロイ"
    - "10:00 エラーレート正常復帰を確認"
  root_cause: "マイグレーション時にコネクション上限の変更漏れ"
  action_items:
    - "コネクションプール設定を IaC に組み込む"
    - "プール使用率のアラートを追加する"

まとめ

インシデント管理は「人と情報の流れ」の設計です。 技術的な修正だけでなく、コミュニケーション・判断基準・振り返りのプロセスを整備することで、チームは障害から学び続けることができます。

📖 参考: 『入門監視』第 3 章 — インシデント管理