Contents
Runbook の基本概念と SRE における位置付け
Runbook とは
障害発生時に実行すべき手順・コマンド・連絡先を体系化したドキュメントです。SRE(Site Reliability Engineering)では、サービスの 信頼性目標(SLO/SLA) と直結させた「復旧可能な作業指示書」として位置付けられます(Google SRE Book, 2022)。
なぜ必要か
- 手順が属人化すると復旧時間(MTTR)が長くなる。
- 標準化された Runbook があれば、経験の浅いメンバーでもベテランと同等の対応が可能になる。
- SLO/SLA の違反リスクを低減し、監査証跡を自動的に残せる。
手順書作成フロー:要件定義 → 設計 → 実装 → テスト・運用
| フェーズ | 主な活動 | 成果物 |
|---|---|---|
| 1. 要件定義 | ・SLO/SLA に紐づくトリガー条件を明確化 ・想定障害シナリオ(CPU 高負荷、DB 接続エラー等)を洗い出し |
障害シナリオ一覧、トリガーマッピング |
| 2. 構造設計 | ・階層型テンプレートを作成(前提条件・手順ブロック・後処理) ・再利用可能な部品化を意識 |
Runbook テンプレート(Markdown / YAML) |
| 3. 実装 & バージョン管理 | ・Git リポジトリでコード化し、プルリクエストベースのレビュー体制を構築 ・CI で構文チェックとシミュレーションテストを実行 |
Git ブランチ/PR、CI パイプライン |
| 4. テスト・検証 | ・ステージング環境で手順通りに動作するか自動シミュレート ・レビュー担当者が実際の操作を確認し、承認 |
テスト結果レポート、承認記録 |
テンプレート例(Markdown)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Runbook: 高負荷対応 ## 前提条件 - 対象サービス: `api-prod` - 必要権限: `ops-admin` ## 手順ブロック 1 – 現状確認 1. CPU 使用率を取得 ```bash curl -s http://metrics.local/api/cpu | jq . ``` 2. 異常が検出されたら次へ ## 手順ブロック 2 – スケールアウト 1. 新しいインスタンスを追加 ```bash aws ecs update-service --cluster prod --service api-prod --desired-count +1 ``` ## 後処理 - アラートのサイレンス解除 - 実行ログを S3 に保存(`runbook-logs/`) |
AI 支援による Runbook 草稿作成と留意点
活用シーン
自然言語で記述されたインシデントレポートやアラートペイロードから、要点抽出 → 手順草稿生成 のフローを自動化できます。たとえば、OpenAI GPT‑4 系モデルに「CPU 使用率が 90% 超過した際の復旧手順」を指示すると、上記テンプレート構造に沿ったドラフトが数秒で出力されます。
現実的な効果
- 手動で情報をまとめる工数が 30 %〜50 % 程度削減(社内ベンチマーク)
- ドラフトの品質はレビュー担当者が 必ず 確認すれば、誤りや環境依存の抜け漏れを防止できる
必要なチェックポイント(人間レビュー)
| 項目 | 確認内容 |
|---|---|
| コマンド・バージョン | 実行対象システムと一致しているか |
| SLO/SLA への影響 | 手順実施で目標違反が発生しないか |
| 証跡取得 | ログや操作履歴が自動的に保存される設計か |
| 法令・コンプライアンス | データ保護や監査要件を満たすか |
AI が生成した Runbook は 支援ツール と位置付け、最終的な承認は担当エンジニアが行うことが前提です。
半自動化の適用範囲とリスク管理
| ケース | 自動化可否 | 追加対策 |
|---|---|---|
| インフラ構成変更(スケールアウト・ロールバック) | ○(CI/CD と連携) | 実行ログを統合的に保存、実装前にステージングでシミュレーション |
| 外部ベンダーへの依頼や法務判断が必要な手順 | ×(ヒューマン承認必須) | 承認フローを IAM のアクセス履歴と連携し、証跡として残す |
| セキュリティポリシー変更 | △(自動化は可能だが人間のレビューが不可欠) | 変更前に脅威モデル評価を実施し、結果をドキュメント化 |
証跡管理のベストプラクティス
- AI エージェントやスクリプトの出力はすべて 構造化ログ(JSON) に変換し、Elasticsearch や CloudWatch Logs に送信。
- 実行時のコマンド標準出力・エラーは S3 バケットにタイムスタンプ付きで保存し、アクセス権限を最小化。
- 承認ステップは IAM の「AssumeRole」ログと結びつけ、監査レポートとして自動集計。
Runbook 自動化プラットフォーム選定のポイント
- API と Webhook の柔軟性
- 外部ツール(GitHub, Terraform, CI/CD)との双方向連携が可能か。
- コードとして管理できる仕組み
- Runbook を Markdown/YAML で記述し、Git に保存・バージョン管理できること。
- 細粒度のアクセス制御 (RBAC)
- 誰が閲覧・編集・実行できるかをロールベースで定義し、SSO と統合できること。
上記要件は、多くのエンタープライズ向けインシデント管理ツールやオープンソースの Runbook エンジンが共通して提供しています。選定時は 「実装コスト」+「運用負荷」=トータル TCO を評価基準にすると、長期的な投資効果が見えやすくなります。
CI/CD への組み込み例(GitHub Actions)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
name: Runbook Validation on: pull_request: paths: - 'runbooks/**.md' jobs: lint-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 # Markdown の構文チェック - name: Lint Runbook run: | npm install -g markdownlint-cli markdownlint '**/*.md' --ignore node_modules # ステージング環境でシミュレーション実行 - name: Simulate Runbook env: ENDPOINT: ${{ secrets.STAGING_ENDPOINT }} run: | ./scripts/simulate.sh ${{ github.event.pull_request.head.ref }}.md |
- Lint でフォーマットの一貫性を保ち、
- Simulate により手順が実際に動くか自動検証し、合格したものだけがマージ可能になります。
まとめ
- Runbook は SRE の信頼性確保の基盤 ― SLO/SLA と結びついた標準化手順書として必須です。
- 作成フローは要件定義 → 階層テンプレート設計 → Git 管理 → CI で自動検証 のサイクルを回すことで、常に最新かつ実行可能な状態を保ちます。
- AI(例:Claude Code)による草稿生成は作業工数削減の助けになるが、必ず人間レビューで正確性・コンプライアンスを確認 してください。
- 完全自動化が難しい外部依存や意思決定系シナリオはヒューマン承認と証跡保存でリスクを管理 し、監査対応も併せて設計します。
- プラットフォーム選定は API・コード管理・RBAC の3要素を満たすかが鍵 であり、CI/CD パイプラインに組み込むことで変更の可視化と品質保証が徹底できます。
これらのベストプラクティスを取り入れれば、最新の AI 支援ツールと Google SRE の設計原則を融合した 再利用可能で高信頼性な Runbook を継続的に提供でき、サービス全体の安定運用へとつながります。