PCA 合格対策

セクション 5:ソリューションのデプロイと実装

クラウドアーキトの設計を 実装に落とす ためのツール群。CI/CD・Apigee・Terraform・gcloud SDK・Cloud Shell / Code / Workstations・Cloud Emulators・Gemini AI 支援が学習の中心です。「どのツールで何ができるか」を要件から即答できる力が問われます。

📊 出題比重 ~12.5% ⚙️ Cloud Build / Deploy / Apigee 🏗️ Terraform / Config Connector 💻 Cloud Shell / Code / Workstations 🤖 Gemini Code / Cloud Assist
🔑 TL;DR(このセクションの核)
  • CI/CD は Cloud Build → Artifact Registry → Cloud Deploy の 3 点セットが定番。Binary Authorization で本番ガードレール
  • API 管理は要件で選定。フルライフサイクル + ポータル → Apigee、サーバーレス軽量 → API Gateway、gRPC/OpenAPI → Cloud Endpoints
  • IaC の標準は Terraform。K8s ネイティブ + GitOps なら Config Connector。Deployment Manager はレガシー
  • DB 移行は DMS(最小ダウン) と Datastream(CDC ストリーミング)。VM コンテナ化は Migrate to Containers、移行計画は Migration Center
  • テスト時の課金回避は Cloud Emulators(Bigtable / Spanner / Pub/Sub / Firestore の 4 つだけ)
  • AI 支援は場面で使い分け。IDE → Gemini Code Assist、コンソール → Gemini Cloud Assist
  • 認証は ADC + Workload Identity (Federation) が新基準。SA キー(JSON)は 避ける

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

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











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

5.1 ソリューションとアプリケーションのデプロイ・運用支援

CI/CD・API 管理・テスト・移行・IaC を扱う領域。「正しいツールを正しい場面で」が試験頻出の判断軸です。

📘 ① CI/CD パイプライン全体像

GCP の CI/CD は マネージドサービス 3 つの組合せが定番。役割を混同しないことが試験対策の最初の壁。

コード変更 (git push) ↓ Cloud Build (CI: ビルド・テスト・コンテナ化) ↓ Artifact Registry (成果物保管 / 脆弱性スキャン) ↓ Cloud Deploy (CD: dev → staging → prod) ↓ GKE / Cloud Run / Compute Engine (実行) ↓ Cloud Monitoring / Logging (観測)
用語意味代表サービス
CI(継続的インテグレーション)コード変更を自動ビルド・テストCloud Build、GitHub Actions、GitLab CI
CD(継続的デリバリ)検証済みアーティファクトを各環境に配布Cloud Deploy、Argo CD、Spinnaker
デプロイ実行環境に配置Cloud Run / GKE / GCE

Cloud Build(CI 担当)

YAML(cloudbuild.yaml)で ビルドステップ を定義する、フルマネージドの CI サービス。

  • ステップごとにコンテナを動かす(任意のツールを実行可能)
  • ソースは Cloud Source Repositories / GitHub / GitLab / Bitbucket
  • Cloud Build トリガーで Push / PR / タグで自動起動
  • Private Pool でプライベートネットワーク内ビルド
  • Secret Manager 連携、Workload Identity Federation 認証
# cloudbuild.yaml の例
steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'us-docker.pkg.dev/$PROJECT_ID/repo/app:$SHORT_SHA', '.']
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'us-docker.pkg.dev/$PROJECT_ID/repo/app:$SHORT_SHA']
images:
  - 'us-docker.pkg.dev/$PROJECT_ID/repo/app:$SHORT_SHA'

Artifact Registry(成果物リポジトリ)

コンテナイメージ / OS パッケージ / 言語パッケージ(Maven / npm / Python / Go)を保管する 次世代リポジトリ。

項目内容
旧Container Registry(gcr.io)
新Artifact Registry(*-docker.pkg.dev)
サポート形式Docker / OCI / Maven / npm / Python / Go / Apt / Yum
利点リージョナル、IAM 統合、脆弱性スキャン、リモートリポ、仮想リポ
⚠️ Container Registry は廃止予定 新規はすべて Artifact Registry を使う。既存の Container Registry も Artifact Registry への移行が推奨されている。

Cloud Deploy(CD 担当)

GitOps スタイルの 進行制御マネージドサービス。delivery-pipeline.yaml で dev → staging → prod の進行を宣言。

  • Promotion(環境間昇進)と Rollback(即時切戻し)
  • Cloud Run / GKE / Anthos / Run for Anthos に対応
  • Canary / Standard / Custom デプロイ戦略
  • Verification ステップでヘルスチェック組込み
  • Approval で本番手前の承認ゲート
  • 監査履歴を自動保存
