مرکزی مواد پر جائیں
友田 陽大
Observability & SRE
アーキテクチャ設計
AWS
TypeScript
サーバーレス

インシデント対応の実務ガイド2026:Incident Commander・Runbook・ポストモーテム・オンコールをSRE流に設計する

本番障害に強いチームの作り方を、Google SREの公式知見に忠実に解説。Incident Commanderモデル、SEV1〜4の重大度設計、検知→緩和→検証→広報のRunbookテンプレート、非難なきポストモーテム、オンコール衛生(toil/アラート疲れ削減)、MTTD/MTTRとエラーバジェットまで、運用込みで設計する実務知を実コードとテンプレートで示します。

Published
Reading time
24 min read
Author
友田 陽大
شیئر کریں

「障害が起きたら、その場でなんとかする」——これは運用ではなく、運頼みです。本番でお金が動くシステムを一人で設計・実装し、その信頼性・可観測性レイヤーを主導してきた経験から断言します。インシデント対応の品質は、障害が起きてから決まるのではなく、起きる前に決めた「役割・手順・基準」で決まります

この記事は、Google SREの公式知見(Managing Incidents / Postmortem Culture / Incident Response(Workbook) / Being On-Call)に忠実に、しかし公式より**「いつ・どう・なぜ」の判断軸を厚く**して、現場で明日から使えるテンプレートとコードに落とすものです。私が環境分野のサーバーレス決済プラットフォームで実際に組んだ運用(CloudWatch Alarms + Slack通知 + 構造化ログ、AWS Backup / Vault Lock / PITRによるDR)を例に進めます。

この記事の射程:「監視を整えた、その先」。何を計測するか(メトリクス・トレース・ログ)は可観測性の柱の記事に書きました。本稿はその上で、人と組織が障害にどう動くかを設計します。可観測性が「見える化」なら、インシデント対応は「見えたものに、誰が・どう動くか」です。

0. 全体像:インシデント対応は「5つの部品」でできている

場当たり対応が破綻するのは、毎回ゼロから判断しているからです。本番に強いチームは、次の5部品を事前に用意しています。混同すると事故ります。

部品役割この記事の章
指揮系統誰が判断し、誰が手を動かし、誰が伝えるか§1(Incident Commander)
重大度基準「これはインシデントか?」を即断する物差し§2(SEV1〜4)
Runbook検知→緩和→検証→広報の定型手順§3
検知→対応の接続アラートがRunbookを指す配線§4
ポストモーテム障害を組織の学習資産に変える§5

加えて、これらを回し続ける土台がオンコール運用(§6)と、改善を駆動する指標(§7)です。順番に意味があります。役割を決め、基準を決め、手順を書き、アラートに繋ぎ、終わったら学ぶ。以下この流れで進めます。


1. Incident Commanderモデル:その場対応をやめ、役割で動く

複数人が同じログを見て、それぞれ勝手に再起動やデプロイを始める——これが最悪の本番対応です。Google SREはManaging Incidentsで、消防由来の Incident Command System(ICS) を採用しています。核心は「everybody involved in the incident knows their role and doesn't stray onto someone else's turf(全員が自分の役割を理解し、他人の領分に踏み込まない)」という責任の明確な分離です。

1-1. 4つの役割

SRE Workbook は良いインシデント管理を 3C(Coordinate / Communicate / Control) と表現します。これを担うのが次の役割です。

役割一言でやることやらないこと
Incident Commander(IC)司令塔全体状況の把握、役割の割り当て、意思決定、障害物の除去。委任していない役割はICが兼任自分でシステムをいじる(手を動かさない)
Operations Lead(Ops)唯一の実行者緩和・修復の実作業。「the only group modifying the system during an incident(障害中にシステムを変更する唯一の集団)」全体調整・外部広報
Communications Lead(Comms)対外の顔ステークホルダーへの定期更新、ドキュメントの正確性維持システム変更
Planning Lead後方支援長期課題、バグ起票、ハンドオフ準備、平常からの逸脱の追跡直接の緩和作業

小規模チーム(あるいは個人)では、最初はICが全役割を兼ねるのが正しい姿です。重要なのは人数ではなく「いま自分は何の帽子をかぶっているか」を全員が認識していること。規模が大きくなったら委任して分離していきます。

