最終確認: 2026年5月
PCDOE 試験の対象となる AWS サービスを、プレーンな Terraform を使用して構築します。1 ブロックずつ、それぞれ試験ドメインに関連付けられています。同じコードが OpenTofu でも動作します。
このラボの終わりまでに、プレーンなTerraformを使用して、GCPの3つの主要なマネージドDBサービス(Cloud SQL Postgres(HA + 自動バックアップ)、Cloud Spanner(リージョン、シングルノード)、Cloud Bigtable(シングルノード開発クラスタ))の各インスタンスをプロビジョニングできます。4つのブロック。コードにPCDOEの「ワークロード → サービス」意思決定マトリックスが示されます。
これはGCPセットの中で最もコストがかかるラボです。適用する前にコストに関する注意事項をよくお読みください。
スニペットを単一の main.tf に配置し、terraform init を実行した後、terraform apply をステップバイステップで実行してください。
>= 1.5 または OpenTofu >= 1.6。your-project-id を置き換えてください。次の3つの項目は高額な費用が発生します。
db-perf-optimized-N-2、リージョンHA): 月額約100ドル。合計月額約700ドル。これはCertLabProセットの中で群を抜いて最も高価なラボです。**適用し、スクリーンショットを撮り、速やかに破棄してください。**または、サービスごとにプロビジョニングと破棄を行うために、一部ずつ適用(terraform apply -target=...)することもできます。
Cloud SQL、Spanner、BigtableのAPIを有効にします。
terraform {
required_version = ">= 1.5"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.0" }
}
}
provider "google" {
project = "your-project-id" # REPLACE
region = "us-central1"
}
locals {
labels = {
project = "certlabpro-pcdoe"
managed_by = "terraform"
}
}
resource "google_project_service" "sqladmin" {
service = "sqladmin.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "spanner" {
service = "spanner.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "bigtableadmin" {
service = "bigtableadmin.googleapis.com"
disable_on_destroy = false
}Cloud SQLは、GCPのマネージドPostgres / MySQL / SQL Serverであり、垂直スケーリングされ、リージョン対応です。PCDOE試験では、この既知の垂直スケーリング上限を持つリレーショナルCloud SQLの形式と、Spanner(水平スケーリング、分散トランザクション)を比較してテストします。
availability_type = "REGIONAL"(HA — 異なるゾーンでの同期レプリカ、自動フェイルオーバー)、毎日自動バックアップ、およびポイントインタイムリカバリを有効にしてプロビジョニングします(PCDOEが推奨するデフォルト設定)。
resource "google_sql_database_instance" "main" {
name = "certlabpro-pcdoe-pg"
database_version = "POSTGRES_15"
region = "us-central1"
settings {
tier = "db-perf-optimized-N-2"
availability_type = "REGIONAL" # HA — synchronous standby
backup_configuration {
enabled = true
point_in_time_recovery_enabled = true
start_time = "02:00"
backup_retention_settings {
retained_backups = 7
}
}
maintenance_window {
day = 7 # Sunday
hour = 3
update_track = "stable"
}
insights_config {
query_insights_enabled = true
query_string_length = 1024
record_application_tags = true
}
}
deletion_protection = false # lab-only
depends_on = [google_project_service.sqladmin]
}Cloud Spannerは、PCDOEが扱う水平スケーリングされ、強力な整合性を持ち、グローバルに分散されたリレーショナルDBです — GCP試験のブループリント上で、強力な整合性を持って大陸を越えてSQLセマンティクスを提供する唯一の製品です。PCDOE試験では、垂直スケーリングにはCloud SQL、水平スケーリングにはSpannerとして位置づけられます。
可能な限り最小のフットプリント、つまり1つの処理ユニット(PU)リージョンでプロビジョニングします。これはPCDOEが推奨する開発構成です。本番環境のSpannerは100以上のPU(または1以上のノード — 1ノード = 1000 PU)をプロビジョニングします。
resource "google_spanner_instance" "main" {
name = "certlabpro-pcdoe"
config = "regional-us-central1"
display_name = "PCDOE lab Spanner"
processing_units = 100 # 1 Node = 1000 PUs; 100 PU = ~$65/month floor
labels = local.labels
depends_on = [google_project_service.spanner]
}
resource "google_spanner_database" "main" {
instance = google_spanner_instance.main.name
name = "labdb"
ddl = [
"CREATE TABLE items (id STRING(36) NOT NULL, name STRING(MAX), created_at TIMESTAMP NOT NULL OPTIONS (allow_commit_timestamp=true)) PRIMARY KEY (id)",
]
deletion_protection = false # lab-only
}Cloud Bigtableは、PCDOEが扱うワイドカラムNoSQLサービスであり、大規模な低レイテンシの読み取り/書き込み(時系列データ、IoT、広告技術などを想定)に対応します。PCDOE試験では、ワイドカラム書き込み負荷が高い場合はBigtable、Firestore(ドキュメント、モバイル優先)、Spanner(リレーショナル、分散)と比較して位置づけられます。
単一ノードのSSDクラスタ(最小構成)をプロビジョニングします。無限バージョンガベージコレクションを持つ1つのカラムファミリー cf1 を設定します — 本番環境のデプロイでは、期間またはバージョンベースのGCポリシーを使用します。
Bigtableにはゼロコストのティアがありません — アイドル状態でも、1ノードのSSDクラスタで月額約540ドルかかります。速やかに破棄してください。
resource "google_bigtable_instance" "main" {
name = "certlabpro-pcdoe-bt"
display_name = "PCDOE lab Bigtable"
instance_type = "PRODUCTION"
cluster {
cluster_id = "certlabpro-pcdoe-bt-c1"
zone = "us-central1-a"
num_nodes = 1
storage_type = "SSD"
}
labels = local.labels
deletion_protection = false # lab-only
depends_on = [google_project_service.bigtableadmin]
}
resource "google_bigtable_table" "items" {
name = "items"
instance_name = google_bigtable_instance.main.name
column_family {
family = "cf1"
}
}terraform destroy はすべてを破棄します — 月額約700ドルの請求を止めるため、速やかに実行してください。Cloud SQLインスタンスは破棄されます(ラボ専用の deletion_protection = false が設定されているため)。Spannerインスタンス + データベースはきれいに破棄されます(本番環境の削除保護ブロックが邪魔になりません)。Bigtableインスタンス + テーブルはきれいに破棄されます。
PCDOEは、このラボでは扱いきれない多くのDBエンジニアリングの側面をカバーしています — Firestore(モバイル/ウェブアプリ用のドキュメントDB)、Memorystore(マネージドRedis + Memcached)、Cloud SQL for MySQL / SQL Server(Postgresのみを扱います)、Cloud SQLリードレプリカ + クロスリージョンレプリカ、AlloyDB for Postgres(高性能Postgres互換サービス)、Bigtableレプリケーション + オートスケーリング、Spannerの地理的レプリケーション構成(マルチリージョン、デュアルリージョン)、Database Migration Service(DMS — オンプレミスのMySQL / PostgresからCloud SQLへのマネージド移行)、Datastream(CDC)、BigtableのHBase APIサーフェス、FirestoreのDatastoreモードレガシーAPI、Cloud Backup and DR Service(マネージドクロスサービスバックアップ製品)、そしてバックアップ先としてのCloud Storageなど。
Cloud SQL + Spanner + Bigtableのトリオに限定するのは、これらがPCDOEの意思決定マトリックスの主要な候補であるためです — すべての試験シナリオでは「このワークロードには、これら3つ(加えてFirestore + AlloyDB)のうちどれが適しているか?」をテストします。Firestore + AlloyDB + Memorystoreをそれぞれ追加すると、有用な範囲が広がりますが、コストが高くなるため、5サービスを扱うラボは現実的ではありません。
サービスごとの概念的な範囲については、この認定試験ページの閲覧、プレイブック、およびEditorialセクションを参照してください。