Contents
SRE インシデント対応 テンプレート:要点チェックとダウンロード
ここでは短時間で運用に入れるチェックリストと、今すぐコピーして使えるテンプレート群を提示します。ダウンロード手順やGoogle Docsへの取り込み方法も解説します。テンプレートは導入前に組織の閾値や承認ルールに合わせてカスタマイズしてください。
即利用できる短いチェックリスト
すぐ初動できる最小限の手順を示します。15分以内の初動と1時間以内の深堀りを区別して運用することが効果的です。
- インシデントIDを発行して記録を開始する(例: ir-20250312-0001)。
- インシデント専用チャネルを作成して参加者を招集する。
- 一時的なSeverityを設定し、Incident Commander(IC)とCommunicationsを割り当てる。
- 既知のランブックを適用して緩和(mitigation)を試みる。
- 15分経過で進展がなければ次レイヤーを招集するルールに従う。
ポストモーテム(RCA)テンプレート(Markdown)
コピペして使えるポストモーテム(RCA)テンプレートです。組織のフォーマットに合わせてフィールドを追加してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# インシデントRCAテンプレート - インシデントID: - タイトル: - Severity: - 発生時刻(発生が不明な場合は「最初にログで確認できた時刻」/UTC): - 検知時刻(UTC): - 検知手段(例: Cloud Monitoringアラート / ユーザ報告): - 影響範囲(サービス、リージョン、推定顧客数): - 概要(短文): - タイムライン(ISO8601 UTCで時刻を記載): - 2025-03-12T08:15:00Z — アラート発生: 5xxエラー急増 - 2025-03-12T08:18:30Z — ICアサイン、チャネル作成 - 2025-03-12T08:25:00Z — 暫定ルートでトラフィック分離 - 根本原因(短文): - 因果分析(要点、5 Whysなど): - 影響評価(顧客数・SLA違反分数): - 再発防止策(具体的、担当者、期限): - 検証計画(いつ/どのように完了を確認するか): - 学びと次回アクション: - 関連リンク(ダッシュボード、ログ、PR、通信履歴): |
ランブックテンプレート(Markdown)
よく使う診断手順をランブック化したテンプレート例です。手順は読みやすく番号化してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# ランブック: サービス名(例: auth-api) ## 目的 短期の緩和と原因特定を迅速に行うための手順。 ## 初動(最初の15分) 1. インシデントID発行、チャネル作成 2. ダッシュボードで主要メトリクス確認(エラー率、レイテンシ) 3. 影響範囲の一次見積(リージョン、顧客割合) 4. 既知の緩和手順を実行(例: レート制限、フェイルオーバー) ## 深堀り(15分〜1時間) 1. ログ/トレースの収集(永続保存) 2. SMEを招集して原因切り分け 3. 暫定対応の実施、状態を5〜15分毎に更新 ## 復旧基準 - 主要APIのエラー率がSLO以下で5分間安定 |
顧客/社内通知テンプレート(短文)
通知文は事実中心かつ短くします。法務の公開基準に従ってください。
|
1 2 3 4 5 6 7 8 |
【初期受領】 状況:○○サービスで接続エラーが発生しており調査中です。 影響範囲:一部リージョンの顧客に影響 次回更新:15分後 【復旧報告】 状況:サービスは復旧しました。原因は△△で、恒久対策を進めます。 |
GitHub / ZIP / Google Docsで配布する手順
テンプレートをチームで共有するための具体的な手順です。小規模でもバージョン管理を行ってください。
- ローカルにテンプレートを保存する(例: templates/ 以下に Markdown ファイル)。
- GitHub にリポジトリを作成し、templates/ を push する。
- git init → git add → git commit → git remote add origin ... → git push
- ZIP を生成して配布する: zip -r sre-incident-templates.zip templates/
- Google Docsに取り込む: Markdown を Google Docs に貼り付け、ドキュメントを共有(編集権限と閲覧権限は分ける)。
- リポジトリに PR テンプレートと CHANGELOG を追加して変更履歴を残す。
導入手順(ローリング導入)
テンプレートの全社展開は段階的に行うと定着しやすいです。まずは小さな範囲で運用し、改善を重ねます。ローリング導入はリスクを低く保ちながら運用ルールを調整するのに有効です。
段階的導入手順
導入はフェーズに分けて実行します。各フェーズで評価と改善を必ず行ってください。
- 主要サービス1つでテンプレート試用(1〜2週間)。
- テーブルトップ演習を実施しテンプレをブラッシュアップ。
- 実運用で1サイクル回してフィードバックを反映。
- 他サービスへ段階的に展開し四半期ごとに見直す。
テーブルトップ演習と記録例
テーブルトップ演習はテンプレの検証に最適です。実シナリオを模した記録を残します。
|
1 2 3 4 5 6 7 8 |
演習名: DBレプリケーション障害演習 日付: 2025-03-12 参加: オンコール2名、DB SME1名、IC1名、Communications1名 シナリオ: プライマリからのレプリケーション遅延が発生し、特定リージョンで読み取り障害 主要発見: - 初動でのコミュニケーション遅延(改善: 初期メッセージテンプレを自動投稿) - ログ保存ルールの曖昧さ(改善: ログ保全手順をRACI化) |
導入評価の指標
導入効果を測る指標例です。数値目標は組織のSLOに合わせて設定してください。
- MTTD(平均検知時間)
- MTTR(平均復旧時間)
- RCA 完了率(既定期間内の完了率)
- テーブルトップでの改善実施率
運用:初動・役割・エスカレーション
役割と権限を明確にすると対応速度が上がります。権限はドキュメントで明記しておくと判断が速くなります。以下は典型的な役割とエスカレーション基準の例です。
主要ロールと権限
各ロールの責任を短く示します。権限は組織ルールに従って承認してください。
- Incident Commander(IC): 全体の意思決定と優先順位付け。
- Communications: 社内外への情報発信を管理。
- Responders: 診断・修復・ログ収集を実行。
- SME: 技術的な深掘り支援。
- Scribe / Timeline owner: タイムライン記録を担当。
初動チェックリスト(15分/1時間枠)
時間区切りで優先度を設定します。短い時間枠で行動を固定化すると初動が安定します。
- 0–15分: インシデントID発行、チャネル作成、暫定Severity設定、既知ランブック適用。
- 15–60分: 影響範囲確定(顧客数、リージョン)、SME招集、暫定復旧策実施、顧客/経営層向け初回通知。
- 60分以降: 恒久対処の計画化、RCA開始、ログの永続保全。
エスカレーション基準と自動化例
時間と影響度で自動化すると連絡漏れが減ります。ツールのエスカレーションルールを整備してください。
- 時間ベース: 15分で進展なし→次レイヤー招集。30分でマネージャー招集。
- 影響度ベース: エラー率が閾値(例: 5%)をX分連続で超過→自動エスカレーション。
- 自動化例: Cloud Monitoring → PagerDuty/Opsgenie → インシデントチャンネル自動生成
ランブック:診断コマンドと環境別チェック
ランブックには環境別・サービス別のチェックリストと代表的な診断コマンドを残します。コマンドは権限やバージョン依存のため、実行前に影響を確認してください。
Kubernetes / HTTP 障害
以下は代表的なコマンド例です。namespaces や pod 名は環境に合わせて置換してください。
|
1 2 3 4 5 |
kubectl get pods -n <namespace> kubectl describe pod <pod> -n <namespace> kubectl logs <pod> -n <namespace> --since=10m curl -I http://<service>/health |
Linux / プロセス停止
システム系の初動診断コマンド例です。journalctl の利用はログ量に注意してください。
|
1 2 3 4 5 |
systemctl status <service> journalctl -u <service> -n 200 --no-pager ps aux | grep <proc> top -b -n 1 | head -n 20 |
クラウド(GCP / Azure)ログ参照例
Cloud Monitoring のアラートやログを参照して影響範囲を把握します。Cloud Monitoring は旧称 Stackdriver です。
- Cloud Monitoring(GCP): https://cloud.google.com/monitoring
- 例(gcloud):
|
1 2 |
gcloud logging read 'resource.type="k8s_container" AND severity>=ERROR' --limit=50 |
DB系の代表的な切り分けコマンド
DBコマンドは製品・バージョンにより異なります。読み取り専用コマンドを優先し、実行前に影響を確認してください。
- MySQL / MariaDB:
|
1 2 3 4 |
SHOW PROCESSLIST; SHOW SLAVE STATUS\G # レプリケーションを使う環境で確認 SHOW GLOBAL STATUS LIKE 'Threads_connected'; |
- PostgreSQL:
|
1 2 3 |
SELECT pid, usename, state, query_start, query FROM pg_stat_activity WHERE state <> 'idle'; SELECT * FROM pg_stat_replication; -- レプリケーション状況 |
- MongoDB:
|
1 2 3 |
rs.status(); db.currentOp({$all: true}); |
- Redis:
|
1 2 3 |
redis-cli INFO replication redis-cli CLIENT LIST |
- Cassandra:
|
1 2 3 |
nodetool status nodetool tpstats |
- Elasticsearch:
|
1 2 3 |
curl -s -XGET 'http://localhost:9200/_cluster/health?pretty' curl -s -XGET 'http://localhost:9200/_cat/shards?v' |
実運用ではコマンド実行がパフォーマンスに影響する場合があるため、読み取り専用かつ低負荷な方法を優先してください。
ポストモーテム(RCA)と改善管理
RCAは事実ベースで書き、再発防止はチケット化してフォローアップします。時刻はISO8601(UTC)で統一すると集計と比較が容易です。
RCAの書き方と必須項目
RCAで重視すべき点をまとめます。因果関係とオーナーを明確にしてください。
- 事実のタイムライン(時刻・事実のみ)
- 技術的・組織的原因の区別
- 再発防止策(具体的、担当者、期限)
- 検証計画(完了条件と検証方法)
- 関連チケット・PRのリンク
記入済みサンプルRCA(例)
実際に記入した例です。時刻は ISO8601(UTC)で記載しています。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
- インシデントID: ir-20250312-0001 - タイトル: auth-api の 5xx 増加によるログイン障害 - Severity: Sev1 - 発生時刻: 2025-03-12T08:12:00Z - 検知時刻: 2025-03-12T08:15:10Z - 検知手段: Cloud Monitoring アラート(エラー率閾値超過) - 影響範囲: 全リージョン、推定顧客影響率 18% - タイムライン: - 2025-03-12T08:12:00Z — エラー率が閾値を超過 - 2025-03-12T08:15:10Z — アラート受信、ICアサイン - 2025-03-12T08:25:00Z — トラフィック分離で一部復旧 - 2025-03-12T09:10:00Z — 恒久対応デプロイにより復旧完了 - 根本原因: キャッシュライブラリのコネクションリークによりバックエンドDBが枯渇 - 因果分析: コネクションプール設定値が不適切で、スローダウンで接続が増加→DB枯渇→5xx発生 - 再発防止策: - コネクションプールの閾値見直し(担当: DBチーム、期限: 2025-03-20) - コネクション使用率の短時間アラート追加(担当: SRE、期限: 2025-03-18) - テスト環境での負荷試験追加(担当: QA、期限: 2025-04-01) - 検証計画: テスト負荷で接続数が安定することを監視で5日間確認 |
テンプレート管理:Git / CHANGELOG / PR ワークフロー
テンプレートは使われ続けるための運用を組み込みます。変更は PR ベースで透明に管理してください。CHANGELOG で重要変更をチームに周知します。
PRテンプレート例
PR の説明テンプレート例を示します。変更理由と影響範囲を明確にしてください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## 変更概要 (何を変更したか簡潔に) ## 背景 / 理由 (なぜこの変更が必要か) ## 影響範囲 (どのテンプレート/ランブックに影響するか) ## テスト・検証 (どのように検証したか / テーブルトップ実施の有無) ## リリース手順 (マージ後の運用上の注意点) |
CHANGELOG フォーマット例
簡潔な CHANGELOG は運用者に役立ちます。例:
|
1 2 3 4 5 |
## [Unreleased] - 2025-03-12: auth-api RCA テンプレートに検証計画フィールドを追加(#42) ## [2025-02-01] - 初版リリース |
ツール連携と自動化
監視から通知、チケット、顧客通知までのフローを自動化すると誤差が減ります。ベンダー固有の実装は公式ドキュメントを参照してください。
一般的な自動化フロー
典型的な連携パターンを示します。各ステップは冗長性とテストを考慮して設計します。
- 監視アラート → アラート集約(PagerDuty / Opsgenie)→ オンコール通知
- オンコール通知 → インシデントチャネル自動生成(Slack/Teams)
- チャネルに初期テンプレ自動投稿 → チケット作成(Jira 等)
- Statuspage で顧客通知
GCP / Azure の自動エスカレーション(例)
GCP の場合は Cloud Monitoring をトリガーにして Pub/Sub 経由で Cloud Function を呼び、PagerDuty に webhook を投げるパターンが一般的です。Cloud Monitoring の公式ドキュメントを参照してください。
- Cloud Monitoring: https://cloud.google.com/monitoring
Azure も Monitor Alerts → Action Group → Logic App / Webhook で外部通知が可能です。
Slack / Teams 運用上の注意
インシデント用チャンネルは命名規約を決めます(例: incident-YYYYMMDD-service)。公開範囲とログの保管先をあらかじめ定め、過度な内部ログの投稿は避けます。
セキュリティ・証拠保全・ログ取り扱い
ログやコマンド出力には機密情報が含まれるため、取り扱いルールと保存ポリシーを厳格に設けます。法務やコンプライアンスと連携した手順を用意してください。
ログのマスキングと共有ポリシー
ログ共有時はPIIやシークレットをマスキングしてください。共有対象、共有手段(暗号化通信のみ)、保持期間を定めます。
- マスキング例: メールアドレスの一部を***で隠す
- Slack 等へは要約や匿名化したスニペットを投稿
証拠保全(WORM / Immutable ストレージ)の実装例
証拠保全が必要な場合は変更不可の保管を検討します。代表的なオプション:
- AWS S3 Object Lock(WORM): https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html
- GCS バケットの保持ポリシー: https://cloud.google.com/storage/docs/retention-policy
保存時はアクセス制御、暗号化、監査ログを組み合わせて運用してください。
法務・コンプライアンスとの連携
セキュリティインシデントは専用のIRフローに切り替えます。法的開示基準に従い、公開情報は法務と調整して決定してください。
国際対応と用語対訳
国際チームで運用する場合は英語版テンプレートと用語の対訳を用意すると共有がスムーズです。時刻表記はUTCのISO8601を推奨します。
英語版テンプレート提供のポイント
英語版は日本語版と同等の構成にし、用語を揃えて管理します。ドキュメント名やフィールド名は両言語で対応表を作成してください。
用語対訳(主要語)
下表は運用で混乱しやすい語の簡易対訳例です。運用ではこの表を基準として統一してください。
| 日本語 | English |
|---|---|
| インシデントID | Incident ID |
| 発生時刻 | occurrence_time (ISO8601 UTC) |
| 検知時刻 | detect_time (ISO8601 UTC) |
| 優先度 / Severity | Severity |
| インシデントコマンダー | Incident Commander (IC) |
| ポストモーテム / RCA | Postmortem / Root Cause Analysis |
参考リンク(主要ドキュメント)
公式ドキュメントや信頼できる解説を参照してください。実装にあたっては各ベンダーの最新版ドキュメントを確認してください。
- Google SRE Resources(書籍・実務資料): https://sre.google/books/
- Site Reliability Engineering(Wikipedia): https://en.wikipedia.org/wiki/Site_reliability_engineering
- What is Site Reliability Engineering?(AWS): https://aws.amazon.com/what-is/sre/
- Cloud Monitoring(GCP): https://cloud.google.com/monitoring
- AWS S3 Object Lock(証拠保全): https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html
- PagerDuty サポート: https://support.pagerduty.com/
- Atlassian Statuspage: https://www.atlassian.com/software/statuspage
まとめ(導入から運用までの要点)
SRE インシデント対応 テンプレートは初動、ランブック、RCA、改善管理までを一貫して設計することが重要です。Severity は定量基準とビジネス影響の両面で判定し、時刻はISO8601(UTC)で統一してください。テンプレートはGitでバージョン管理し、PR/CHANGELOGで変更を追跡すると運用定着が進みます。
- まずは主要サービスでテンプレートを試行運用することを推奨します。
- テーブルトップ演習で曖昧点を洗い出し、改善策は必ずチケット化して追跡してください。
- ログやコマンド出力は機密情報保護と証拠保全を両立するポリシーを整備してください。