1-2. 唯一の真実:Live Incident Document と Command Post

ICSが機能する土台は2つの「単一の真実」です。

  • Recognized Command Post(指揮所):ステークホルダーが集まる指定の連絡チャネル。Slackなら専用チャンネルを切る。「どこで会話しているか」を探す時間をゼロにします。
  • Live Incident State Document(生きた障害ドキュメント):公式が「most important responsibility is to keep a living incident document(最重要の責務は生きた障害ドキュメントの維持)」と言うほど中核。複数人が同時編集できる場所(Google Docs等)に置きます。

このドキュメントは、後の§5でそのままポストモーテムの素材になります。リアルタイムに書くからこそ、時系列が正確に残る。これが「あとで思い出して書く」との決定的な差です。

1-3. ハンドオフは「明示的な引き継ぎ」で

長時間の障害では指揮が交代します。公式が強調するのは曖昧な交代の禁止です。「You're now the incident commander, okay?」と明示的に宣言し、相手の確認を取ってから前任は離脱する。「なんとなく交代したつもり」が、指揮の空白=二重対応や放置を生みます。

判断軸:いつICSを起動するか? Workbookの教訓は明快です。「迷ったら宣言する(declare early)」。あるケーススタディでは「did not declare an incident when problems first appeared(問題が出た時点で宣言しなかった)」ことが解決遅延を招きました。宣言のコストは「Slackチャンネルを1つ切る」程度。過小宣言のほうが圧倒的に高くつきます


2. 重大度(Severity):SEV1〜4で「即断」できる物差しを持つ

「これは緊急か?」を毎回その場で議論していると、判断そのものが障害になります。重大度を事前に定義し、検知した人が5秒で当てはめられる状態を作ります。重大度は「対応の速さ・関わる人・連絡の範囲」を一意に決めるためのものです。

重大度定義(影響)一次応答目標エスカレーション
SEV1全体停止 / データ損失 / 決済の二重課金・取りこぼし即時(ページ)IC即任命 + 関係チームリード + 経営報告決済Webhookが全件失敗、本番DB接続枯渇で全API 5xx
SEV2主要機能の重大な劣化(広範なユーザー影響)数分以内オンコール一次 + 必要に応じIC一部リージョンでログイン不可、課金は通るが領収書未発行
SEV3限定的・回避策あり / 単一機能の劣化営業時間内オンコール一次が対応、必要時に起票管理画面のCSV出力が失敗、非クリティカルなジョブ遅延
SEV4ユーザー影響ほぼなし / 内部のみ翌営業日チケット化のみステージングの軽微なエラー、ログのノイズ増加

数値(応答目標)は自チームのSLOから逆算して決めます。たとえば99.99%可用性なら四半期あたり許容ダウンは約13分。Being On-Callはこの水準を満たすために「paging response times(ページ応答時間)を重要サービスで5分、緊急度の低いもので30分」と例示しています。「うちのSEV1は何分以内に人が触り始めるか」を、SLOの数式から決める——ここが場当たりとの分かれ目です。

私が決済プラットフォームで設計した重大度の軸は、ユーザー数ではなく**「お金の整合性」**でした。表示が崩れるより、課金が一件でも狂うほうが上位。重大度の物差しは、そのプロダクトで「最も壊してはいけないもの」を映すべきです。


3. Runbook設計:検知 → トリアージ → 緩和 → 検証 → 広報

Runbookは「寝起きの当番でも、考えずに辿れる手順書」です。良いRunbookは創造性を要求しません。Workbookの大原則は「First responders must prioritize mitigation above all else(一次対応者は何よりもまず緩和を優先せよ)」。原因究明より止血が先です。公式の優先順位は「Stop the bleeding, restore service, and preserve the evidence(止血し、復旧し、証拠を保全する)」。

3-1. Runbookの骨格(テンプレート)

すべてのRunbookを同じ骨格に揃えます。フォーマットが揃うと、当番は「次にどこを見ればいいか」を迷いません。

# Runbook: <アラート名 / 障害シナリオ>
最終更新: 2026-06-24 / オーナー: <チーム> / 関連SLO: <SLO名>

