PCA 合格対策

セクション 6:ソリューションと運用上の卓越性

本番運用フェーズで問われる SRE / Observability / SLO / リリース戦略 / 信頼性検証 を扱う領域。Cloud Monitoring / Logging / Trace / Profiler の連携と、SLO エラーバジェット・Multi-burn-rate アラート・Chaos Engineering が学習の中心です。

📊 出題比重 ~12.5% 📡 Observability 4 大柱 🎯 SLI / SLO / エラーバジェット 🚀 Blue-Green / Canary / Feature Flag 🧪 Chaos / Game Day / Pentest 🤖 Gemini Cloud Assist Investigations
🔑 TL;DR(このセクションの核)
  • 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(リソース横断分析、原因仮説生成)

🎯 学習目標チェックリスト

このセクションの到達度0 / 0











※ チェック状態はこのブラウザに保存されます。

6.1 Operational Excellence の 5 原則

Well-Architected Framework の 柱 1: Operational Excellence。試験では「運用品質を上げる原則・指標」が問われます。

原則 1

自動化(Automation)

手作業をなくし、Infrastructure as Code、CI/CD、自動修復を徹底。

原則 2

観測可能性(Observability)

メトリクス・ログ・トレースで「いま何が起きているか」を可視化。

原則 3

継続的改善

Postmortem、レビュー、定期改善のループ。Toil 削減も含む。

原則 4

チームの責任

サービスを誰が運用するか明確化、DevOps / SRE モデル、On-call ローテーション。

原則 5

計画されたリリース

段階的・可逆的なデプロイ、変更管理、Approval ゲート。

DORA

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
🔑 Toil 削減の目標 Toil = 手作業・反復的・自動化可能な労働。SRE では Toil を 50% 以下 に抑えることを目標にする。残り 50% を自動化・改善活動に投資する。

なぜ Operational Excellence が重要か

6.2 Observability — メトリクス・ログ・トレース・SLO

📘 ① Cloud Observability の 4 大柱

Cloud Observability(旧 Stackdriver)は 統合監視プラットフォーム。マルチプロジェクト・マルチクラウド対応。

┌─────────────────────────────────────────┐ │ Cloud Observability │ ├─────────────────────────────────────────┤ │ │ │ ① Cloud Monitoring ─ メトリクス / Dashboard │ │ ├─ Alerting Policies │ │ ├─ Uptime Checks │ │ ├─ SLO Object │ │ └─ Notification Channels │ │ │ │ ② Cloud Logging ─ ログ集約 │ │ ├─ Log Buckets (_Default / _Required) │ │ ├─ Log Sinks → BigQuery / GCS / Pub/Sub │ │ ├─ Log-based Metrics │ │ └─ Log Analytics (SQL) │ │ │ │ ③ Cloud Trace ─ 分散トレース │ │ └─ OpenTelemetry 標準対応 │ │ │ │ ④ Cloud Profiler ─ CPU/メモリ統計 │ │ └─ Go/Java/Python/Node.js │ │ │ │ + Error Reporting ─ 例外集約 │ │ + Uptime Checks ─ HTTP/HTTPS/TCP 外形 │ │ + Managed Service for Prometheus │ │ │ └─────────────────────────────────────────┘ ↓ PagerDuty / Slack / Email / Webhook
サービス役割
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 PrometheusPromQL 互換、自動スケール、24 ヶ月保持

Cloud Monitoring の機能

機能内容
Dashboardsカスタムビュー作成
Metrics Explorer即席でメトリクス可視化
Alerting Policiesしきい値超過で通知
Uptime Checks外形監視
SLO信頼性目標の追跡
Notification ChannelsEmail / 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 RouterSink を中央管理

Cloud Trace の分散トレース

ユーザー → LB → サービス A → サービス B → DB ↓ ↓ ↓ Span A Span B Span DB ─────── Trace(連結) ───────
💡 Cloud Trace は OpenTelemetry 標準 マルチクラウド・ベンダーロックイン回避が必要なら OpenTelemetry SDK でアプリ計装し、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 の代表的なタイプ

タイプ
AvailabilityHTTP 200/全体、稼働率
Latencyp99 が 200ms 以下の割合
Error Rate5xx エラー率
ThroughputRPS、QPS
Saturationキュー長、CPU 使用率
Qualityデータ鮮度、計算精度
Correctnessデータの正しさ