📋 Cloud Deploy の delivery-pipeline.yaml 例(クリックで展開)
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
  name: app-pipeline
serialPipeline:
  stages:
    - targetId: dev
      profiles: [dev]
    - targetId: staging
      profiles: [staging]
      strategy:
        canary:
          runtimeConfig:
            cloudRun:
              automaticTrafficControl: true
          canaryDeployment:
            percentages: [10, 50]
            verify: true
    - targetId: prod
      profiles: [prod]
      strategy:
        canary:
          canaryDeployment:
            percentages: [5, 25, 50]
            verify: true

Binary Authorization の流れ

1. イメージビルド (Cloud Build) 2. 脆弱性スキャン (Container Analysis) 3. 検証ポリシー通過 → Attestor が署名 4. Cloud Deploy / GKE / Cloud Run が署名検証 5. 検証 OK のみデプロイを許可

📘 ② デプロイ戦略

4 つの主要戦略を 用途とリスクで使い分け。試験頻出は「即時切戻し → Blue-Green」「段階リリース → Canary」。

戦略内容リスク適用例
Rolling Update順次置換中一般的な Web アプリ
Blue-Green旧(Blue)と新(Green)を並走、切替低厳密な切戻しが必要
Canary一部トラフィックだけ新版に流す低ユーザー影響を早期検知
Recreate全停止 → 新版起動高ステートフル少数
[Rolling] 旧旧旧旧旧 → 旧旧旧旧新 → 旧旧旧新新 → 旧旧新新新 → 旧新新新新 → 新新新新新 [Blue-Green] Blue: 旧旧旧旧旧 (active) Blue: 旧旧旧旧旧 (idle) Green: ----- (待機) → Green: 新新新新新 (active) LB を Blue → Green に切替 [Canary] 旧旧旧旧旧 (95%) + 新 (5%) → 旧旧旧旧 (80%) + 新新 (20%) → 新新新新新 (100%)

プラットフォーム別の Blue-Green 実装

プラットフォーム実装
Cloud Run--no-traffic で新リビジョン → gcloud run services update-traffic --to-revisions=NEW=100
GKE2 つの Deployment を並走、Service のセレクタを切替
Compute Engine2 つの MIG、Load Balancer のバックエンド入替
App Engine2 バージョン並走、gcloud app services set-traffic

プラットフォーム別の Canary 実装

プラットフォーム実装
Cloud Run--traffic NEW=10,OLD=90、徐々に上げる
GKEIstio / Anthos Service Mesh で 5%/25%/50%/100%
GKEArgo Rollouts で自動進行
App Enginetraffic-split で割合変更

Feature Flag — 「コード変更なしの機能切替」

コードはデプロイ済みだが、機能を 動的に on/off する仕組み。

ツール概要
Firebase Remote Configモバイル / Web 向け
外部 App ConfigLaunchDarkly、Split、Unleash 等
🔑 Canary vs A/B テスト Canary はデプロイの安全性を狙う短期検証(旧版 vs 新版・同機能)。A/B テストは機能の効果測定を狙う長期実験(機能 A vs 機能 B)。混同しない。

📘 ③ Apigee と API 管理

API を多数公開すると、認証 / レート制限 / バージョニング / 課金 / 監視 を一元管理しないと運用が破綻します。これを担うのが API Management。

シンプル ←───────────────→ 高機能 Cloud Endpoints API Gateway Apigee - gRPC - サーバーレス - 開発者ポータル - 軽量 - Cloud Run - 課金 / マネタイズ - Cloud Functions - 詳細ポリシー - フルライフサイクル
サービス用途特徴
Apigeeフルライフサイクル API 管理エンタープライズ向け、開発者ポータル、マネタイズ、複雑なポリシー
API Gatewayサーバーレス API ゲートウェイ軽量、Cloud Run/Functions と統合、サーバーレス向け
Cloud EndpointsgRPC/OpenAPI ベースの API 管理軽量、GKE/GCE/App Engine と統合(やや古い)

Apigee のエディション

エディション用途
Apigee X(SaaS)フルマネージド、Google 運用
Apigee Hybridコントロールプレーンは Google、ランタイムはオンプレ/他クラウド GKE

Apigee の主要コンセプト