## 0. このRunbookが対象とする症状
- 発火するアラート: <Alarm名 / メトリクス条件>
- 想定される重大度: SEV2(影響が全課金に及べばSEV1へ昇格)

## 1. Detect(検知)— 何が起きているか確認
- ダッシュボード: <URL>
- 確認クエリ/ログ: <構造化ログのフィルタ式>
- 「本物か」の判定: 単発スパイクか継続か、影響範囲は?

## 2. Triage(トリアージ)— 重大度を確定しICを立てる
- §2の表で重大度を判定
- SEV1/2 なら: 障害チャンネルを作成、ICを宣言、Live Docを開く

## 3. Mitigate(緩和)— まず止血する(原因究明より先)
- [ ] 第一手(最速で影響を止める): 例) 機能フラグでOFF / 直前デプロイをロールバック
- [ ] 第二手: 例) スケールアウト / レート制限 / フェイルオーバー
- 各手順は「コピペで実行できるコマンド」で書く

## 4. Verify(検証)— 本当に直ったか
- 復旧の判定条件(メトリクスが閾値以下に N 分継続)
- 取りこぼした処理のリカバリ(再処理・補償トランザクション)

## 5. Comms(広報)— 誰に何を伝えるか
- 初報テンプレ / 定期更新の頻度(SEV1は30分ごと等)/ 復旧報
- ステータスページ更新の要否

## 6. Postmortem(事後)
- ポストモーテム要否(§5の基準)/ Live Doc へのリンク

3-2. 実例:決済Webhookのバックログ滞留(SEV2→SEV1候補)

決済プロバイダからのWebhook処理が詰まり、課金イベントが未処理のまま積み上がる——お金が動くシステムで最も怖い症状の一つです。具体化したRunbookの中核(緩和〜検証)はこうなります。

## 3. Mitigate(緩和)
- [ ] キュー深さを確認(SQS ApproximateNumberOfMessages / DLQ件数)
- [ ] コンシューマが落ちていないか(ECSタスク数 / エラーログの例外)
- [ ] 第一手: コンシューマをスケールアウトして滞留を吐き出す
- [ ] 落ちている場合: 直前デプロイをロールバック(原因コミットの切り戻し)
- ⚠️ 絶対にやらないこと: 滞留解消のためにイベントを「全消し」する
       → 冪等キーがあるので「全部再処理」が安全。消すと取りこぼす。

## 4. Verify(検証)
- [ ] キュー深さが平常値に戻り 10 分継続
- [ ] DLQ のイベントを再投入(冪等キーで二重課金は構造的に発生しない)
- [ ] 課金台帳とプロバイダ側の件数を突合(差分ゼロを確認)

ここで効くのが冪等性(idempotency)です。決済イベントに決定的な冪等キーを持たせ、処理側で重複を吸収していれば、「滞留したイベントを全部再処理する」が安全な緩和策になります。この設計があったからこそ、私の決済プラットフォームでは本番二重課金0件を維持できました。Runbookの緩和策は、システムの設計(冪等性・ロールバック容易性)に支えられて初めて安全です。手順だけ立派でも、土台がなければ「再処理=二重課金」になりかねません。

3-3. もう一例:DB接続枯渇(SEV1)

サーバーレス構成で見落としがちなのがDB接続の枯渇です。Lambdaの同時実行が跳ね、各実行が接続を握ると、上限に達して全APIが5xxになります。

## 3. Mitigate(緩和)
- [ ] RDS の DatabaseConnections メトリクスが上限に張り付いていないか
- [ ] 第一手: 暴走している呼び出し元をレート制限 / 一時的に同時実行数を絞る
- [ ] 第二手: アイドル接続の強制クローズ、コネクションプロキシ(RDS Proxy)経由へ
- 恒久対策(緩和ではない / ポストモーテムのAIへ):
     接続プールの上限設計、サーバーレス前提のプロキシ常設

## 4. Verify(検証)
- [ ] 接続数が安全域に戻り、エラー率が SLO 内へ復帰して 15 分継続

Runbookは「生もの」。古いRunbookは無いより危険です。各Runbookにオーナーと最終更新日を必ず書き、ポストモーテムのたびに更新する。これを回す仕組みが§5・§6です。


