ストーリー
ミッション概要
| ミッション | テーマ | 目安時間 |
|---|---|---|
| Mission 1 | 可用性の計算と評価 | 15分 |
| Mission 2 | エラーバジェットの設計 | 15分 |
| Mission 3 | トイルの特定と削減計画 | 15分 |
| Mission 4 | SRE導入ロードマップの策定 | 15分 |
前提条件
サービス: ECプラットフォーム「ShopNow」
構成:
- Webフロントエンド(Next.js)
- APIサーバー(Node.js × 3台)
- PostgreSQL(Primary + Replica)
- Redis(キャッシュ)
- Elasticsearch(検索)
先月の障害データ:
障害1: API障害(30分ダウン)- デプロイ時のDB接続プール枯渇
障害2: 検索障害(45分ダウン)- Elasticsearchのメモリ不足
障害3: 決済障害(15分ダウン)- 外部決済APIのタイムアウト
障害4: Redis障害(10分ダウン)- メモリ上限到達
月間リクエスト数: 3,000,000
先月のエラーレスポンス(5xx): 4,500
チームサイズ: SREエンジニア 3名
Mission 1: 可用性の計算と評価(15分)
要件
上記の障害データをもとに、以下を計算してください。
- 先月の可用性(%)を時間ベースで計算
- リクエストベースの可用性を計算
- 各障害のMTTD/MTTRを推定し、改善ポイントを特定
- 現状の可用性レベル(Nines)を判定し、目標SLOを提案
解答例
1. 時間ベースの可用性:
総稼働時間 = 30日 × 24時間 × 60分 = 43,200分
総ダウンタイム = 30 + 45 + 15 + 10 = 100分
可用性 = (43,200 - 100) / 43,200 × 100 = 99.77%
→ Two Nines と Three Nines の間
2. リクエストベースの可用性:
成功リクエスト = 3,000,000 - 4,500 = 2,995,500
可用性 = 2,995,500 / 3,000,000 × 100 = 99.85%
→ Two Nines と Three Nines の間
3. MTTD/MTTR推定:
| 障害 | 推定MTTD | MTTR | 改善ポイント |
|---|---|---|---|
| API障害 | 5分 | 30分 | デプロイ後の自動ヘルスチェック |
| 検索障害 | 10分 | 45分 | メモリ使用量の予測アラート |
| 決済障害 | 3分 | 15分 | サーキットブレーカー導入 |
| Redis障害 | 2分 | 10分 | メモリ使用量の自動スケーリング |
4. 目標SLO提案:
現状: 99.77%(時間ベース)/ 99.85%(リクエストベース)
提案SLO: 99.9%(Three Nines)
理由: 現状から約0.13ポイントの改善で達成可能な、現実的かつ挑戦的な目標
月間許容ダウンタイム: 43.2分(現状100分を57%削減)
Mission 2: エラーバジェットの設計(15分)
要件
Mission 1で提案したSLOに基づき、以下を設計してください。
- エラーバジェットの計算(時間ベースとリクエストベース)
- エラーバジェットポリシー(Green/Yellow/Orange/Red)
- バーンレートアラートの閾値設定(3段階)
- エラーバジェットレポートのテンプレート
解答例
1. エラーバジェット計算:
SLO: 99.9%
エラーバジェット: 0.1%
時間ベース(30日):
43,200分 × 0.001 = 43.2分/月
リクエストベース(月間300万リクエスト):
3,000,000 × 0.001 = 3,000エラー/月
2. エラーバジェットポリシー:
| レベル | 消費率 | リリースポリシー | アクション |
|---|---|---|---|
| Green | < 50%(< 21.6分消費) | 通常リリース | 月次レビュー |
| Yellow | 50-80%(21.6-34.6分) | 高リスク変更延期 | 週次レビュー、テスト強化 |
| Orange | 80-100%(34.6-43.2分) | 信頼性改善のみ | 日次レビュー、SREレビュー必須 |
| Red | > 100%(> 43.2分) | 全変更凍結 | 経営エスカレーション、緊急対応 |
3. バーンレートアラート:
| アラート | バーンレート | ウィンドウ | アクション |
|---|---|---|---|
| Critical | > 14.4x | 1h / 5m | PagerDuty即時通知 |
| Warning | > 6.0x | 6h / 30m | Slackチャンネル通知 |
| Info | > 3.0x | 3d / 6h | チケット作成 |
4. レポートテンプレート:
## エラーバジェット月次レポート - 2026年1月
- SLO: 99.9%
- バジェット: 43.2分 / 3,000エラー
- 消費: 100分 / 4,500エラー
- ステータス: Red(SLO未達)
- 主要障害: API障害(30分), 検索障害(45分)
- 改善アクション: デプロイパイプライン改善、ES容量計画
Mission 3: トイルの特定と削減計画(15分)
要件
以下のSREチームの週間作業ログから、トイルを特定し削減計画を策定してください。
週間作業ログ(SREチーム 3名):
- 手動デプロイ作業: 各日2回 × 30分 = 5時間/週
- サーバーログの手動確認: 各日1回 × 20分 = 1.7時間/週
- SSL証明書更新: 月2回 × 45分 = 0.4時間/週
- アカウント作成/権限変更: 週5回 × 15分 = 1.25時間/週
- インシデント対応(手動復旧部分): 週2回 × 30分 = 1時間/週
- ディスク容量チェック: 各日1回 × 10分 = 0.8時間/週
- 週次レポート手動作成: 1回 × 2時間 = 2時間/週
- アーキテクチャ設計レビュー: 2時間/週
- 自動化ツール開発: 5時間/週
- SLOダッシュボード構築: 3時間/週
- ポストモーテム実施: 1時間/週
- トイルに該当する作業を全て特定
- 月間トイル比率を計算
- ROIが最も高い自動化対象トップ3を特定
- 3ヶ月の削減ロードマップを策定
解答例
1. トイルの特定:
| 作業 | トイル? | 理由 |
|---|---|---|
| 手動デプロイ | はい | 手動・繰り返し・自動化可能 |
| ログ手動確認 | はい | 手動・繰り返し・自動化可能 |
| SSL証明書更新 | はい | 手動・繰り返し・自動化可能 |
| アカウント作成 | はい | 手動・繰り返し・自動化可能 |
| 手動復旧 | はい | 手動・自動化可能 |
| ディスク容量チェック | はい | 手動・繰り返し・自動化可能 |
| レポート手動作成 | はい | 手動・繰り返し・自動化可能 |
| 設計レビュー | いいえ | 創造的・戦略的 |
| 自動化ツール開発 | いいえ | エンジニアリング |
| SLOダッシュボード | いいえ | エンジニアリング |
| ポストモーテム | いいえ | 永続的な価値がある |
2. トイル比率:
トイル時間: 5 + 1.7 + 0.4 + 1.25 + 1 + 0.8 + 2 = 12.15時間/週
総作業時間: 3名 × 40時間 = 120時間/週
トイル比率: 12.15 / 120 × 100 = 10.1%
3. 自動化ROIトップ3:
| 順位 | トイル | 月間時間 | 自動化工数 | 回収期間 |
|---|---|---|---|---|
| 1 | 手動デプロイ | 20時間 | 40時間 | 2ヶ月 |
| 2 | 週次レポート | 8時間 | 16時間 | 2ヶ月 |
| 3 | ログ手動確認 | 7時間 | 24時間 | 4ヶ月 |
4. 削減ロードマップ:
- 月1: CI/CDパイプライン構築(デプロイ自動化)→ 月20時間削減
- 月2: レポート自動生成 + cert-manager導入 → 月10時間削減
- 月3: ログ自動分析 + ディスク自動管理 → 月10時間削減
Mission 4: SRE導入ロードマップの策定(15分)
要件
「ShopNow」チームにSREプラクティスを段階的に導入するための6ヶ月ロードマップを策定してください。
以下を含めること:
- 各フェーズの目標と成果物
- 成功指標(KPI)
- 必要なリソースと投資
- リスクと軽減策
解答例
sre_adoption_roadmap:
phase_1:
name: "基盤構築"
duration: "Month 1-2"
goals:
- 主要サービスのSLI/SLO定義
- エラーバジェットの計測開始
- 基本的なダッシュボード構築
kpis:
- SLO定義済みサービス数: 5以上
- ダッシュボードカバレッジ: 100%
resources:
- SREエンジニア: 2名(50%アロケーション)
- ツール: Prometheus + Grafana導入
risks:
- SLO目標の設定が不適切 → 既存データから段階的に調整
phase_2:
name: "プロセス整備"
duration: "Month 3-4"
goals:
- オンコール体制の構築
- インシデント対応フローの確立
- ランブック10件以上作成
kpis:
- MTTD: 5分以内
- MTTR: 30分以内(SEV1)
- ランブックカバレッジ: 主要障害パターンの80%
resources:
- オンコール手当の予算化
- PagerDuty導入
risks:
- オンコール負荷による離職 → ローテーション設計と負荷分散
phase_3:
name: "自動化推進"
duration: "Month 5-6"
goals:
- トイル比率50%以下の達成
- CI/CDパイプライン完全自動化
- 自動復旧の仕組み構築
kpis:
- トイル比率: 50%以下
- デプロイ頻度: 1日1回以上
- 自動復旧率: 30%以上
resources:
- 自動化ツール開発: 2名(100%アロケーション)
risks:
- 自動化の複雑化 → シンプルな設計原則を遵守
達成度チェック
| ミッション | テーマ | 完了 |
|---|---|---|
| Mission 1 | 可用性の計算と評価 | |
| Mission 2 | エラーバジェットの設計 | |
| Mission 3 | トイルの特定と削減計画 | |
| Mission 4 | SRE導入ロードマップの策定 |
まとめ
| ポイント | 内容 |
|---|---|
| 可用性計算 | 時間ベースとリクエストベースの両方で評価する |
| エラーバジェット | SLOから導出し、ポリシーとアラートを設計する |
| トイル削減 | ROI計算で優先順位をつけ、段階的に自動化する |
| 導入ロードマップ | 基盤→プロセス→自動化の順で段階的に進める |
チェックリスト
- 障害データから可用性を計算できた
- エラーバジェットポリシーを設計できた
- トイルを特定し削減計画を策定できた
- SRE導入ロードマップを策定できた
次のステップへ
次は理解度チェッククイズです。Step 1で学んだSREの基本原則の理解度を確認しましょう。
推定読了時間: 60分