┌─────────────────────────────┐ │ Apigee Edge / X │ │ ┌─ API Proxy(前段プロキシ)│ │ │ └─ Policy(処理パイプライン) │ │ │ - OAuthV2 / VerifyAPIKey │ │ │ - VerifyJWT / GenerateJWT │ │ │ - Quota / SpikeArrest │ │ │ - AssignMessage │ │ │ - ResponseCache │ │ │ - ServiceCallout │ │ │ - MessageLogging │ │ │ │ │ ├─ Product(複数 Proxy をパッケージ)│ │ ├─ Developer / App(API キー単位) │ │ └─ Environment(dev/stg/prod) │ └─────────────────────────────┘ ↓ バックエンド API (Cloud Run / GKE / オンプレ / 他クラウド)
コンセプト内容
API Proxyバックエンド API の前段プロキシ
Policyプロキシで実行する処理(認証、変換、レート制限など)
ProductAPI を パッケージ化(複数 Proxy をまとめる)
Developer / AppAPI キーを受け取る単位
Environmentdev / staging / prod の論理環境
Flowリクエスト/レスポンスの処理パイプライン

代表的なポリシー

ポリシー用途
OAuthV2 / VerifyAPIKey認証
VerifyJWT / GenerateJWTJWT 検証・発行
Quotaレート制限(呼出回数)
SpikeArrest突発スパイク防御
AssignMessage / XML/JSON Transformリクエスト変換
ResponseCacheキャッシュ
ServiceCallout別 API 呼出
MessageLoggingロギング

Apigee の典型ユースケース

①

B2B / B2C API のマネタイズ

利用量に応じた課金プランを Apigee Analytics で実現。

②

レガシー SOAP/REST のラッピング

既存システムをモダン API に変換して公開。

③

マルチクラウド API 統合

GCP / AWS / Azure の API を統一ゲートウェイ経由で公開。

④

マイクロサービス公開

外部公開用の API ゲートウェイ層として配置。

📘 ④ テストと Cloud Emulators

△ / \ / E2E \ ← 少数・遅い・本物に近い /------\ / Integ. \ ← 中程度 /----------\ / 単体テスト \ ← 多数・速い・モック中心 /---------------\
種別内容代表ツール
単体テスト関数・クラス単位JUnit、pytest、Jest、Go test
統合テスト複数コンポーネント連携Testcontainers、Cloud Emulators
E2E テスト本番に近い環境で全体動作Cypress、Playwright、Selenium
負荷テスト想定負荷で性能確認Locust、JMeter、k6、Gatling
ストレステスト限界を超えた負荷で耐性確認同上
カオス試験故障注入で回復力確認Chaos Toolkit、Litmus
モバイル実機・仮想デバイスFirebase Test Lab

Cloud Emulators — 課金回避のローカルテスト

Bigtable / Spanner / Pub/Sub / Firestore はローカル実行できるエミュレータを提供。

gcloud emulators bigtable start    --host-port=localhost:8086
gcloud emulators spanner start     --host-port=localhost:9010
gcloud emulators pubsub start      --host-port=localhost:8085
gcloud emulators firestore start   --host-port=localhost:8080
💡 Emulator 対応サービスは 4 つだけ BigQuery / Cloud SQL / Memorystore などはエミュレータなし。テスト用には実環境のテストインスタンスを使う。
サービス制約
Bigtable永続化なし(停止で消える)、Replication 非対応
Spanner単一インスタンス、複雑な機能の一部非対応
Pub/Subサブスクリプション設定は維持されないことがある
Firestoreセキュリティルールテスト可能、Composite Index 制限

📘 ⑤ データ・システム移行ツール

「ソースとターゲットの組合せ」でツールが決まる。試験頻出。

サービス用途
Database Migration Service (DMS)DB 移行(オンプレ→Cloud SQL/AlloyDB/Spanner、最小ダウン)
DatastreamCDC(変更データキャプチャ)でリアルタイム同期
Migrate to Containers (M2C)VM ワークロードをコンテナ化して GKE/Cloud Run へ
Migrate for Compute Engine (M4CE)VMware/AWS/Azure VM を Compute Engine へ
Storage Transfer ServiceGCS 間 / S3 / Azure Blob / HTTP からデータ転送
Transfer Appliance物理デバイス郵送による大量データ移行(>100TB)
BigQuery Data Transfer ServiceSaaS / 他 DWH から BigQuery にデータ取込
Migration Center移行アセスメント・計画統合プラットフォーム(旧 Stratozone)

Database Migration Service(DMS)の流れ

1. ソース DB を登録(オンプレ / 他クラウド / 別 GCP) ↓ 2. 接続プロファイル作成(IP/Interconnect/VPN/Reverse SSH Tunnel) ↓ 3. 移行ジョブ起動(フルロード + CDC レプリケーション) ↓ 4. 検証(データ整合性、ラグ) ↓ 5. カットオーバー(読み書きを Cloud SQL に切替) ↓ ダウンタイムは数秒〜数分のみ
ソースターゲット
MySQLCloud SQL for MySQL
PostgreSQLCloud SQL for PostgreSQL / AlloyDB
SQL ServerCloud SQL for SQL Server
OracleAlloyDB / Cloud SQL for PostgreSQL