4. 検知 → 対応の接続:アラートは必ずRunbookを指す

可観測性(OpenTelemetryで何をどう計測するかAWS環境でのSRE実装)を整えても、アラートとRunbookが繋がっていなければ、当番は鳴った瞬間に「で、どうすれば?」で固まります。鉄則は一つ——すべてのページングアラートは、対応するRunbookへのリンクを持つ

Being On-Callは**アラート疲れ(alert fatigue)**を警告します。低優先のアラートが氾濫すると「serious alerts to be treated with less attention than necessary(重大なアラートが必要な注意を払われなくなる)」。目指すは「1:1 alert/incident ratio(アラートとインシデントが1対1)」——鳴ったら必ず人が動くべき、を満たすアラートだけをページングにします。

// CloudWatch アラームを「Runbook付き」で定義する(CDK / TypeScript)
// 意図: アラートに必ず runbookUrl を持たせ、検知と対応を構造的に接続する
import { Alarm, ComparisonOperator, TreatMissingData } from "aws-cdk-lib/aws-cloudwatch";
import { SnsAction } from "aws-cdk-lib/aws-cloudwatch-actions";

const webhookBacklog = new Alarm(this, "WebhookBacklogHigh", {
  metric: webhookQueueDepthMetric,
  threshold: 1_000,           // 平常値から逆算した「人が動くべき」閾値
  evaluationPeriods: 3,       // 単発スパイクで鳴らさない(誤検知でアラート疲れを招かない)
  comparisonOperator: ComparisonOperator.GREATER_THAN_THRESHOLD,
  treatMissingData: TreatMissingData.NOT_BREACHING,
  // ★ アラーム説明に Runbook と重大度を埋め込む。通知から1クリックで手順へ。
  alarmDescription: [
    "SEV2: 決済Webhookの滞留。全課金に波及するなら SEV1 へ昇格。",
    "Runbook: https://runbooks.internal/payment-webhook-backlog",
  ].join("\n"),
});
webhookBacklog.addAlarmAction(new SnsAction(oncallTopic)); // → Slack へ

Slack通知のペイロードにも、重大度・Runbookリンク・初動の3点を必ず載せます。通知本文が「考える起点」になり、当番は探さずに動けます。これは私が決済基盤で実際に組んだ配線そのものです——CloudWatch Alarm → SNS → Lambda → Slack に構造化ログのコンテキストを添えて流す。「you can't respond to what you can't see(見えないものには対応できない)」を、検知から手順までの一本の線に落とし込みます。


5. 非難なきポストモーテム:障害を「組織の学習」に変える

障害対応のROIは、ポストモーテムで回収されます。Postmortem Cultureは postmortem を「a written record of an incident, its impact, the actions taken to mitigate or resolve it, the root cause(s), and the follow-up actions to prevent the incident from recurring(インシデントとその影響、緩和・解決のための行動、根本原因、再発防止のフォローアップを記した文書)」と定義します。

5-1. 「非難なき(blameless)」の本当の意味

blameless とは「優しくしよう」という話ではありません。公式は「assumes that everyone involved in an incident had good intentions and did the right thing with the information they had(関係者は皆、その時点の情報で善意かつ正しく行動したと仮定する)」と定義します。原因を個人ではなくシステム・プロセスに求める。理由は実利的です——「Removing blame from a postmortem gives people the confidence to escalate issues without fear(非難を取り除けば、人は恐れずに問題をエスカレーションできる)」。犯人探しをするチームは、次の障害を隠します。これが信頼性にとって致命傷です。

5-2. いつ書くか(基準を事前に決める)

公式の最重要メッセージ:「It is important to define postmortem criteria before an incident occurs(インシデントが起きる前に基準を定義せよ)」。私が使う基準は次の通りです。

✅ ポストモーテムを書く(いずれか1つでも該当)
   ・ユーザー影響のあるダウン/劣化が閾値を超えた(SEV1・SEV2は原則必須)
   ・いかなる種類であれデータ損失が発生した
   ・オンコールが手動介入した(ロールバック、トラフィック迂回など)
   ・解決までの時間が閾値を超えた
   ・監視が検知できず、人手で気づいた(=監視のバグ。最重要級)

