mcpField
D
deploying-on-gcp

deploying-on-gcp

github.com/ancolemanクラウド・DevOps52580 回インストール46 週間前に更新
リポジトリ

deploying-on-gcp について

Google Cloud Platform 上で開発するアーキテクトや開発者向けのスキルです。コンピューティング、データ、AI/ML、ネットワーク、セキュリティ、コストに関するサービス選定と構成パターンを、Terraform、Python SDK、gcloud CLI の例とともに示します。

主な機能

  1. 01GCP サービス選定のフレームワーク
  2. 02コンピューティング、ストレージ、データベースのパターン
  3. 03分析と ML のアーキテクチャ
  4. 04ネットワークとセキュリティの指針
  5. 05Terraform、Python SDK、gcloud の例

活用シーン

  1. 01ワークロードに適したコンピューティングとデータベースの選定
  2. 02BigQuery と Dataflow による分析パイプラインの設計
  3. 03Vertex AI の学習とモデル提供の計画
  4. 04AWS または Azure からのワークロード移行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ancoleman/ai-design-components --skill deploying-on-gcp

インストール後、Claude Code で/deploying-on-gcpを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

outputs.yaml
examples/gcloud/
common-commands.sh
examples/terraform/
cloud-run-service.tf
references/
compute-services.md
cost-optimization.md
data-analytics.md
ml-ai-services.md
networking.md
security-iam.md
storage-databases.md

詳細

GCP のパターン

Google Cloud Platform サービスを適切に選択し、アーキテクチャパターンとベストプラクティスを活用して、アプリケーションとインフラストラクチャを構築します。

目的

このスキルでは、コンピューティング、ストレージ、データベース、データ分析、機械学習、ネットワーキング、セキュリティにわたる Google Cloud Platform(GCP)サービスの選定フレームワークと実装パターンを提供します。ワークロード要件に基づくサービス選定を支援し、Terraform、Python SDK、gcloud CLI を使用した本番環境に対応したパターンを紹介します。

使用する場面

次の場合にこのスキルを使用します。

  • GCP のコンピューティングサービス(Cloud Run、GKE、Cloud Functions、Compute Engine、App Engine)を選択する
  • ストレージサービスまたはデータベースサービス(Cloud Storage、Cloud SQL、Spanner、Firestore、Bigtable、BigQuery)を選択する
  • データ分析パイプライン(BigQuery、Pub/Sub、Dataflow、Dataproc、Composer)を設計する
  • ML ワークフロー(Vertex AI、AutoML、事前学習済み API)を実装する
  • ネットワークインフラストラクチャ(VPC、Load Balancing、CDN、Cloud Armor)を設計する
  • IAM、セキュリティ、コスト最適化を設定する
  • AWS または Azure から GCP に移行する
  • マルチクラウドまたは GCP 中心のアーキテクチャを構築する

基本概念

GCP サービスのカテゴリ

コンピューティングの選択肢:

  • Cloud Run: ステートレスな HTTP サービス向けのサーバーレスコンテナ(ゼロまで自動スケール)
  • GKE(Google Kubernetes Engine): 複雑なオーケストレーション向けのマネージド Kubernetes
  • Cloud Functions: シンプルな処理向けのイベント駆動型関数
  • Compute Engine: OS を完全に制御できる仮想マシン
  • App Engine: Web アプリケーション向けの Platform-as-a-Service

ストレージとデータベース:

  • Cloud Storage: Standard/Nearline/Coldline/Archive の各階層を備えたオブジェクトストレージ
  • Cloud SQL: マネージド PostgreSQL/MySQL/SQL Server(最大 96 TB)
  • Cloud Spanner: 99.999% の SLA を備えたグローバル分散 SQL
  • Firestore: リアルタイム同期に対応した NoSQL ドキュメントデータベース
  • Bigtable: 時系列データと IoT 向けのワイドカラム NoSQL(ペタバイト規模)
  • AlloyDB: PostgreSQL 互換で、パフォーマンスが 4 倍向上