Datastream(CDC ストリーミング)

  • 用途: 既存 DB の変更を リアルタイム に BigQuery / Cloud Storage に流す
  • ソース: Oracle, MySQL, PostgreSQL, SQL Server, AlloyDB
  • 用途例: 分析パイプライン、データレイク構築、移行中の同期維持
🔑 DMS vs Datastream 「移行中も書き込みを止めず、最後にカットオーバー」→ DMS、「継続的にレプリケーション(移行ではなく分析等)」→ Datastream。

Migration Center(移行統合プラットフォーム)

[Phase 1] Discovery → mCollector で資産棚卸し [Phase 2] Assessment → 適合度評価、コスト試算 [Phase 3] Recommendation → 6R 戦略の推奨 [Phase 4] Plan → 移行ウェーブ計画 [Phase 5] Execution → M4CE / DMS / M2C との連携

📘 ⑥ Infrastructure as Code(IaC)

「インフラをコードとして管理」する考え方。GCP では Terraform が標準、K8s ネイティブなら Config Connector。

①

再現性

環境を同じ構成で再構築できる

②

バージョン管理

Git で変更履歴を追跡

③

レビュー可能

PR でインフラ変更をレビュー

④

自動化

CI/CD でデプロイ

GCP の IaC 選択肢

ツール概要
TerraformHashiCorp 製、最も普及、マルチクラウド対応
Config ConnectorKubernetes CRD で GCP リソース管理(GitOps と相性◎)
Pulumi一般言語(TS/Python/Go)で IaC
Deployment ManagerGCP 純正(レガシー、新規は非推奨)

Terraform の基本

# main.tf
provider "google" {
  project = "my-project"
  region  = "asia-northeast1"
}

resource "google_storage_bucket" "logs" {
  name     = "my-project-logs"
  location = "ASIA-NORTHEAST1"
  uniform_bucket_level_access = true
}

resource "google_cloud_run_v2_service" "app" {
  name     = "my-app"
  location = "asia-northeast1"
  template {
    containers {
      image = "us-docker.pkg.dev/my-project/repo/app:v1"
    }
  }
}
terraform init   → プロバイダ・モジュール初期化
terraform plan   → 差分プレビュー
terraform apply  → 実行
terraform destroy → 破棄
💡 GCS Backend が推奨 State は GCS Backend で共有 + ロック対応。CI 内で apply(個人 PC 禁止)。
terraform {
  backend "gcs" {
    bucket  = "my-tfstate-bucket"
    prefix  = "envs/prod"
  }
}

🔧 Cloud Build の機能と制約

観点詳細
トリガーPush、PR、タグ、Pub/Sub、手動、スケジュール
マシン種別E2-medium(デフォルト)〜 N1-highcpu-32(大規模)
Private Poolプライベート VPC 内でビルド(オンプレ DB 参照可)
並列ステップwaitFor: ["-"] で同時実行
キャッシュKaniko / GCS / Docker Layer キャッシュ
シークレットSecret Manager 連携
代替ツールGitHub Actions、GitLab CI、CircleCI、Jenkins

🔧 マルチステージビルド実例

steps:
  # 1. テスト
  - name: 'gcr.io/cloud-builders/go'
    args: ['test', './...']
    id: 'test'

  # 2. コンテナビルド(test 完了待ち)
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', '${_IMAGE}:${SHORT_SHA}', '.']
    waitFor: ['test']
    id: 'build'

  # 3. 脆弱性スキャン(並列)
  - name: 'gcr.io/cloud-builders/gcloud'
    args: ['artifacts', 'docker', 'images', 'scan', '${_IMAGE}:${SHORT_SHA}']
    waitFor: ['build']

  # 4. Cloud Deploy へ受渡し
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    args: ['gcloud', 'deploy', 'releases', 'create', 'rel-${SHORT_SHA}',
           '--delivery-pipeline=app-pipeline',
           '--region=asia-northeast1']

substitutions:
  _IMAGE: 'asia-docker.pkg.dev/PROJECT/repo/app'

options:
  logging: CLOUD_LOGGING_ONLY
  machineType: 'E2_HIGHCPU_8'

🔧 Cloud Build のセキュリティ強化

  • カスタムサービスアカウント を使う(デフォルト SA は強権限)
  • Binary Authorization で署名付きイメージのみデプロイ
  • Private Pool でオンプレ依存ビルド
  • Workload Identity Federation で外部 CI から鍵なし認証
  • Provenance(来歴) を SLSA 準拠で取得

🔧 Artifact Registry の高度な使い方