❌ 書かなくてよい
   ・SEV4 の内部のみ・影響なし(チケットで十分)

「監視が検知できず人手で気づいた」を基準に入れるのが肝です。これは可観測性自体の欠陥であり、放置すると次は気づけません。

5-3. ポストモーテム・テンプレート(穴埋め式)

# ポストモーテム: <タイトル> (SEV<N>)
状態: Draft / In Review / Final
作成者: <名前>  レビュアー: <名前>  日付: 2026-06-24

## サマリー(3行)
何が・どれだけの間・誰に影響したか。

## 影響(Impact)
- 期間: <検知 HH:MM 〜 復旧 HH:MM>
- ユーザー影響: <数値で。憶測ではなく計測値>
- ビジネス影響: <例: 課金遅延 N 件。データ整合性は維持/喪失>

## タイムライン(Live Doc から転記)
- HH:MM アラート発火(自動 / 手動検知の別を明記)
- HH:MM IC 宣言、緩和開始
- HH:MM 緩和完了、検証開始
- HH:MM 復旧確認

## 根本原因(Root Cause)
「なぜ」を 5 回。技術的要因 + プロセス要因の両方を書く。
※ 個人名を主語にしない(「Aさんが消した」ではなく「削除を防ぐガードが無かった」)

## 検知(Detection)
どう気づいたか。自動検知でなかったなら、それ自体がアクションアイテム。

## 対応で良かった点 / 悪かった点
- Went well: 〜
- Went poorly: 〜
- Got lucky(運が良かった点): 〜 ← 次は運に頼らない仕組みへ

## アクションアイテム(§5-4 の基準で)
| # | 内容 | 種類(予防/緩和/プロセス) | 担当 | 期限 | チケット |
| - | ---- | ----------------------- | ---- | ---- | ------- |

「運が良かった点(where we got lucky)」を明示的に書くのは公式由来の良い習慣です。今回たまたま助かった点は、次は運に頼らない仕組みに変えるべき箇所だからです。

5-4. 良いアクションアイテム vs 悪いアクションアイテム

ポストモーテムの価値はアクションアイテムの質でほぼ決まります。曖昧な反省は何も変えません。

観点❌ 悪いAI✅ 良いAI
具体性「気をつける」「注意を徹底する」「Webhook滞留アラートに自動スケールのRunbookを追加する」
担当・期限誰がいつやるか不明担当=@yuta、期限=7/15、チケット=OPS-123
根本/対症「今回は手で再起動した」で終わる「接続枯渇を防ぐRDS Proxyを常設し、上限をアラート化」
検証可能性完了の判定が曖昧「障害ドリルで再現させ、自動緩和が効くことを確認」
主語個人を責める(「○○が悪い」)システム/プロセスを直す(「ガードを追加」)

良いアクションアイテムは SMART(具体的・測定可能・割り当て済み・現実的・期限つき)です。そして起票して期限を切り、追跡するまででワンセット。やりっぱなしのポストモーテムは、ただの作文です。

文化を育てる仕掛けも公式は挙げています:Postmortem of the month(良い事例を全社共有)、Wheel of Misfortune(過去障害のロールプレイ訓練)、優れたポストモーテムへの可視な称賛。「障害を書いた人が報われる」状態が、隠蔽を防ぎます。


6. オンコール衛生:持続可能な当番制を設計する

どんなに良いRunbookとポストモーテムを用意しても、当番が疲弊すれば全部回りませんBeing On-Callは、オンコールを「」と「」の両面から健全に保てと説きます。

6-1. 量の上限:燃え尽きを構造的に防ぐ

公式の具体的な数字は明快です。

  • エンジニアリング時間を最低50%確保。残りのうち「no more than 25% can be spent on-call(オンコールは最大25%)」。これを満たすには単一サイト24/7で最低8名必要。
  • 1件のインシデント対応(根本原因分析・修復・ポストモーテム執筆・バグ修正)には約6時間かかる。ゆえに持続可能な上限は「2 per 12-hour on-call shift(12時間シフトあたり2件)」。

