ストーリー
高橋アーキテクトがインシデント対応のフローチャートを見せた。
インシデントの分類
// インシデントの重要度分類
enum IncidentSeverity {
SEV1 = '致命的: サービス全停止、データ損失',
SEV2 = '重大: 主要機能の障害、一部ユーザーに影響',
SEV3 = '中程度: 副次機能の障害、回避策あり',
SEV4 = '軽微: パフォーマンス低下、限定的影響',
}
| 重要度 | 影響 | 対応時間目標 | 対応体制 |
|---|---|---|---|
| SEV1 | サービス全停止 | 15分以内に対応開始 | インシデントコマンダー + 全チーム |
| SEV2 | 主要機能の障害 | 30分以内に対応開始 | オンコール + 関連チーム |
| SEV3 | 副次機能の障害 | 4時間以内に対応開始 | オンコール |
| SEV4 | 軽微な影響 | 次営業日 | 通常チケット対応 |
インシデント対応フロー
1. 検知 (Detection)
│ アラート発火 or ユーザー報告
▼
2. トリアージ (Triage)
│ 重要度判定、インシデントコマンダー任命
▼
3. 対応 (Response)
│ 影響軽減(暫定対応)、コミュニケーション
▼
4. 復旧 (Recovery)
│ サービス正常化の確認
▼
5. フォローアップ (Follow-up)
ポストモーテム、再発防止策
各フェーズの詳細
1. 検知
// オブザーバビリティによる自動検知
interface DetectionSources {
automated: {
sloAlert: 'エラーバジェット消費速度アラート';
metricsAlert: 'エラー率/レイテンシ閾値アラート';
logAlert: 'FATALログ検知';
syntheticMonitoring: '外部からのヘルスチェック失敗';
};
manual: {
customerReport: 'カスタマーサポートへの報告';
internalReport: '社内メンバーからの報告';
};
}
2. トリアージ
interface TriageProcess {
step1: '影響範囲の確認(ダッシュボードで確認)';
step2: '重要度の判定(SEV1-4)';
step3: 'インシデントコマンダーの任命';
step4: 'コミュニケーションチャネルの開設(Slackチャネル等)';
step5: '関係者への初報通知';
}
3. 対応(暫定対応を最優先)
// 根本原因の特定より、サービス復旧を最優先
interface ResponsePriority {
priority1: {
action: '影響の軽減(暫定対応)';
examples: [
'前バージョンへのロールバック',
'フェールオーバーへの切り替え',
'問題のあるサービスの隔離',
'トラフィックの制限(Rate Limiting)',
];
};
priority2: {
action: '根本原因の調査';
tools: [
'ダッシュボードでメトリクスの異常を確認',
'トレースで遅延箇所を特定',
'ログでエラー詳細を確認',
'デプロイ履歴との相関を確認',
];
};
}
4. コミュニケーション
// インシデント中のコミュニケーションテンプレート
interface IncidentUpdate {
initial: {
template: `
[SEV{severity}] {title}
影響: {impact}
現状: 調査中
担当: {commander}
チャネル: #incident-{id}
`;
};
progress: {
template: `
[更新] {title}
現状: {status}
原因(暫定): {cause}
対応: {action}
次の更新: {nextUpdate}
`;
};
resolved: {
template: `
[解決] {title}
復旧時刻: {resolvedAt}
影響時間: {duration}
原因: {rootCause}
対応: {resolution}
ポストモーテム: {postmortemDate}
`;
};
}
オンコールローテーション
interface OnCallSchedule {
rotation: 'weekly'; // 週替わり
teamSize: 5; // 5人で回す
primaryOnCall: 1; // プライマリ1人
secondaryOnCall: 1; // セカンダリ1人(バックアップ)
escalationTimeout: '15分'; // 15分応答がなければエスカレーション
responsibilities: {
primary: 'アラート対応、初期トリアージ、暫定対応';
secondary: 'プライマリのバックアップ、エスカレーション先';
};
wellbeing: {
maxConsecutiveWeeks: 1; // 連続オンコールは1週まで
compensatoryOff: true; // 深夜対応時の代休あり
tooling: 'PagerDutyでアラート管理';
};
}
まとめ
| ポイント | 内容 |
|---|---|
| インシデント分類 | SEV1〜SEV4で重要度を定義 |
| 対応フロー | 検知→トリアージ→対応→復旧→フォローアップ |
| 暫定対応優先 | 根本原因調査より、サービス復旧を最優先 |
| コミュニケーション | 定期的なステータス更新、テンプレートの活用 |
チェックリスト
- インシデントの重要度分類(SEV1-4)を説明できる
- インシデント対応フローの各フェーズを理解した
- 暫定対応を最優先する理由を説明できる
- オンコールローテーションの設計ができる
次のステップへ
次は「カオスエンジニアリング」を学びます。障害を”事前に”発見するためのアプローチを見ていきましょう。
推定読了時間: 30分