SLA < SLO < SLI の関係

SLA: 99.9%(契約) SLO: 99.95%(内部目標)← SLA を下回らないバッファ SLI: 99.97%(実測)

エラーバジェットの数値感(暗記)

SLO月あたりエラーバジェット
99%7 時間 18 分
99.5%3 時間 39 分
99.9%43 分 12 秒
99.95%21 分 36 秒
99.99%4 分 19 秒
99.999%25.9 秒
🔑 エラーバジェット運用ルール 100% 残存 → 新規機能リリース自由 / 50% 以上残存 → リリース通常 / 50% 未満 → リリース慎重 / 枯渇 → 機能リリース全面停止、信頼性対応集中

📘 ③ アラート戦略・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 Burn5 分 / 14.4xCritical(即対応)
Medium Burn1 時間 / 6xWarning(数時間以内対応)
Slow Burn6 時間 / 1xNotice(後日対応)
💡 静的しきい値 vs SLO Burn Rate 旧式: 「CPU 80% 超でアラート」 → 環境変化で意味が変わる
新式: SLO Burn Rate ベース → ユーザー影響に基づく

Notification Channels の使い分け

種類用途
Email低優先、日次サマリー
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 — 組織全体のログ集約

組織レベル Aggregated Sink └── 全プロジェクトの Audit Log を BigQuery に集約 ↓ 長期保管 + SQL 分析

Log Buckets と保持

Bucketデフォルト保持用途
_Default30 日一般ログ
_Required400 日Admin Audit Logs(変更不可)
Custom1〜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 EventGCP 自動操作有効、無料
Policy Denied拒否されたアクセス有効、無料
⚠️ Data Access ログはデフォルト無効 コンプラ要件(HIPAA、PCI DSS、金融)で必要なら 明示的に有効化。試験頻出。

🔧 Metrics の種類