この数字が重要なのは、「当番が多すぎる」を感覚でなくデータで判断できるからです。1シフトで毎回3件以上鳴るなら、それは人の根性ではなくアラート設計か信頼性そのものの問題です。

6-2. エスカレーションポリシー:迷ったら上げる

一次(primary)と二次(secondary)を定義します。二次は「fall-through for the pages the primary on-call misses(一次が取りこぼしたページの受け皿)」。明確なエスカレーション経路と「well-defined incident-management procedures(明確に定義された障害対応手順)」がストレスを下げ、ストレスホルモンで「impair cognitive functions(認知機能が低下する)」状態での判断ミスを防ぎます。疲れた人間に複雑な即興を求めない——これが設計の要点です。

# escalation-policy.yaml — エスカレーションを「設定」で表現する例
service: payment-platform
severity_routing:
  SEV1:
    page: primary_oncall
    escalate_after: 5m   # 一次が応答しなければ
    then: [secondary_oncall, team_lead]
    notify: [eng_manager, status_page]
  SEV2:
    page: primary_oncall
    escalate_after: 15m
    then: [secondary_oncall]
  SEV3:
    notify: oncall_channel  # ページングはしない(営業時間内対応)
oncall:
  rotation: weekly
  handoff: "毎週月曜 10:00、未解決インシデントとRunbook更新を引き継ぐ"
  compensation: "time-off-in-lieu(公式準拠:当番を金銭/代休で補償)"

6-3. toil(労苦)削減:手作業の根絶こそコスト削減

toil=手作業で・繰り返しで・自動化可能な運用作業。toilは見えにくいコストです。毎回手で再起動・手でログ集計をしているなら、それは人件費という名の継続課金を払い続けている状態。Runbookの手順がコピペコマンドの羅列なら、それは自動化候補です。公式は、操作過負荷(operational overload)に陥ったチームが一時的に開発側へ「give back the pager(ページャを返す)」ことすら認めます。toil削減は福利厚生ではなくコスト最適化と信頼性向上の本丸です。

オンコールの過少も問題です。公式は「every engineer to be on-call at least once or twice a quarter(全エンジニアが四半期に1〜2回は当番に入る)」を推奨。当番経験が無いと、いざという時に動けません。


7. MTTD / MTTR とエラーバジェット:何を改善するかを数字で決める

「対応が良くなったか」を感覚で語ると改善は止まります。次の指標でどこに投資するかを決めます。

指標意味これが悪いと…効く対策
MTTD(平均検知時間)障害発生→検知まで監視の穴。手動発見が常態化可観測性の強化、アラート閾値の見直し
MTTR(平均復旧時間)検知→復旧まで緩和が遅い/属人化Runbook整備、自動緩和、ロールバック容易化

MTTDが大きいなら可観測性に、MTTRが大きいならRunbookと自動化に投資する——指標が投資先を名指ししてくれます。なお、これらは「平均」ゆえに外れ値に弱い点に注意。少数のSEV1に引きずられるので、重大度別に見るか中央値・パーセンタイルも併用します。

数字は自分のシステムで計測した実測値だけを使うべきです。借り物のMTTRやでっち上げの稼働率は、最初の障害で信頼ごと吹き飛びます。私が公開できるのは、設計の結果として確かに達成した事実——本番二重課金0件のような、検証可能なアウトカムだけです。

そして指標を対応の発火条件に繋ぐのがエラーバジェットです。SLOが99.9%なら、許容されるエラー=バジェットがある。バジェットを使い切ったら、新機能を止めて信頼性に投資する——「いつ対応モードに入るか」を政治でなくデータで決める仕組みです。これにより「障害対応 vs 機能開発」の綱引きが、感情論から数式に変わります。


8. よくある落とし穴