データと分析:

  • BigQuery: サーバーレスデータウェアハウス(ペタバイト規模の SQL 分析)
  • Pub/Sub: グローバルなメッセージングとイベントストリーミング
  • Dataflow: ストリーム処理とバッチ処理向けの Apache Beam
  • Dataproc: マネージド Spark および Hadoop クラスター
  • Cloud Composer: ワークフロー向けのマネージド Apache Airflow

AI/ML サービス:

  • Vertex AI: 統合 ML プラットフォーム(トレーニング、デプロイ、モニタリング)
  • AutoML: 標準的なタスク向けのノーコード ML
  • 事前学習済み API: Vision、Natural Language、Speech、Translation
  • TPU: 大規模モデルのトレーニング向け Tensor Processing Unit
選定フレームワーク:コンピューティングサービスの選択
Need to run code in GCP?
├─ HTTP service?
│  ├─ YES → Stateless?
│  │  ├─ YES → Cloud Run (auto-scale to zero)
│  │  └─ NO → Need Kubernetes? → GKE | Compute Engine
│  └─ NO (Event-driven)
│     ├─ Simple function? → Cloud Functions
│     └─ Complex orchestration? → GKE | Cloud Run Jobs

選定ガイド:

  • 最初の選択肢: Cloud Run(状態管理または Kubernetes が必要な場合を除く)
  • Kubernetes が必要: GKE Autopilot(マネージド)または Standard(完全な制御)
  • シンプルなイベント: Cloud Functions(実行時間は最大 60 分)
  • 完全な制御: Compute Engine(カスタム構成の VM)
選定フレームワーク:データベースの選択
Choose database type:
├─ Relational (SQL)
│  ├─ Multi-region required? → Cloud Spanner
│  ├─ PostgreSQL + high performance? → AlloyDB
│  └─ Standard RDBMS → Cloud SQL (PostgreSQL/MySQL/SQL Server)
│
├─ Document (NoSQL)
│  ├─ Mobile/web with offline sync? → Firestore
│  └─ Flexible schema, no offline? → MongoDB Atlas (Marketplace)
│
├─ Key-Value
│  ├─ Time-series or IoT data? → Bigtable
│  └─ Caching layer? → Memorystore (Redis/Memcached)
│
└─ Analytics
   └─ Petabyte-scale SQL analytics → BigQuery
選定フレームワーク:ストレージの選択
Storage type needed?
├─ Objects/Files
│  ├─ Frequent access → Cloud Storage (Standard)
│  ├─ Monthly access → Cloud Storage (Nearline)
│  ├─ Quarterly access → Cloud Storage (Coldline)
│  └─ Yearly access → Cloud Storage (Archive)
│
├─ Block storage → Persistent Disk (SSD/Standard/Extreme)
└─ Shared filesystem → Filestore (NFS)
GCP、AWS、Azure のサービス対応表
カテゴリGCPAWSAzure
サーバーレスコンテナCloud RunFargateContainer Instances
KubernetesGKEEKSAKS
関数Cloud FunctionsLambdaFunctions
VMCompute EngineEC2Virtual Machines
オブジェクトストレージCloud StorageS3Blob Storage
SQL データベースCloud SQLRDSSQL Database
NoSQL ドキュメントFirestoreDynamoDBCosmos DB
データウェアハウスBigQueryRedshiftSynapse
メッセージングPub/SubSNS/SQSService Bus
ML プラットフォームVertex AISageMakerMachine Learning

アーキテクチャパターン

パターン 1:サーバーレス Web アプリケーション

ユースケース: データベースとキャッシュを備えたステートレス HTTP API

アーキテクチャ:

Internet → Cloud Load Balancer → Cloud Run → Cloud SQL (PostgreSQL)
                                            → Memorystore (Redis)
                                            → Cloud Storage