機能用途
Remote RepositoryDocker Hub / Maven Central のキャッシュ
Virtual Repository複数リポを 1 URL に統合
CMEK 暗号化コンプラ要件
VPC-SC 境界リーク防止
脆弱性スキャン自動スキャン、CVE 検出
Container Analysisメタデータ・SBOM 管理
Binary Authorization 連携署名検証してデプロイ

🔧 Apigee vs API Gateway vs Cloud Endpoints の選定

要件推奨
開発者ポータル必須Apigee
マネタイズ・課金Apigee
複雑なポリシー(変換、JWT、Quota)Apigee
サーバーレス API の単純公開(Cloud Run/Functions)API Gateway
低コスト、簡易管理API Gateway
gRPC / OpenAPI 中心、GKE バックエンドCloud Endpoints
ESPv2(拡張サーバープロキシ)Cloud Endpoints

🔧 負荷テストツールの比較

ツール言語特徴
LocustPythonコードベースシナリオ、Web UI、分散実行
JMeterJavaGUI、レガシー、プラグイン豊富
k6JavaScript開発者寄り、CLI、Cloud Native
GatlingScala高負荷、HTML レポート
VegetaGoシンプルな CLI

🔧 GCP 上で負荷テスト

方法用途
GKE で Locust を分散実行大規模・カスタマイズ自由
Cloud Run でツール実行小〜中規模、コスト効率
Cloud Build からスクリプトCI 内負荷テスト
k6 Cloud / Locust CloudSaaS、運用負担なし

🔧 Cloud Emulators の CI 統合例

# cloudbuild.yaml の例
steps:
  - name: 'google/cloud-sdk:emulators'
    entrypoint: 'bash'
    args:
      - '-c'
      - |
        gcloud emulators firestore start --host-port=localhost:8080 &
        export FIRESTORE_EMULATOR_HOST=localhost:8080
        npm test

🔧 Terraform の構造化

terraform/ ├── modules/ │ ├── network/ # VPC モジュール │ ├── gke/ # GKE モジュール │ └── monitoring/ ├── envs/ │ ├── dev/ │ │ ├── main.tf │ │ ├── variables.tf │ │ └── backend.tf │ ├── staging/ │ └── prod/ └── shared/ └── iam.tf

🔧 Terraform vs Config Connector

観点TerraformConfig Connector
表現HCLKubernetes CRD (YAML)
実行環境CLI / CIGKE クラスタ内コントローラ
GitOpsArgo CD / Flux と組合せK8s ネイティブで GitOps と相性◎
学習コスト中高(K8s 知識前提)
推奨汎用、マルチクラウドGKE 中心、GitOps 徹底

🔧 IaC の安全運用

  • Service Account に最小権限: roles/owner は避け、必要な API ごとに付与
  • CI 内でのみ apply: 個人 PC で apply しない
  • terraform plan の差分を必ず PR レビュー
  • Sensitive 変数は Secret Manager から取得

🔧 6R 戦略と移行ツール対応

移行戦略(6R)推奨ツール
RehostM4CE / Migrate for Compute Engine
Replatform(DB のみマネージド化)DMS
Refactor(リアルタイム分析)Datastream + BigQuery
Repurchase(対象外)

🔧 実装管理のトレードオフ例

📋 ケース: モノリス vs マイクロサービス CI/CD(クリックで展開)

要件: 月 100 デプロイ、3 チーム並走

  • A: モノリス + Cloud Build 1 パイプライン → 待ちが発生
  • B: マイクロサービス + チームごとの Cloud Build トリガー → 並行可能、運用は複雑

→ B を採用(並行性 > 運用シンプル)

📋 ケース: Terraform vs Config Connector(クリックで展開)

要件: GKE 中心、GitOps 徹底、運用チームは K8s に慣れている

  • A: Terraform CI で apply
  • B: Config Connector + Argo CD

→ B を採用(K8s ネイティブで GitOps)

📋 ケース: Apigee vs API Gateway(クリックで展開)

要件: 社内マイクロサービス公開、認証は IAM、軽量に始めたい

  • A: Apigee → オーバースペック
  • B: API Gateway + Cloud Run → 軽量、Cloud IAM 連携

→ B を採用(外部開発者ポータルが必要なら Apigee に切替)

⚡ CI/CD パイプライン(即答)

役割サービス
CI(ビルド・テスト)Cloud Build
成果物保管Artifact Registry(旧 Container Registry)
CD(環境間進行)Cloud Deploy
署名・検証Binary Authorization + Container Analysis
シークレット注入Secret Manager
K8s デリバリ(GitOps)Config Sync / Argo CD / Flux

⚡ デプロイ戦略(即答)

戦略用途
Rolling Update一般 Web
Blue-Green即時切戻し
Canary段階リリース・早期検知
Recreateステートフル少数
A/B テスト機能比較(効果測定、Canary とは別目的)

