セクション 6:ソリューションと運用上の卓越性
本番運用フェーズで問われる SRE / Observability / SLO / リリース戦略 / 信頼性検証 を扱う領域。Cloud Monitoring / Logging / Trace / Profiler の連携と、SLO エラーバジェット・Multi-burn-rate アラート・Chaos Engineering が学習の中心です。
- Observability は Monitoring / Logging / Trace / Profiler + Error Reporting / Uptime Checks / Managed Prometheus の総合体
- SRE 用語は厳密に: SLI(実測)/ SLO(内部目標)/ SLA(契約、罰則)。SLA < SLO の関係
- アラートは 症状ベース + SLO Burn Rate Multi-window(Fast 5min/14.4x、Medium 1h/6x、Slow 6h/1x)が SRE 標準
- リリースは Blue-Green(即時切戻し)/ Canary(段階)/ Feature Flag(コード変更なし切替)/ Cloud Deploy Approval(承認) を要件で選定
- 信頼性検証は Load Test / Chaos Engineering / Pentest / Game Day。GCP の Pentest は 事前申請不要
- Postmortem は Blameless が SRE 鉄則。Five Whys でシステム改善に集中
- 障害時の AI 支援は Gemini Cloud Assist Investigations(リソース横断分析、原因仮説生成)
🎯 学習目標チェックリスト
※ チェック状態はこのブラウザに保存されます。
6.1 Operational Excellence の 5 原則
Well-Architected Framework の 柱 1: Operational Excellence。試験では「運用品質を上げる原則・指標」が問われます。
自動化(Automation)
手作業をなくし、Infrastructure as Code、CI/CD、自動修復を徹底。
観測可能性(Observability)
メトリクス・ログ・トレースで「いま何が起きているか」を可視化。
継続的改善
Postmortem、レビュー、定期改善のループ。Toil 削減も含む。
チームの責任
サービスを誰が運用するか明確化、DevOps / SRE モデル、On-call ローテーション。
計画されたリリース
段階的・可逆的なデプロイ、変更管理、Approval ゲート。
4 メトリクス
Deploy Frequency / Lead Time / CFR / MTTR で DevOps 成熟度を測定。
原則の運用への落とし込み
| 原則 | GCP での実装 |
|---|---|
| 自動化 | Terraform / Config Connector / Cloud Build / Cloud Deploy / Cloud Functions による自動修復 |
| 観測可能性 | Cloud Monitoring / Logging / Trace / Profiler / Error Reporting / Managed Prometheus |
| 継続的改善 | Postmortem / DORA メトリクス / SLO レビュー / Toil 削減 |
| チームの責任 | DevOps / SRE / Service Owner モデル、On-call ローテーション |
| 計画されたリリース | Cloud Deploy / Feature Flag / Canary / Blue-Green / Approval |
なぜ Operational Excellence が重要か
- 障害時の MTTR(平均修復時間)を短縮
- 変更の 失敗率 を下げる
- デプロイ頻度 を上げてビジネス価値を素早く届ける
- 過剰なオンコール負担を防ぐ(人間性の維持)
6.2 Observability — メトリクス・ログ・トレース・SLO
📘 ① Cloud Observability の 4 大柱
Cloud Observability(旧 Stackdriver)は 統合監視プラットフォーム。マルチプロジェクト・マルチクラウド対応。
| サービス | 役割 |
|---|---|
| Cloud Monitoring | メトリクス / Dashboards / Alert / Uptime / SLO |
| Cloud Logging | ログ集約、Sink、Log-based Metrics、Log Analytics |
| Cloud Trace | 分散トレース(OpenTelemetry 標準対応) |
| Cloud Profiler | 本番常時プロファイリング(CPU/メモリ/Heap) |
| Error Reporting | 例外集約、スタックトレース、影響範囲 |
| Uptime Checks | 外形監視(HTTP/HTTPS/TCP) |
| Managed Service for Prometheus | PromQL 互換、自動スケール、24 ヶ月保持 |
Cloud Monitoring の機能
| 機能 | 内容 |
|---|---|
| Dashboards | カスタムビュー作成 |
| Metrics Explorer | 即席でメトリクス可視化 |
| Alerting Policies | しきい値超過で通知 |
| Uptime Checks | 外形監視 |
| SLO | 信頼性目標の追跡 |
| Notification Channels | Email / Slack / PagerDuty / Webhook |
Cloud Logging の構造
ログの種類:
- Audit Logs(管理者活動・データアクセス)
- Platform Logs(GCE、GKE、Cloud Run など)
- User Logs(アプリ独自)
- Network Logs(VPC Flow Logs、Firewall Rules Logs)
| 概念 | 内容 |
|---|---|
| Log Buckets | ログの保管先(リージョン指定可、保持期間設定) |
| Log Sinks | ログを別宛先(BigQuery / Pub/Sub / GCS / 別 Project)に転送 |
| Log-based Metrics | ログを起点にメトリクス化(例: ERROR の数) |
| Log Router | Sink を中央管理 |
Cloud Trace の分散トレース
Cloud Profiler — 本番常時プロファイリング
CPU 時間・メモリ・ヒープなどの 継続的プロファイリング。本番環境で常時動かせる軽量プロファイラ。対応言語: Go、Java、Python、Node.js
📘 ② SLI / SLO / SLA / エラーバジェット
| 用語 | 内容 | 例 |
|---|---|---|
| SLI(Service Level Indicator) | 信頼性の 測定値 | 過去 28 日の HTTP 200 比率 = 99.95% |
| SLO(Service Level Objective) | 内部の 目標値 | 月次 99.9% を維持 |
| SLA(Service Level Agreement) | 顧客との 契約値(罰則あり) | 99.9% を下回ったら返金 |
| エラーバジェット | 1 − SLO の残量 | 99.9% SLO なら 0.1% = 月 43.2 分 |
SLI の代表的なタイプ
| タイプ | 例 |
|---|---|
| Availability | HTTP 200/全体、稼働率 |
| Latency | p99 が 200ms 以下の割合 |
| Error Rate | 5xx エラー率 |
| Throughput | RPS、QPS |
| Saturation | キュー長、CPU 使用率 |
| Quality | データ鮮度、計算精度 |
| Correctness | データの正しさ |
SLA < SLO < SLI の関係
エラーバジェットの数値感(暗記)
| SLO | 月あたりエラーバジェット |
|---|---|
| 99% | 7 時間 18 分 |
| 99.5% | 3 時間 39 分 |
| 99.9% | 43 分 12 秒 |
| 99.95% | 21 分 36 秒 |
| 99.99% | 4 分 19 秒 |
| 99.999% | 25.9 秒 |
📘 ③ アラート戦略・Burn Rate
アラートの 2 つの軸
| 軸 | 内容 |
|---|---|
| 症状 vs 原因 | 症状ベース(ユーザー影響)を優先 |
| 重大度 | Critical / Warning / Info |
良いアラートの条件
アクション可能
アラートが鳴ったら やることがある
ユーザー影響を反映
内部の小さい異常ではなく、外部影響に基づく
再現可能
何度発生しても同じ手順で対処できる
ノイズが少ない
誤検知が少ない、抑制機能を活用
Burn Rate と Multi-window / Multi-burn-rate
Burn Rate は エラーバジェットの消費速度。SLO 期間で予算を使い切るペースの倍率。
SLO: 99.9%(月予算 0.1% = 43.2 分)
Burn Rate 1x: 月末ちょうど予算消化(正常)
Burn Rate 14.4x: 1 時間で月予算の 2% 消費(緊急)
Google SRE Workbook の推奨アラート
| アラート | 期間 / Burn Rate | 重要度 |
|---|---|---|
| Fast Burn | 5 分 / 14.4x | Critical(即対応) |
| Medium Burn | 1 時間 / 6x | Warning(数時間以内対応) |
| Slow Burn | 6 時間 / 1x | Notice(後日対応) |
新式: SLO Burn Rate ベース → ユーザー影響に基づく
Notification Channels の使い分け
| 種類 | 用途 |
|---|---|
| 低優先、日次サマリー | |
| Slack / Teams | 共有、Warning |
| PagerDuty / Opsgenie | オンコール、Critical、夜間 |
| Webhook | カスタム連携、ChatOps |
| SMS / Voice | 緊急時 |
| Mobile App(Cloud Console) | 個人 |
📘 ④ Cloud Logging 深堀り
Log Sinks — 重要
ログの 転送先 を定義する仕組み。組織レベル / フォルダ / プロジェクトで設定可能。
| Sink 先 | 用途 |
|---|---|
| BigQuery | 長期保存、SQL 分析、ダッシュボード |
| Cloud Storage | アーカイブ、コンプラ要件 |
| Pub/Sub | 外部 SIEM 連携、リアルタイム処理 |
| 別 Project の Log Bucket | 中央集約 |
| Splunk / Chronicle / Datadog | 既存 SIEM 連携 |
Aggregated Sink — 組織全体のログ集約
Log Buckets と保持
| Bucket | デフォルト保持 | 用途 |
|---|---|---|
_Default | 30 日 | 一般ログ |
_Required | 400 日 | Admin Audit Logs(変更不可) |
| Custom | 1〜3650 日 | カスタム保持 |
Log Analytics — SQL でログ分析
SELECT
resource.labels.cluster_name,
COUNT(*) AS error_count
FROM `project.location.LOG_BUCKET._AllLogs`
WHERE severity = 'ERROR'
GROUP BY 1
ORDER BY 2 DESC
Audit Logs の 4 種
| 種類 | 内容 | デフォルト |
|---|---|---|
| Admin Activity | 設定変更 | 有効、無料、400 日保持 |
| Data Access | データ読取・書込 | デフォルト無効、有料 |
| System Event | GCP 自動操作 | 有効、無料 |
| Policy Denied | 拒否されたアクセス | 有効、無料 |
🔧 Metrics の種類
| 種類 | 例 |
|---|---|
| System Metrics(自動) | CPU、メモリ、ディスク、ネットワーク |
| User-Defined Metrics | カスタムメトリクス、monitoring.googleapis.com/user/* |
| Log-Based Metrics | ログから抽出(カウント / 分布) |
| Synthetic Metrics | Uptime Checks の応答時間など |
🔧 カスタムメトリクスの実装例
from google.cloud import monitoring_v3
from google.cloud.monitoring_v3 import MetricServiceClient
client = MetricServiceClient()
project_name = f"projects/{PROJECT_ID}"
series = monitoring_v3.TimeSeries()
series.metric.type = "custom.googleapis.com/orders_completed"
series.metric.labels["region"] = "asia-northeast1"
series.resource.type = "global"
point = series.points.add()
point.value.int64_value = 42
client.create_time_series(name=project_name, time_series=[series])
🔧 Metrics Scope(旧 Workspace)
🔧 SLO 設計の 6 ステップ
- ユーザーの体験を特定(重要なユーザージャーニー)
- SLI を選ぶ(Availability / Latency / Error Rate / Throughput / Quality)
- 測定方法を決める(クライアント側?サーバー側?LB 経由?)
- 目標値を決める(過去実績の上 + ビジネス要件)
- エラーバジェット運用ルールを決める
- 定期レビュー(四半期)
🔧 Multi-window / Multi-burn-rate 設計
短時間ウィンドウ(5 分)と長時間ウィンドウ(1 時間)の AND で発火させ、短期スパイクで誤検知 を防ぐ。
Critical Alert =
(Burn Rate > 14.4 over 5 min) AND (Burn Rate > 14.4 over 1 hour)
🔧 Forecast-based Alert(最新)
メトリクスの 予測 に基づくアラート。リソース枯渇を事前察知。
- 「ディスク使用率が 7 日以内に 90% に達する見込み」
- 「現在のペースだと月末にクォータ枯渇」
🔧 MQL / PromQL
| 言語 | 用途 |
|---|---|
| MQL(Monitoring Query Language) | GCP 独自、複雑なクエリ |
| PromQL | Managed Service for Prometheus、業界標準 |
| Cloud Monitoring API(プレフィルタ) | UI ベース |
🔧 OpenTelemetry の構成
🔧 サンプリング戦略
| 方式 | 内容 |
|---|---|
| Always-on | 全リクエスト記録(小規模) |
| Probabilistic | 確率的サンプリング(例 1%) |
| Tail-based | エラー時のみ全保存 |
| Adaptive | 負荷に応じた可変 |
🔧 Trace と Profiler の使い分け
| 観点 | Trace | Profiler |
|---|---|---|
| 目的 | リクエスト経路のレイテンシ可視化 | CPU / メモリの利用統計 |
| 粒度 | サービス間呼出 | 関数 / 行 |
| 対象 | 分散システム | 単一プロセス |
⚡ Cloud Observability 4 大柱 + α(即答)
| サービス | 役割 |
|---|---|
| Cloud Monitoring | メトリクス / Dashboards / Alert / Uptime / SLO |
| Cloud Logging | ログ集約、Sink、Log-based Metrics、Log Analytics |
| Cloud Trace | 分散トレース(OpenTelemetry 標準対応) |
| Cloud Profiler | 本番常時プロファイリング(CPU/メモリ/Heap) |
| Error Reporting | 例外集約、スタックトレース、影響範囲 |
| Uptime Checks | 外形監視(HTTP/HTTPS/TCP) |
| Managed Service for Prometheus | PromQL 互換、自動スケール、24 ヶ月保持 |
⚡ SRE 用語(即答)
| 用語 | 内容 |
|---|---|
| SLI | 信頼性の 測定値(実測) |
| SLO | 内部の 目標値 |
| SLA | 顧客との 契約値(罰則あり) |
| エラーバジェット | 1 − SLO(許容できるダウン) |
| Toil | 自動化可能な手作業(50% 以下を目標) |
| Burn Rate | エラーバジェットの消費速度 |
⚡ アラート戦略(即答)
| 観点 | 即答 |
|---|---|
| 良いアラート | 症状ベース、アクション可能、SLO Burn Rate |
| Multi-window/Multi-burn-rate | Fast (5min/14.4x), Medium (1h/6x), Slow (6h/1x) |
| 静的しきい値 | アラート疲れの元、可能なら避ける |
| Forecast Alert | 予測ベース(クォータ枯渇予知など) |
⚡ ログ重要事項
- Aggregated Sink = 組織レベルで集約(コンプラ用)
- _Default 30 日 / _Required 400 日(Audit 用)
- Data Access ログはデフォルト無効、コンプラなら明示有効化
- Log Analytics = BigQuery で SQL 分析
⚡ 暗記必須の数値
- SLO 99.9% → 月 43 分 12 秒 のエラー予算
- SLO 99.99% → 月 4 分 19 秒 のエラー予算
- Managed Prometheus 保持: 24 ヶ月
- Toil 目標: 50% 以下
6.3 デプロイ・リリース管理
📘 リリース戦略比較
4 つの主要戦略 + Feature Flag / Progressive Delivery を要件で選定。試験頻出は「即時切戻し → Blue-Green」「段階リリース → Canary」。
| 戦略 | 内容 | 切戻し速度 | 用途 |
|---|---|---|---|
| Rolling Update | 順次置換 | 遅い(順次戻す) | 一般 Web アプリ |
| Blue-Green | 旧(Blue)と新(Green)を並走、LB 切替 | 即時 | 厳密な切戻しが必要 |
| Canary | 一部トラフィックを新版に | 速い(ロールバック容易) | 段階リリース、影響早期検知 |
| Recreate | 全停止 → 新版起動 | 遅い(再起動) | ステートフル少数 |
| Feature Flag | 機能を動的に on/off | 即時(コード変更なし) | 機能切替を分離 |
| Progressive Delivery | Canary + Flag + Observability | 自動ロールバック | 高度な本番運用 |
リリース管理の典型フロー
📘 Feature Flag と Progressive Delivery
コードは本番にあるが、ユーザーへの公開を 動的に on/off する。
| ツール | 概要 |
|---|---|
| Firebase Remote Config | モバイル/Web 用 |
| 外部 App Config | LaunchDarkly、Split、Unleash |
Progressive Delivery のフロー
Cloud Deploy の Canary 設計(詳細)
strategy:
canary:
runtimeConfig:
cloudRun:
automaticTrafficControl: true
canaryDeployment:
percentages: [5, 25, 50]
verify: true # 各段階で verify ステップ実行
GitOps による Continuous Delivery
| 観点 | 内容 |
|---|---|
| Source of Truth | Git(マニフェストが本番状態) |
| Diff Detection | Argo CD / Flux が差分検出 |
| 自動修復 | Drift があれば自動で Git 状態に戻す |
| GCP 実装 | Config Sync(Anthos Config Management) |
6.4 本番デプロイ済みソリューションのサポート
📘 インシデント対応の標準フロー
Incident Command System (ICS)
大規模障害時の 役割分担モデル。
| 役割 | 責任 |
|---|---|
| Incident Commander(IC) | 全体統率、決断 |
| Communication Lead | ステークホルダー連絡、Status Page |
| Operations Lead | 実際の修復作業 |
| Scribe | タイムライン記録 |
| Subject Matter Expert (SME) | 技術専門家 |
Status Page
- 公開: Statuspage、Atlassian、PagerDuty
- 内部: Confluence、Notion、Google Site
📘 Postmortem テンプレート(Blameless)
SRE 文化の中心。個人を責めず、システム・プロセスの改善 に焦点を当てる。
📋 Postmortem テンプレート(Blameless)
# Postmortem: [障害タイトル]
## 概要
- 発生日時: YYYY-MM-DD HH:MM (JST)
- 復旧日時: YYYY-MM-DD HH:MM (JST)
- 影響期間: XX 分
- 重大度: SEV1 / SEV2 / SEV3
## 影響
- 影響を受けたユーザー数: ...
- 影響を受けた機能: ...
- ビジネス影響: 売上減 / SLA 違反 / 顧客報告件数
- SLO 消費: エラーバジェット XX%
## タイムライン(時系列)
- HH:MM 事象発生(実測)
- HH:MM アラート発火
- HH:MM on-call エンジニアが認識
- HH:MM 暫定対応開始(Rollback 実行)
- HH:MM 影響解消を確認
- HH:MM Status Page 更新(解消)
- HH:MM 事後分析開始
## 検知方法
- 何で気づいたか(アラート種別 / 顧客報告 / 監視ダッシュボード)
## 根本原因(Root Cause)
- Five Whys で 5 段階まで掘り下げた結果
- 直接原因: ...
- システム的要因: ...
- プロセス的要因: ...
## 緩和策(実施したこと)
- 暫定対応 1: ...
- 暫定対応 2: ...
## 教訓(What Went Well / What Went Wrong)
- うまくいったこと
- アラートが早期に発火した
- ICS の役割分担が機能した
- うまくいかなかったこと
- Runbook が古かった
- 影響範囲の特定に時間がかかった
## アクション項目(再発防止策)
| 内容 | 担当 | 期限 | 優先度 |
|------|------|------|--------|
| Runbook 更新 | @owner | YYYY-MM-DD | P1 |
| 自動ロールバック実装 | @owner | YYYY-MM-DD | P0 |
| Canary 比率見直し | @owner | YYYY-MM-DD | P2 |
## 補足(参考リンク)
- 関連 PR: ...
- 関連 Issue: ...
- ログ: ...
- メトリクス: ...
---
※ Blameless(個人を責めない)。システム・プロセスの改善に集中する。
Five Whys の実例
障害: 注文 API が 30 分応答停止
Why 1: DB 接続枯渇
Why 2: 接続プール上限の 100 を超過
Why 3: 旧バージョンが接続を返さないバグ
Why 4: 単体テストはあったが、長時間負荷テストがなかった
Why 5: パイプラインに長時間負荷テストが組込まれていなかった
→ 再発防止策: CD パイプラインに 30 分の長時間負荷テストを追加
Runbook(ランブック)
特定のアラート・障害に対応する 手順書。明確に書かれていれば誰でも対応可能。
📋 Runbook 例: Cloud SQL High CPU(クリックで展開)
[Runbook: Cloud SQL High CPU]
1. CPU メトリクス確認(Cloud Monitoring)
2. 直近 1 時間のスロークエリを `pg_stat_statements` で抽出
3. 該当クエリを開発チームに通知(Slack #db)
4. CPU > 90% が継続するなら一時的にインスタンス昇格
5. アクション完了後 SLO 回復確認
サポートのレベル
| レベル | 内容 | コスト |
|---|---|---|
| Basic | コンソール・ドキュメント | 無料 |
| Standard | 商用、技術サポート | 中 |
| Enhanced | 24/7、Production Support | 中高 |
| Premium | TAM(Technical Account Manager)、優先対応 | 高 |
- 「誰が」ではなく「何が」を問う
- 個人の責任追及禁止
- システム・プロセスの改善に集中
- 共有して組織全体で学ぶ
6.5 品質管理の評価
📘 コードレビューと Change Management
| 観点 | 内容 |
|---|---|
| 正しさ | バグなし、要件満たす |
| 可読性 | 他人が読める |
| テスト | 単体・統合テストがある |
| セキュリティ | 入力検証、認証、認可 |
| 性能 | 明らかなボトルネックなし |
| コンプラ | 規制要件遵守 |
ITIL Change Management
| 種類 | 内容 | 承認 |
|---|---|---|
| Standard Change | リスクが低く、手順が標準化 | 事前承認済み、不要 |
| Normal Change | 標準外 | CAB(変更諮問委員会)の承認が必要 |
| Emergency Change | 障害復旧 | 事後承認、簡略化 |
📘 Continuous Compliance — Policy as Code
代表的な Organization Policy
| ポリシー | 内容 |
|---|---|
iam.allowedPolicyMemberDomains | 許可ドメイン制限 |
compute.requireOsLogin | OS Login 必須 |
compute.disableSerialPortAccess | シリアルポート無効 |
storage.uniformBucketLevelAccess | UBLA 必須 |
gcp.resourceLocations | リージョン制限 |
compute.vmExternalIpAccess | 外部 IP 禁止 |
Assured Workloads(規制業界)
- 規制業界(HIPAA、FedRAMP、IL4、CJIS)向けの コンプラ環境
- リージョン制限、US Person 限定オペレーション等を強制
- 設定が固定され、誤設定リスクを下げる
Continuous Compliance Scanning
| ツール | 対象 |
|---|---|
| Security Command Center | GCP リソース全般 |
| Policy Controller | K8s |
| Forseti(OSS) | レガシー |
| Cloud Asset Inventory | リソース棚卸し |
6.6 本番信頼性検証 — Chaos / Pentest / Game Day
📘 Chaos Engineering
意図的に障害を注入 し、システムの回復力を検証する手法。Netflix の Chaos Monkey が起源。
Chaos Engineering 4 原則
段階的な導入
| Phase | 内容 |
|---|---|
| Phase 1 | 開発環境で手動 Chaos(Pod 削除) |
| Phase 2 | Staging で定期 Chaos |
| Phase 3 | 本番で限定的 Chaos(夜間、限定リージョン) |
| Phase 4 | 本番で常時 Chaos(成熟段階) |
代表的なツール
| ツール | 用途 |
|---|---|
| Chaos Monkey | Netflix 発、ランダムに VM を停止、Spinnaker 統合 |
| Chaos Toolkit | OSS、汎用 |
| Litmus / Chaos Mesh | K8s ネイティブのカオスツール |
| Gremlin | 商用のカオスプラットフォーム |
GKE Chaos の代表手法
Pod 削除
kubectl delete pod ランダム実行
ノード停止
Cluster Autoscaler 動作確認
ネットワーク遅延
tc / Istio Fault Injection
リソース消費
stress-ng でメモリ・CPU 消費
ゾーン障害
Regional クラスタの 1 ゾーン落とし
依存エラー
下流サービスの 500 を注入
Game Day の計画
📘 Penetration Testing と Load Testing
Penetration Testing(Pentest)
外部・内部から 攻撃を再現 してセキュリティを検証。
| 種類 | 内容 |
|---|---|
| ブラックボックス | 内部情報なしで攻撃 |
| ホワイトボックス | 内部情報を持って攻撃 |
| グレーボックス | 一部情報あり |
- DDoS 攻撃
- 他テナント影響
- SLA 影響
Pentest の流れ
Load Testing(負荷テスト)
| 目的 | 内容 |
|---|---|
| キャパシティ計画 | 想定負荷で性能を測定 |
| スケール検証 | Auto-scaling が動くか |
| ボトルネック特定 | どこが先に詰まるか |
| SLO 検証 | SLO を満たせる範囲を把握 |
ロードテストの種類
| 種類 | 目的 |
|---|---|
| Spike Test | 急増負荷耐性(直前ピーク) |
| Soak Test | 長時間負荷でのリーク検出 |
| Stress Test | 限界を超えた挙動 |
| Endurance Test | 24h+ の継続負荷 |
| Volume Test | 大量データでの処理 |
GCP 上の負荷テスト構成例
📘 Gemini Cloud Assist for Observability
GCP コンソール内の AI 支援で、運用を強化。
| 機能 | 内容 |
|---|---|
| Investigations(最新) | 障害時の関連リソース・ログ・メトリクスを横断分析、原因仮説生成 |
| Log Analytics + Gemini | 自然言語でログを検索(「直近 1 時間の 500 エラーは?」) |
| Alert Summarization | 大量アラートの要約 |
| Runbook 生成 | 過去対応からランブック自動生成 |
📋 Gemini Cloud Assist Investigations の対話例(クリックで展開)
ユーザー: 「Cloud Run service-a が直近 1 時間で 5xx 増加。原因は?」
↓
Gemini Cloud Assist:
- service-a の SLO Burn Rate: 8x(過剰)
- 関連ログ: Cloud SQL 接続タイムアウト多発
- 関連メトリクス: Cloud SQL CPU 95%
- 原因仮説: Cloud SQL のクエリ過負荷
- 対処提案: クエリ最適化 / インスタンス昇格
- 関連 Runbook: ...
ユーザー: 「直近 1 時間の error log を要約して」
↓
Gemini:
- 大半は OOMKilled
- 集中時間帯: 14:30-14:45
- 影響 Pod: 12 個
- 修復提案: メモリ Limit を 1Gi → 2Gi
信頼性の重要な考え方
信頼性 vs コスト
99% → 99.9%: 10x コスト
99.9% → 99.99%: 10x コスト
99.99% → 99.999%: 10x コスト
ユーザーが感じる信頼性 を見極め、過剰投資を避ける。
多層防御(Defense in Depth)
Graceful Degradation(縮退運転)
完全に失敗するのではなく 機能を縮退 する設計。
- レコメンドが落ちたら一般人気商品を表示
- DB レプリカが落ちたらキャッシュから読む
- 一部マイクロサービスが落ちても主機能は継続
Failure Domain
「何が同時に壊れるか」を意識した冗長化設計。
📌 章末まとめ — 運用卓越性の翻訳パターン
| 要件 | デフォルト解 |
|---|---|
| 統合監視 | Cloud Observability(Monitoring/Logging/Trace/Profiler/Error Reporting) |
| OSS Prometheus 互換 | Managed Service for Prometheus |
| 分散トレース標準 | OpenTelemetry + Cloud Trace |
| 本番プロファイル | Cloud Profiler |
| 外形監視 | Uptime Checks |
| 信頼性目標 | SLI / SLO / エラーバジェット |
| ノイズ少ないアラート | Multi-window / Multi-burn-rate |
| 予測アラート | Forecast-based Alert |
| ログ集約・組織横断 | Aggregated Sink → BigQuery |
| ログを SQL 分析 | Log Analytics |
| 監査ログ(無効デフォルト) | Data Access Audit Logs |
| 即時切戻し | Blue-Green |
| 段階リリース | Canary |
| コード変更なし切替 | Feature Flag |
| コンプラ承認 | Cloud Deploy Approval |
| K8s GitOps | Config Sync / Argo CD |
| ポリシー強制(GCP) | Organization Policy |
| ポリシー強制(K8s) | Policy Controller (Gatekeeper) |
| 規制業界統制 | Assured Workloads |
| 障害訓練 | Game Day + Chaos Engineering |
| 性能検証 | Load Test(Locust/k6/JMeter) |
| セキュ検証 | Pentest(事前申請不要) |
| AI 障害分析 | Gemini Cloud Assist Investigations |
質問を読む ↓ 「運用・観測・信頼性」キーワード抽出 - メトリクス → Cloud Monitoring - ログ → Cloud Logging(Sink / Log Analytics) - 分散トレース → OpenTelemetry + Cloud Trace - 性能ボトルネック → Cloud Profiler - 例外集約 → Error Reporting - 外形 → Uptime Checks - SLO → Cloud Monitoring SLO + Burn Rate Alert - デプロイ → Blue-Green / Canary / Feature Flag - 承認 → Cloud Deploy Approval - GitOps → Config Sync / Argo CD - ポリシー → Org Policy / Policy Controller - 規制 → Assured Workloads - 検証 → Load Test / Chaos / Pentest / Game Day - AI 支援 → Gemini Cloud Assist Investigations ↓ 要件の制約(ノイズ、コンプラ、コスト)を確認 ↓ 最も「症状ベース・SLO 駆動・自動化」志向の選択肢を選ぶ
- Observability 4 大柱: Cloud Monitoring / Logging / Trace / Profiler、+ Error Reporting、Uptime、Managed Prometheus
- SRE 用語: SLI(実測)/ SLO(内部目標)/ SLA(契約)/ エラーバジェット / Toil(50% 目標)/ Burn Rate
- アラート: 症状ベース、Multi-burn-rate (5min/14.4x, 1h/6x, 6h/1x)、Forecast 予測
- ログ: Sink(BigQuery/GCS/Pub/Sub)、Aggregated Sink(組織横断)、Log Analytics、Data Access は無効デフォルト
- トレース: OpenTelemetry が標準、Cloud Trace と統合
- デプロイ: Rolling / Blue-Green(即時切戻し)/ Canary(段階)/ Feature Flag / Approval
- GitOps: Config Sync / Argo CD / Flux
- ポリシー: Organization Policy(GCP)/ Policy Controller(K8s)/ Assured Workloads(規制)
- 信頼性検証: Load Test / Chaos Engineering(4 原則)/ Game Day / Pentest(GCP 事前申請不要)
- AI 支援: Gemini Cloud Assist Investigations / Log + Gemini / Alert 要約
- DORA: Deploy Frequency / Lead Time / CFR / MTTR
- Postmortem: Blameless、Five Whys、Runbook 化