主なサービス:

  • API サービス向けの Cloud Run(自動スケーリングされるコンテナ)
  • トランザクションデータ向けの Cloud SQL
  • キャッシュ向けの Memorystore
  • ファイルアップロード向けの Cloud Storage

Terraform の詳細な設定については、references/compute-services.md を参照してください。

パターン 2:データ分析プラットフォーム

ユースケース: リアルタイムのイベント処理と分析

アーキテクチャ:

Data Sources → Pub/Sub → Dataflow → BigQuery → Looker/Tableau
                          ↓
                     Cloud Storage (staging)

主なサービス:

  • イベントの取り込み向けの Pub/Sub(少なくとも 1 回の配信)
  • ストリーム処理向けの Dataflow(Apache Beam)
  • 分析向けの BigQuery(パーティション分割テーブル、クラスタリング)
  • ステージングとバックアップ向けの Cloud Storage

BigQuery の最適化パターンについては、references/data-analytics.md を参照してください。

パターン 3:ML パイプライン

ユースケース: エンドツーエンドの機械学習ワークフロー

アーキテクチャ:

Training Data (GCS) → Vertex AI Training → Model Registry → Vertex AI Endpoints
                                                              ↓
                                                         Predictions

主なサービス:

  • ノートブック開発向けの Vertex AI Workbench
  • カスタムモデル向けの Vertex AI Training(GPU/TPU に対応)
  • モデルのサービング向けの Vertex AI Endpoints(自動スケーリング)
  • オーケストレーション向けの Vertex AI Pipelines(Kubeflow)

ML の実装例については、references/ml-ai-services.md を参照してください。

パターン 4:GKE マイクロサービスプラットフォーム

ユースケース: 複数のサービスを伴う複雑なオーケストレーション

アーキテクチャ:

Internet → Cloud Load Balancer → GKE Cluster
                                   ├─ Ingress Controller
                                   ├─ Service Mesh (optional)
                                   ├─ Microservice A
                                   ├─ Microservice B
                                   └─ Microservice C

主な機能:

  • GKE Autopilot(ノードの完全マネージド)または Standard(カスタム設定)
  • GCP サービスへのセキュアなアクセスを実現する Workload Identity
  • Private Google Access を備えたプライベートクラスター
  • Kubernetes 経由で GCP リソースを管理する Config Connector

GKE の設定とベストプラクティスについては、references/compute-services.md を参照してください。

ベストプラクティス

コストの最適化

コンピューティング:

  • 予測可能なワークロードには Committed Use Discounts を使用します(57% 割引)
  • フォールトトレラントなワークロードには Spot VM を使用します(60~91% 割引)
  • Cloud Run はアイドル時にゼロまでスケールするため、料金は発生しません
  • GKE Autopilot ではノードではなく、Pod のリソースに対してのみ料金が発生します

ストレージ:

  • 用途に適した Cloud Storage クラス(Standard/Nearline/Coldline/Archive)を使用します
  • Object Lifecycle Management を有効にして、アクセス頻度の低いデータを移行します
  • バックアップは Coldline または Archive にアーカイブします(Standard より 99% 安価)

データ:

  • BigQuery では、パーティション分割テーブルとクラスタ化テーブルを使用します
  • 必要な列だけをクエリします(SELECT * は避けます)
  • キャッシュには BI Engine を使用します(最大 10TB まで無料)
  • BigQuery を大量に使用する場合は、定額料金を検討します

詳細なコスト戦略については、references/cost-optimization.md を参照してください。

セキュリティの基本

IAM のベストプラクティス:

  • 最小権限の原則に従います
  • アプリケーションではユーザーアカウントではなく、サービスアカウントを使用します
  • GKE ワークロードでは Workload Identity を有効にします(サービスアカウントキーは不要です)
  • シークレットには環境変数ではなく Secret Manager を使用します