⚡ API 管理(即答)

要件サービス
フルライフサイクル / 開発者ポータル / マネタイズApigee
サーバーレス API ゲートウェイ(Cloud Run / Functions)API Gateway
gRPC / OpenAPI、GKE/GCE バックエンドCloud Endpoints (ESPv2)
Apigee + オンプレ/他クラウド GKEApigee Hybrid

⚡ Cloud Emulators 対応(即答)

サービスEmulator あり
Bigtable✓
Spanner✓
Pub/Sub✓
Firestore✓
その他エミュレータなし

⚡ 移行ツール(即答)

ソース → ターゲットツール
DB 全般(最小ダウン)DMS
DB → 分析 / リアルタイム CDCDatastream
VM → GCEMigrate for Compute Engine
VM → コンテナMigrate to Containers
GCS 間 / S3 / Azure / HTTPStorage Transfer Service
大量データ(>100TB)Transfer Appliance
SaaS → BigQueryBigQuery Data Transfer Service
移行アセスメント・計画Migration Center

⚡ IaC 選定(即答)

観点推奨
汎用、マルチクラウドTerraform
K8s ネイティブ、GitOps 徹底Config Connector
一般言語で書きたいPulumi
新規は使うなDeployment Manager(レガシー)

5.2 Google Cloud の管理ツールでのプログラム的操作

クラウドリソースを操作する CLI / SDK / IDE / AI 支援 のツール群。「どのツールがどの場面で最適か」が問われます。

📘 ① Cloud Shell / Cloud Code / Cloud Workstations

Cloud Shell — ブラウザの即席開発環境

ブラウザから即起動できる マネージド開発環境。gcloud / gsutil / bq / kubectl / terraform などがプリインストール。

構成要素内容
Cloud Shell Terminalブラウザの bash シェル、5GB の永続 $HOME、無料
Cloud Shell Editorブラウザ版 VS Code(Theia ベース)、シンタックスハイライト、デバッガ
Boost Mode一時的に高速化(4 コア/8GB)

Cloud Code — ローカル IDE 拡張

ローカル IDE(VS Code / IntelliJ)の拡張機能。

  • GKE / Cloud Run 用テンプレートとデプロイ
  • Skaffold / Kustomize / Helm 統合
  • Cloud APIs スニペット
  • Cloud Run 用ローカル実行
  • リモートデバッグ
  • Gemini Code Assist 統合

Cloud Workstations — マネージド開発環境

ブラウザでアクセスできる マネージド開発環境。Cloud Shell より高性能で、専用ネットワーク内に配置可能。

観点Cloud ShellCloud Workstations
起動速度即時数分
永続化5GBフル永続 PVC
性能小カスタマイズ可(CPU/GPU/メモリ)
ネットワークパブリックプライベート VPC
用途一時オペ・学習本格開発、規制環境
🔑 開発環境の使い分け
  • 「ブラウザですぐ gcloud」→ Cloud Shell
  • 「ローカル IDE で K8s/Cloud Run 開発」→ Cloud Code
  • 「本格開発、規制環境、プライベート VPC」→ Cloud Workstations

📘 ② gcloud / gsutil / bq の役割

CLI担当
gcloudGCP リソース全般(プロジェクト、Compute、GKE、IAM 等)
gsutilCloud Storage 専用(旧、現在は gcloud storage に置き換え推奨)
bqBigQuery 専用
kubectlKubernetes 操作(GKE)
terraformIaC(GCP プロバイダ)

よく使う代表コマンド

# gcloud
gcloud auth login                              # 認証
gcloud config set project PROJECT_ID           # プロジェクト切替
gcloud compute instances list                  # VM 一覧
gcloud run deploy my-app --image=IMAGE         # Cloud Run デプロイ
gcloud iam service-accounts list               # SA 一覧

# gsutil / gcloud storage
gsutil cp file.txt gs://bucket/                # アップロード(旧)
gcloud storage cp file.txt gs://bucket/        # 新コマンド(推奨)
gcloud storage ls gs://bucket/

# bq
bq query --use_legacy_sql=false 'SELECT 1'
bq mk --dataset mydataset
bq load --source_format=CSV ds.table file.csv

# kubectl (GKE)
gcloud container clusters get-credentials CLUSTER --region=REGION
kubectl get pods
kubectl apply -f manifest.yaml

# Cloud Deploy
gcloud deploy releases create rel-$(date +%s) \
  --delivery-pipeline=app-pipeline \
  --region=asia-northeast1

# Cloud Build
gcloud builds submit --config=cloudbuild.yaml .
💡 gsutil → gcloud storage gsutil の機能は gcloud storage に統合されつつある。CI/CD では gcloud storage を推奨。