実際に現場で繰り返し見る失敗を、対策とセットで挙げます。

  • ❌ 役割を決めずに全員でログを見る → 同時に複数人がデプロイ・再起動して傷口を広げる。✅ ICを立て、システム変更はOpsに一本化する(§1)。
  • ❌ 原因究明から始める → 止血が遅れ被害が拡大。✅ まず緩和(mitigate first)。原因はポストモーテムで。
  • ❌ アラートにRunbookが無い → 鳴った瞬間に当番が固まる。✅ 全ページングアラートにRunbookリンクと初動を埋め込む(§4)。
  • ❌ アラートを鳴らしすぎる → アラート疲れで重大アラートを見逃す。✅ 「鳴ったら必ず人が動く」だけをページングに(1:1 alert/incident)。
  • ❌ ポストモーテムで犯人探し → 次の障害が隠蔽される。✅ blameless徹底。主語はシステム・プロセス(§5)。
  • ❌ アクションアイテムを起票しない → 同じ障害が再発。✅ SMARTに書き、期限・担当・チケットで追跡
  • ❌ 障害チャンネルに秘密情報を貼る → 復旧を焦るあまり、APIキー・トークン・顧客PIIをSlackやLive Docに貼ってしまう。✅ 障害広報にも衛生を。認証情報は貼らず参照名で示し、PIIは最小化。チャンネルやドキュメントは後で広く共有される前提で書く。
  • ❌ Runbookが古い → 嘘の手順で被害拡大。✅ オーナー・最終更新日を必須化し、ポストモーテムのたびに更新
  • ❌ 当番が毎シフト鳴りっぱなし → 燃え尽き&離職。✅ 「2件/12時間」を超えたら信頼性かアラート設計の問題と捉える(§6)。

横断的に効くのは4つの非機能要件です。可観測性(見えないものには対応できない)、信頼性(冪等性・ロールバック容易性が緩和策を安全にする)、コスト(toilは継続課金。自動化で消す)、セキュリティ(障害広報の衛生:秘密を貼らない)。インシデント対応は、この4つが交差する場所です。


まとめ:運用は「設計」できる

本番障害に強いチームは、根性ではなく事前設計で強い。要点を最後に5行で。

  1. Incident Commanderモデルで役割を分離する。ICは判断、Opsだけがシステムを触る、Commsが伝える。Live Doc と指揮所を「唯一の真実」に。迷ったら早く宣言する。
  2. SEV1〜4で重大度を即断できる物差しを持つ。応答目標はSLOから逆算
  3. Runbookは検知→トリアージ→緩和→検証→広報の定型。止血が原因究明より先。手順は冪等性・ロールバックという設計に支えられて初めて安全。
  4. 非難なきポストモーテムで障害を学習資産に。基準は事前定義、アクションアイテムはSMARTで追跡。主語はシステム。
  5. オンコール衛生(2件/12時間、50/25%ルール、toil削減)とMTTD/MTTR・エラーバジェットで、改善先をデータで決める。

「一人 × 生成AI(Claude Code)で、速く・安く・安全に」——私はアプリケーションからインフラ、そして運用設計まで一気通貫で引き受けます。本記事の知見の出どころは、決済の信頼性レイヤーを主導し本番二重課金0件を実現したサーバーレス決済プラットフォームです。インシデント対応・Runbook整備・オンコール設計を含む運用込みの開発のご相談は、お問い合わせからどうぞ。

友田

友田 陽大

وزیر (METI) ایوارڈ یافتہ پروڈکٹ کے ڈویلپر۔ TypeScript + Python + AWS کے ساتھ میں SaaS، صنعتی ڈیجیٹل تبدیلی اور پروڈکشن کے قابل جنریٹو اے آئی (RAG) تنہا ابتدا سے انتہا تک فراہم کرتا ہوں — تقاضوں کی تعیین سے انفراسٹرکچر اور آپریشن تک۔

Got a challenge?

From design to implementation and operations — solo × generative AI

Implementation like this article's, end to end from requirements to production. Start with a free 30-minute technical consult and tell me about your situation.

پروجیکٹ کی بنیاد پر کام اور تکنیکی مشاورت دونوں کے لیے دستیاب ہوں۔ 30 منٹ کی مفت مشاورت سے آغاز کریں۔

最短ルート:カレンダーから直接予約

相談内容が固まっている方は、フォーム送信よりその場で日程を確定する方がスムーズです。下記から空き時間をお選びください。

  • 30分のオンライン無料相談
  • Google Meet / Zoom / Microsoft Teams
  • NDA 商談前締結可・無理な営業はいたしません
無料相談の空き枠を予約する

یہ بھی پڑھنے کے قابل