ネットワークセキュリティ:

  • Private Google Access を使用します(パブリック IP なしで GCP サービスにアクセスできます)
  • プライベートインスタンスからのアウトバウンドインターネット接続には Cloud NAT を有効にします
  • データの持ち出しを防ぐため、VPC Service Controls を実装します
  • ゼロトラストアクセスには Identity-Aware Proxy(IAP)を使用します

データセキュリティ:

  • 保存時(デフォルト)と転送中の暗号化を有効にします
  • 機密データには Customer-Managed Encryption Keys(CMEK)を使用します
  • データ保護のため、VPC Service Controls の境界を実装します
  • すべてのプロジェクトで監査ログを有効にします

包括的なセキュリティパターンについては、references/security-iam.md を参照してください。

高可用性

マルチリージョン戦略:

  • Cloud Storage:マルチリージョンロケーション(US、EU、ASIA)を使用します
  • Cloud SQL:リージョン HA(自動フェイルオーバー)を有効にします
  • Cloud Spanner:マルチリージョン構成を使用します(SLA 99.999%)
  • グローバルロードバランシング:トラフィックを最も近い正常なバックエンドにルーティングします

バックアップと災害復旧:

  • Cloud SQL:自動バックアップとポイントインタイムリカバリを有効にします
  • Persistent Disk:スナップショットのバックアップをスケジュールします
  • Cloud Storage:重要なデータのバージョニングを有効にします
  • BigQuery:タイムトラベルにはテーブルスナップショットを使用します

ネットワーキングと HA のパターンについては、references/networking.md を参照してください。

クイックリファレンス

一般的な gcloud コマンド
# Project management
gcloud projects list
gcloud config set project PROJECT_ID

# Cloud Run
gcloud run deploy SERVICE_NAME --image IMAGE_URL --region REGION
gcloud run services list

# GKE
gcloud container clusters create-auto CLUSTER_NAME --region REGION
gcloud container clusters get-credentials CLUSTER_NAME --region REGION

# Cloud Storage
gsutil mb gs://BUCKET_NAME
gsutil cp FILE gs://BUCKET_NAME/

# BigQuery
bq mk DATASET_NAME
bq query --use_legacy_sql=false 'SELECT * FROM dataset.table LIMIT 10'

# Cloud SQL
gcloud sql instances create INSTANCE_NAME --database-version=POSTGRES_15 --region=REGION
gcloud sql connect INSTANCE_NAME --user=postgres

コマンドの全リファレンスについては、examples/gcloud/common-commands.sh を参照してください。

Python SDK クイックスタート
# Cloud Storage
from google.cloud import storage
client = storage.Client()
bucket = client.bucket('my-bucket')
blob = bucket.blob('file.txt')
blob.upload_from_filename('local-file.txt')

# BigQuery
from google.cloud import bigquery
client = bigquery.Client()
query = "SELECT * FROM `project.dataset.table` LIMIT 10"
results = client.query(query).result()

# Pub/Sub
from google.cloud import pubsub_v1
publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path('project', 'topic-name')
future = publisher.publish(topic_path, b'message data')

Python の完全なサンプルについては、examples/python/ を参照してください。

Terraform クイックスタート
# Provider configuration
terraform {
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "~> 5.0"
    }
  }
}

provider "google" {
  project = "my-project-id"
  region  = "us-central1"
}

# Cloud Run service
resource "google_cloud_run_service" "api" {
  name     = "api-service"
  location = "us-central1"

  template {
    spec {
      containers {
        image = "gcr.io/project/api:latest"
      }
    }
  }
}

Terraform の完全なサンプルについては、examples/terraform/ を参照してください。

サービス選択早見表