📘 ③ Google API クライアントライブラリ

GCP の操作は REST API が本体。クライアントライブラリ を使うとリトライ・認証・ページング等を自動化できる。

言語ライブラリ
Pythongoogle-cloud-*(google-cloud-storage 等)
Javacom.google.cloud:google-cloud-*
Gocloud.google.com/go/*
Node.js@google-cloud/*
.NETGoogle.Cloud.*
PHP / Ruby同様

認証の基本(重要)

認証方式用途
ADC(Application Default Credentials)デフォルト推奨。実行環境の認証を自動取得
Service Account Key (JSON)旧式、漏えいリスクあり、極力避ける
Workload IdentityGKE 内 Pod を SA に紐付け(鍵不要)
Workload Identity Federationオンプレ / 他クラウドから OIDC で GCP 認証(鍵不要)
# Python の例
from google.cloud import storage
client = storage.Client()  # ADC で自動認証
bucket = client.bucket("my-bucket")

ベストプラクティス

  1. ADC を使う(環境別に自動切替)
  2. 指数バックオフ でリトライ(クライアントライブラリは内蔵)
  3. Idempotency を意識(重複呼出に対する冪等性)
  4. Quotas を意識(429 エラー → バックオフ)
  5. 同時並列度 を制限(多数の API を叩きすぎない)
  6. Service Account のキー直書きは避ける

📘 ④ Gemini Code Assist と Gemini Cloud Assist

サービス役割
Gemini Cloud AssistGCP 運用全般 の AI 支援(コンソール内)
Gemini Code AssistIDE 内のコード補完(VS Code / IntelliJ / Cloud Shell Editor)
Vertex AI Gemini API開発者向け LLM API
Gemini Enterprise Agent Platformエージェント構築(旧 Vertex AI Agent Builder)

Gemini Cloud Assist の対応場面

①

設計

アーキ提案、ベストプラクティス参照

②

実装

gcloud コマンド生成、Terraform スニペット生成、コードレビュー

③

運用

ログ解析支援、エラー原因推定、修復手順提案

④

トラブルシュート

障害時の関連リソース横断検索

⑤

ドキュメント

自然言語検索、要約

⑥

Investigations

障害時の関連リソース・ログ・メトリクス横断分析、原因仮説生成

🔑 試験で問われる使い分け
  • 「Terraform を書くのを手伝って」→ Gemini Code Assist(IDE 内)
  • 「障害発生時のログ解析を手伝って」→ Gemini Cloud Assist(コンソール内)
  • 「gcloud コマンドを忘れた、教えて」→ Gemini Cloud Assist
  • 「アーキ図のドラフトを作って」→ Gemini Cloud Assist
  • 「単体テストを生成して」→ Gemini Code Assist

🔧 認証戦略の選定

環境認証
ローカル開発gcloud auth application-default login(ADC)
GCE / GKE / Cloud Run / Cloud Functionsメタデータサーバ経由の SA(自動)
GKE PodWorkload Identity(K8s SA ↔ GCP SA)
オンプレ / 他クラウドWorkload Identity Federation(OIDC / SAML)
緊急時のみSA Key(漏えいリスク注意)

🔧 リトライ戦略(指数バックオフ)

1 回目 失敗 → 1 秒待機
2 回目 失敗 → 2 秒待機
3 回目 失敗 → 4 秒待機
...(指数バックオフ + ジッター)
  • クライアントライブラリは 指数バックオフ + ジッター を内蔵
  • リトライ対象: 5xx、429(Too Many Requests)、一部 408
  • リトライ不可: 4xx 系(認証エラー、Bad Request など)

🔧 冪等性(Idempotency)

状況対策
POST で作成Idempotency Key ヘッダ送信
Pub/Sub PublisherOrdered Delivery + Deduplication ID
Cloud FunctionsAt-least-once 配信前提で設計
BigQuery InsertinsertId を指定

🔧 バッチング・ページング

操作推奨
大量 GETページング(pageToken)
大量 INSERTバッチ API(List / BulkInsert)
BigQuery 取込バッチ Load Job、Storage Write API
Pub/Sub PublishPublisher のバッチ設定

🔧 クライアントライブラリと REST API の使い分け

場合推奨
言語サポートありクライアントライブラリ
シェルスクリプトgcloud / curl + REST
マイナーな言語REST + 自前 OAuth トークン取得
プレビュー APIREST(クライアントが未対応のことが多い)

🔧 REST API の呼び出し例

# アクセストークン取得
TOKEN=$(gcloud auth print-access-token)

# Compute Engine 一覧
curl -H "Authorization: Bearer $TOKEN" \
  https://compute.googleapis.com/compute/v1/projects/PROJECT/aggregated/instances

🔧 gRPC との使い分け

  • gRPC: 高性能、ストリーミング、Spanner / Bigtable / Pub/Sub などは内部 gRPC
  • REST: 互換性重視、ブラウザから直接呼び出し可能

🔧 Cloud Workstations の構成例

[Cloud Workstations Cluster] ↓ [Workstation Config] ├── Container Image(プリインストール SDK) ├── Machine Type(n1-standard-4, GPU 可) ├── Persistent Disk(Home 領域永続化) └── Network Config(プライベート VPC) ↓ [Workstation インスタンス] ├── ブラウザから IDE アクセス ├── VS Code / JetBrains 対応 └── Gemini Code Assist 統合

⚡ Cloud Shell / Cloud Code / Cloud Workstations(即答)

ツール用途
Cloud Shell Terminalブラウザの bash、5GB 永続、gcloud/kubectl/terraform 入り
Cloud Shell Editorブラウザ版 VS Code、Gemini Code Assist 統合
Cloud Codeローカル IDE 拡張(VS Code / IntelliJ)、GKE/Cloud Run テンプレ
Cloud Workstationsフルマネージド開発環境(高性能、プライベート VPC 可)

⚡ 認証(即答)

認証方式用途
ADCデフォルト推奨
メタデータ SAGCE/GKE/Cloud Run/Functions で自動
Workload IdentityGKE Pod ↔ GCP SA
Workload Identity Federationオンプレ・他クラウドから OIDC で鍵なし
SA Key (JSON)極力避ける、漏えいリスク

⚡ Gemini AI 支援の使い分け

要件サービス
IDE 内コード補完・生成・テスト生成Gemini Code Assist
GCP コンソール内のアーキ設計・トラブルシュートGemini Cloud Assist
LLM API として呼出Vertex AI Gemini API
エージェント構築Gemini Enterprise Agent Platform(旧 Vertex AI Agent Builder)

⚡ サービスリネーム(最新)

旧名新名
Container RegistryArtifact Registry
StratozoneMigration Center
Vertex AI Agent BuilderGemini Enterprise Agent Platform
Cloud Functions Gen2Cloud Run functions

⚡ 暗記必須の数値・名前

  • Cloud Build デフォルトマシン: E2-medium、最大 E2_HIGHCPU_32
  • Cloud Shell ホーム: 5GB 永続
  • Cloud Run リクエスト最大時間: 60 分
  • Cloud Run functions 最大時間: HTTP 60 分 / イベント 9 分
  • DMS サポート: MySQL、PostgreSQL、SQL Server、Oracle → AlloyDB
  • Datastream ソース: Oracle、MySQL、PostgreSQL、SQL Server、AlloyDB
  • Artifact Registry URL: *-docker.pkg.dev
  • Workload Identity Federation: OIDC / SAML / AWS で GCP 認証

📌 章末まとめ — 実装管理の翻訳パターン

要件デフォルト解
CICloud Build
成果物保管Artifact Registry
CD(環境間進行)Cloud Deploy
デプロイ戦略(即時切戻し)Blue-Green
デプロイ戦略(段階リリース)Canary
API フルライフサイクルApigee
サーバーレス API ゲートウェイAPI Gateway
負荷テストLocust / JMeter / k6
DB 移行(最小ダウン)Database Migration Service
CDC ストリーミングDatastream
VM → ContainerMigrate to Containers
大量データ移行Transfer Appliance
移行アセスメントMigration Center
ローカルテストCloud Emulators
IaC 汎用Terraform
IaC K8s ネイティブConfig Connector
ブラウザ開発Cloud Shell Editor
IDE 拡張Cloud Code
AI 支援(IDE)Gemini Code Assist
AI 支援(コンソール)Gemini Cloud Assist
認証(推奨)ADC + Workload Identity (Federation)
未署名イメージ拒否Binary Authorization
🔑 試験中の判断フロー
質問を読む
  ↓
「実装・デプロイ系」キーワード抽出
  - ビルド・テスト → Cloud Build / Emulators
  - パッケージ管理 → Artifact Registry
  - 環境間進行 → Cloud Deploy
  - API 公開 → Apigee / API Gateway / Endpoints
  - データ・DB 移行 → DMS / Datastream / 移行 4 種
  - ローカル開発 → Cloud Shell / Cloud Code / Workstations
  - インフラコード → Terraform / Config Connector
  - 認証 → ADC / Workload Identity / Federation
  ↓
要件の制約を確認(ダウンタイム、ポータル、ハイブリッド、コンプラ)
  ↓
最も「制約を満たす最小構成」を選ぶ
💡 次のステップ