種類
System Metrics(自動)CPU、メモリ、ディスク、ネットワーク
User-Defined Metricsカスタムメトリクス、monitoring.googleapis.com/user/*
Log-Based Metricsログから抽出(カウント / 分布)
Synthetic MetricsUptime 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)

Metrics Scope(旧 Workspace) ├── Project A ├── Project B ├── AWS Account(連携) └── オンプレ(OpenTelemetry / Prometheus)

🔧 SLO 設計の 6 ステップ

  1. ユーザーの体験を特定(重要なユーザージャーニー)
  2. SLI を選ぶ(Availability / Latency / Error Rate / Throughput / Quality)
  3. 測定方法を決める(クライアント側?サーバー側?LB 経由?)
  4. 目標値を決める(過去実績の上 + ビジネス要件)
  5. エラーバジェット運用ルールを決める
  6. 定期レビュー(四半期)

🔧 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 独自、複雑なクエリ
PromQLManaged Service for Prometheus、業界標準
Cloud Monitoring API(プレフィルタ)UI ベース

🔧 OpenTelemetry の構成

アプリ (OTel SDK) ↓ OTLP protocol OTel Collector(オプション、エッジ集約) ↓ Cloud Trace / Cloud Monitoring / Logging

🔧 サンプリング戦略

方式内容
Always-on全リクエスト記録(小規模)
Probabilistic確率的サンプリング(例 1%)
Tail-basedエラー時のみ全保存
Adaptive負荷に応じた可変

🔧 Trace と Profiler の使い分け

観点TraceProfiler
目的リクエスト経路のレイテンシ可視化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 PrometheusPromQL 互換、自動スケール、24 ヶ月保持

⚡ SRE 用語(即答)

用語内容
SLI信頼性の 測定値(実測)
SLO内部の 目標値
SLA顧客との 契約値(罰則あり)
エラーバジェット1 − SLO(許容できるダウン)
Toil自動化可能な手作業(50% 以下を目標)
Burn Rateエラーバジェットの消費速度

⚡ アラート戦略(即答)

観点即答
良いアラート症状ベース、アクション可能、SLO Burn Rate
Multi-window/Multi-burn-rateFast (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 DeliveryCanary + Flag + Observability自動ロールバック高度な本番運用

リリース管理の典型フロー

1. コードレビュー (PR) 2. CI(テスト・ビルド・脆弱性スキャン) 3. Staging デプロイ 4. 受入テスト・回帰テスト 5. Production デプロイ(Canary 5% → 25% → 50% → 100%) 6. 監視・SLO 確認 7. 問題発生 → ロールバック 8. Postmortem(必要時)

📘 Feature Flag と Progressive Delivery

コードは本番にあるが、ユーザーへの公開を 動的に on/off する。

ツール概要
Firebase Remote Configモバイル/Web 用
外部 App ConfigLaunchDarkly、Split、Unleash

Progressive Delivery のフロー

1. コード本番デプロイ(Feature Flag OFF) 2. Flag を 1% ユーザーに ON 3. SLO・エラー率を確認 4. 5% → 25% → 50% → 100% に拡大 5. 問題発生 → Flag OFF(コードはそのまま)
🔑 Cloud Deploy の Approval Production デプロイ前に 承認待ち ステップを挿入できる。コンプラ要件(金融、医療、規制業界)のあるシステムで活用。

Cloud Deploy の Canary 設計(詳細)

strategy:
  canary:
    runtimeConfig:
      cloudRun:
        automaticTrafficControl: true
    canaryDeployment:
      percentages: [5, 25, 50]
      verify: true   # 各段階で verify ステップ実行

GitOps による Continuous Delivery

観点内容
Source of TruthGit(マニフェストが本番状態)
Diff DetectionArgo CD / Flux が差分検出
自動修復Drift があれば自動で Git 状態に戻す
GCP 実装Config Sync(Anthos Config Management)

6.4 本番デプロイ済みソリューションのサポート

📘 インシデント対応の標準フロー

1. 検知 ─── Alert / Uptime Check / 顧客連絡 2. トリアージ ─── 影響範囲、緊急度、担当アサイン 3. 暫定対応 ─── ロールバック、トラフィック切替、リソース増強 4. 復旧 ─── 動作確認、SLO 回復 5. 連絡 ─── Status Page、ステークホルダー通知 6. Postmortem ─── 原因分析、再発防止

Incident Command System (ICS)

大規模障害時の 役割分担モデル

役割責任
Incident Commander(IC)全体統率、決断
Communication Leadステークホルダー連絡、Status Page
Operations Lead実際の修復作業
Scribeタイムライン記録
Subject Matter Expert (SME)技術専門家

Status Page

📘 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商用、技術サポート
Enhanced24/7、Production Support中高
PremiumTAM(Technical Account Manager)、優先対応
💡 Blameless Postmortem の鉄則
  • 「誰が」ではなく「何が」を問う
  • 個人の責任追及禁止
  • システム・プロセスの改善に集中
  • 共有して組織全体で学ぶ

6.5 品質管理の評価

📘 コードレビューと Change Management

観点内容
正しさバグなし、要件満たす
可読性他人が読める
テスト単体・統合テストがある
セキュリティ入力検証、認証、認可
性能明らかなボトルネックなし
コンプラ規制要件遵守

ITIL Change Management

種類内容承認
Standard Changeリスクが低く、手順が標準化事前承認済み、不要
Normal Change標準外CAB(変更諮問委員会)の承認が必要
Emergency Change障害復旧事後承認、簡略化

📘 Continuous Compliance — Policy as Code

[Organization Policy] = GCP リソースの強制ポリシー [Policy Controller (Gatekeeper)] = K8s リソースの強制ポリシー [Open Policy Agent (OPA)] = 汎用 Policy エンジン

代表的な Organization Policy

ポリシー内容
iam.allowedPolicyMemberDomains許可ドメイン制限
compute.requireOsLoginOS Login 必須
compute.disableSerialPortAccessシリアルポート無効
storage.uniformBucketLevelAccessUBLA 必須
gcp.resourceLocationsリージョン制限
compute.vmExternalIpAccess外部 IP 禁止

Assured Workloads(規制業界)

Continuous Compliance Scanning

ツール対象
Security Command CenterGCP リソース全般
Policy ControllerK8s
Forseti(OSS)レガシー
Cloud Asset Inventoryリソース棚卸し

6.6 本番信頼性検証 — Chaos / Pentest / Game Day

📘 Chaos Engineering

意図的に障害を注入 し、システムの回復力を検証する手法。Netflix の Chaos Monkey が起源。

Chaos Engineering 4 原則

1. 定常状態の仮説を立てる(SLO 達成状態) 2. 現実世界の事象を変数として扱う 3. 本番環境(または近い環境)で実験 4. 自動化して継続実行

段階的な導入

Phase内容
Phase 1開発環境で手動 Chaos(Pod 削除)
Phase 2Staging で定期 Chaos
Phase 3本番で限定的 Chaos(夜間、限定リージョン)
Phase 4本番で常時 Chaos(成熟段階)

代表的なツール

ツール用途
Chaos MonkeyNetflix 発、ランダムに VM を停止、Spinnaker 統合
Chaos ToolkitOSS、汎用
Litmus / Chaos MeshK8s ネイティブのカオスツール
Gremlin商用のカオスプラットフォーム

GKE Chaos の代表手法

🗑️

Pod 削除

kubectl delete pod ランダム実行

🛑

ノード停止

Cluster Autoscaler 動作確認

⏱️

ネットワーク遅延

tc / Istio Fault Injection

🔥

リソース消費

stress-ng でメモリ・CPU 消費

🌐

ゾーン障害

Regional クラスタの 1 ゾーン落とし

🔌

依存エラー

下流サービスの 500 を注入

Game Day の計画

1. シナリオ作成(例: us-central1 ゾーン a が停止) 2. 影響予測(どのサービスが落ちるか) 3. 実施時刻決定(事前告知 or 抜き打ち) 4. 監視・対応・記録 5. Debrief(学んだこと、改善点)
⚠️ Chaos の段階的導入が鉄則 Phase 1 → 4 を順序通りに。いきなり本番で実施しない。チーム成熟度と自動修復の整備度に応じて段階拡大。

📘 Penetration Testing と Load Testing

Penetration Testing(Pentest)

外部・内部から 攻撃を再現 してセキュリティを検証。

種類内容
ブラックボックス内部情報なしで攻撃
ホワイトボックス内部情報を持って攻撃
グレーボックス一部情報あり
🔑 GCP の Pentest 規約 事前申請不要(公開規約に従う範囲で実施可能)。ただし以下は厳禁:
  • DDoS 攻撃
  • 他テナント影響
  • SLA 影響
推奨: 本番に影響しない時間帯、対象を IP/プロジェクトで限定。

Pentest の流れ

1. スコープ定義(対象システム、許可範囲) 2. 偵察(公開情報収集、ポートスキャン) 3. 脆弱性特定(既知 CVE、設定ミス) 4. 攻撃(実際に侵入を試みる) 5. 影響評価(取得可能データ、横展開可能性) 6. レポート(リスク、再現手順、対策提案) 7. 修正と再検証

Load Testing(負荷テスト)

目的内容
キャパシティ計画想定負荷で性能を測定
スケール検証Auto-scaling が動くか
ボトルネック特定どこが先に詰まるか
SLO 検証SLO を満たせる範囲を把握

ロードテストの種類

種類目的
Spike Test急増負荷耐性(直前ピーク)
Soak Test長時間負荷でのリーク検出
Stress Test限界を超えた挙動
Endurance Test24h+ の継続負荷
Volume Test大量データでの処理

GCP 上の負荷テスト構成例

[負荷生成] GKE で Locust 分散実行(マスター 1 + ワーカー N) Cloud Build からトリガー [ターゲット] 本番に近い Staging 環境 [観測] Cloud Monitoring / Trace で性能測定 SLO 達成範囲を記録

📘 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)

Layer 1: ネットワーク(Cloud Armor, VPC SC) Layer 2: 認証(IAM, OAuth) Layer 3: 認可(最小権限) Layer 4: データ(暗号化、CMEK) Layer 5: 監視(SCC, Cloud Logging) Layer 6: インシデント対応(Chronicle)

Graceful Degradation(縮退運転)

完全に失敗するのではなく 機能を縮退 する設計。

Failure Domain

何が同時に壊れるか」を意識した冗長化設計。

1 リージョン < 1 ゾーン < 1 ノード < 1 Pod ↑ broader failure domain narrower ↓ 冗長化はより広い 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 GitOpsConfig 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 駆動・自動化」志向の選択肢を選ぶ
💡 5 分で復習する箇条書きまとめ
  • 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 化
💡 次のステップ