要件推奨サービス代替サービス
ステートレスな HTTP APICloud RunApp Engine
複雑なオーケストレーションGKE AutopilotGKE Standard
イベント処理Cloud FunctionsCloud Run Jobs
オブジェクトストレージCloud StorageN/A
リレーショナルデータベースCloud SQLAlloyDB、Spanner
NoSQL ドキュメントFirestoreMongoDB Atlas
時系列データBigtableN/A
データウェアハウスBigQueryN/A
メッセージキューPub/SubN/A
ストリーム処理DataflowDataproc
バッチ処理DataflowDataproc
ML トレーニングVertex AIGKE 上のカスタム実装
キャッシュMemorystore RedisN/A

他のスキルとの連携

関連スキル:

  • infrastructure-as-code: Terraform を使用して GCP リソースをプロビジョニングします(examples/terraform/ を参照)
  • kubernetes-operations: GKE 上でアプリケーションをデプロイし、管理します
  • building-ci-pipelines: Cloud Build を使用して Cloud Run または GKE への CI/CD を行います
  • secret-management: 機密性の高い設定に Secret Manager を使用します
  • observability: メトリクスとログに Cloud Monitoring と Cloud Logging を使用します
  • data-architecture: BigQuery と Cloud Storage を使用してデータレイクとデータウェアハウスを設計します
  • mlops-patterns: Vertex AI を使用して ML パイプラインを実装します
  • aws-patterns: マルチクラウド環境向けに AWS と GCP の同等サービスを比較します
  • azure-patterns: Azure と GCP の同等サービスを比較します

段階的な情報開示

詳細なドキュメントについては、以下を参照してください。

  • コンピューティングサービス: Cloud Run、GKE、Cloud Functions、Compute Engine、App Engine のパターンについては、references/compute-services.md を参照してください
  • ストレージとデータベース: サービス選択と設定の詳細については、references/storage-databases.md を参照してください
  • データ分析: BigQuery、Pub/Sub、Dataflow、Dataproc のパターンについては、references/data-analytics.md を参照してください
  • ML/AI サービス: Vertex AI、AutoML、事前トレーニング済み API の使用方法については、references/ml-ai-services.md を参照してください
  • ネットワーキング: VPC、Load Balancing、CDN、Cloud Armor のパターンについては、references/networking.md を参照してください
  • セキュリティと IAM: IAM パターン、Workload Identity、Secret Manager については、references/security-iam.md を参照してください
  • コスト最適化: 詳細なコスト削減戦略については、references/cost-optimization.md を参照してください

実例については、以下を参照してください。

  • Terraform の設定: インフラストラクチャのテンプレートについては、examples/terraform/ を参照してください
  • Python SDK の使用方法: クライアントライブラリの例については、examples/python/ を参照してください
  • gcloud CLI コマンド: コマンドリファレンスについては、examples/gcloud/common-commands.sh を参照してください

主な判断のまとめ

GCP を選択する場合:

  • データ分析ワークロード(BigQuery はクラス最高水準です)
  • ML/AI アプリケーション(Vertex AI、TPU、Google Research の支援)
  • Kubernetes ネイティブアプリケーション(Kubernetes の開発者が GKE を開発)
  • サーバーレスコンテナ(Cloud Run は成熟しており、費用対効果に優れています)
  • リアルタイムストリーミング(Pub/Sub + Dataflow)

GCP 独自の利点:

  • BigQuery:サーバーレス、ペタバイト規模、最速のデータウェアハウス
  • Cloud Run:最も成熟したサーバーレスコンテナプラットフォーム
  • GKE:最も高度なマネージド Kubernetes(Autopilot モード)
  • Vertex AI:統合 ML プラットフォーム(トレーニング、デプロイ、モニタリング)
  • 秒単位の課金と継続利用割引(自動的なコスト削減)

マルチリージョンの推奨事項:

  • 本番ワークロード:99.95%以上の SLA を実現するには、マルチリージョンを使用します
  • Cloud Storage:グローバルアクセスにはマルチリージョンを使用します
  • Cloud Spanner:グローバルトランザクションにはマルチリージョンを使用します
  • Global Load Balancing:最も近い正常なバックエンドにルーティングします

コメント