Dernière révision : mai 2026
Configurez les services AWS figurant à l'examen PCDOE avec Terraform simple — un bloc à la fois, chacun étant lié à un domaine de l'examen. Le même code fonctionne sur OpenTofu.
À la fin de ce laboratoire, vous aurez provisionné, avec du Terraform simple, une instance de chacun des trois services de base de données gérés phares de GCP — Cloud SQL Postgres (HA + sauvegardes automatisées), Cloud Spanner (régional, nœud unique) et Cloud Bigtable (cluster de développement à nœud unique). Quatre blocs ; la matrice de décision PCDOE charge de travail → service en code.
C'est le laboratoire le plus coûteux de l'ensemble GCP ; lisez attentivement la note de coût avant d'appliquer.
Déposez les extraits dans un seul fichier main.tf, exécutez terraform init, puis terraform apply étape par étape.
>= 1.5 ou OpenTofu >= 1.6.your-project-id dans le bloc du fournisseur.Trois postes de dépenses facturent agressivement :
db-perf-optimized-N-2, HA régionale) : environ 100 $/mois.Environ 700 $/mois au total. C'est de loin le laboratoire le plus cher de l'ensemble CertLabPro. Appliquez, prenez une capture d'écran, détruisez. Ou appliquez morceau par morceau (terraform apply -target=...) pour provisionner et détruire un service à la fois.
Activez les API Cloud SQL, Spanner et Bigtable.
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 est le service Postgres / MySQL / SQL Server géré de GCP — à échelle verticale, régional. L'examen PCDOE teste cette forme de Cloud SQL pour bases de données relationnelles avec un plafond d'échelle verticale connu par rapport à Spanner (échelle horizontale, transactions distribuées).
Nous provisionnons avec availability_type = "REGIONAL" (HA — réplique synchrone dans une zone différente, basculement automatique), des sauvegardes quotidiennes automatisées et la récupération à un instant précis activée (le réglage par défaut recommandé par le 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 est le service de base de données relationnelle du PCDOE, à échelle horizontale, fortement cohérent et distribué mondialement — le seul produit du programme d'examen GCP qui offre une sémantique SQL à travers les continents avec une forte cohérence. L'examen PCDOE le présente comme Cloud SQL pour le scaling vertical, Spanner pour le scaling horizontal.
Nous provisionnons l'empreinte la plus petite possible : 1 unité de traitement (PU) régionale, la configuration de développement recommandée par le PCDOE. Cloud Spanner en production provisionne 100+ PU (ou 1+ nœuds — 1 nœud = 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 est le service NoSQL à colonnes larges du PCDOE — lectures/écritures à faible latence et à grande échelle (par exemple : séries temporelles, IoT, technologies publicitaires). L'examen PCDOE le présente comme Bigtable pour les charges de travail intensives en écriture sur de larges colonnes, par rapport à Firestore (document, mobile-first), et Spanner (relationnel, distribué).
Nous provisionnons un cluster SSD à nœud unique (le plus petit possible). Une famille de colonnes cf1 avec un nettoyage de la mémoire (garbage collection) à version infinie — les déploiements de production utiliseraient une politique de GC basée sur l'âge ou la version.
Bigtable n'a pas de niveau gratuit — même inactif, un cluster SSD à 1 nœud coûte environ 540 $/mois. Détruisez-le rapidement.
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 supprime tout — faites-le rapidement pour arrêter la facture d'environ 700 $/mois. L'instance Cloud SQL est supprimée (deletion_protection = false uniquement pour le labo). L'instance Cloud Spanner + la base de données sont supprimées proprement (aucun bloc de protection contre la suppression en production n'est présent). L'instance Cloud Bigtable + la table sont supprimées proprement.
Le PCDOE couvre de nombreuses facettes de l'ingénierie des bases de données que ce laboratoire ne peut pas inclure — Firestore (la base de données de documents pour applications mobiles/web), Memorystore (Redis + Memcached géré), Cloud SQL pour MySQL / SQL Server (seul Postgres a été couvert), les réplicas en lecture + réplicas inter-régions de Cloud SQL, AlloyDB pour Postgres (le service compatible Postgres à plus haute performance), la réplication + l'autoscaling de Bigtable, les configurations de géo-réplication de Spanner (multi-région, double-région), Database Migration Service (DMS — migration gérée de MySQL / Postgres sur site vers Cloud SQL), Datastream (CDC), l'interface API HBase de Bigtable, l'API héritée en mode Datastore de Firestore, Cloud Backup and DR Service (le produit de sauvegarde géré inter-services) et Cloud Storage comme destination de sauvegarde.
Nous nous en tenons au trio Cloud SQL + Spanner + Bigtable car ce sont les points d'extrémité de la matrice de décision PCDOE — chaque scénario d'examen teste lequel de ces trois (plus Firestore + AlloyDB) utiliser pour cette charge de travail ?. Firestore + AlloyDB + Memorystore ajouteraient chacun une part significative, mais le coût rend un laboratoire à 5 services irréalisable.
Pour une couverture conceptuelle service par service, consultez les sections Parcourir, Guide et Editorial de cette page de certification.