最后审核时间:2026年5月
使用原生 Terraform 构建 PCDOE 考试中的 AWS 服务——每次构建一个代码块,并紧扣考试领域。相同的代码可在 OpenTofu 上运行。
在本实验结束时,你将使用纯 Terraform 预置 GCP 三个旗舰托管数据库服务中的每一个实例——Cloud SQL Postgres(高可用性 + 自动化备份)、Cloud Spanner(区域性,单节点)和 Cloud Bigtable(单节点开发集群)。四个代码块;代码中体现了 PCDOE 的工作负载 → 服务决策矩阵。
这是 GCP 系列中最昂贵的实验;在应用之前请仔细阅读费用说明。
将代码片段放入一个 main.tf 文件中,运行 terraform init,然后逐步运行 terraform apply。
>= 1.5 或 OpenTofu >= 1.6。your-project-id。三项费用将积极计费:
db-perf-optimized-N-2,区域高可用性):约每月 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"(高可用性——在不同区域的同步副本,自动故障转移)、自动化每日备份以及启用的时间点恢复(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 的水平扩展、强一致性、全球分布式关系型数据库——在 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 服务——以巨大规模提供低延迟读写(例如:时间序列、物联网、广告技术)。PCDOE 考试将其定位为适用于宽列写入密集型场景的 Bigtable,与 Firestore(文档型,移动优先)和 Spanner(关系型,分布式)形成对比。
我们预置了一个单节点 SSD 集群(最小的可能配置)。一个列族 cf1 采用无限版本垃圾回收策略——生产部署会使用基于年龄或版本的垃圾回收策略。
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 涵盖了本实验无法容纳的许多数据库工程领域——Firestore(用于移动/Web 应用程序的文档数据库)、Memorystore(托管的 Redis + Memcached)、适用于 MySQL / SQL Server 的 Cloud SQL(本实验仅涵盖 Postgres)、Cloud SQL 只读副本 + 跨区域副本、AlloyDB for Postgres(更高性能的 Postgres 兼容服务)、Bigtable 复制 + 自动扩缩、Spanner 的地理复制配置(多区域、双区域)、数据库迁移服务 (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 决策矩阵的端点——每个考试场景都会测试针对此工作负载应选择这三者中的哪一个(加上 Firestore + AlloyDB)?。Firestore + AlloyDB + Memorystore 都会增加显著的成本,使得一个包含 5 种服务的实验变得不切实际。
有关按服务划分的概念性覆盖范围,请参阅此认证页面中的浏览、手册和 Editorial 部分。