Decision Tables
Every "which X do I pick?" in one place. These matrices ARE the exam.
Compute & containers
Full OS control, custom kernels, lift-and-shift→Compute Engine
Kubernetes API, multi-service orchestration→GKE (Autopilot unless you need node control)
Stateless containers, scale-to-zero→Cloud Run
Event-driven single function→Cloud Run functions
Batch, fault-tolerant, cheap→Spot VMs on GCE / GKE
Sensible default (boot, general)→Balanced Persistent Disk
High sustained IOPS, tunable→Hyperdisk / SSD PD
Survive single-zone failure→Regional PD (2-zone, ~2x cost)
Ultra-fast ephemeral scratch→Local SSD (375 GB units, data lost on stop)
Cheap, throughput-oriented→Standard PD
Hands-off, per-pod billing, less ops→Autopilot
Custom node config, privileged pods, node SSH→Standard
Most new workloads→Autopilot (default recommendation)
Incremental disk backup, scheduled→Snapshot
Golden boot disk for new instances / MIG template→Image (custom image)
Storage & data
Hot / frequent→Standardno min duration
< 1× / month→Nearline30-day min
< 1× / quarter→Coldline90-day min
< 1× / year→Archive365-day min
All classes: same ms-latency access; you pay retrieval + early-deletion fees on the cold tiers.
Existing app's RDBMS→Cloud SQLRelational (MySQL/PG/SQLSvr) · vertical, read replicas
Global consistent transactions→SpannerRelational · horizontal, global, 99.999%
Demanding PostgreSQL→AlloyDBRelational (PG) · vertical+, HTAP
Mobile/web app data→FirestoreDocument · auto scale
Time-series, IoT, >1 TB, high write→BigtableWide-column · horizontal (nodes)
Analytics, billing export→BigQueryColumnar SQL warehouse · serverless
Google handles everything (default)→Google-managed
You manage keys in Cloud KMS (rotation, disable, audit)→CMEK
You supply raw keys, Google never stores them→CSEK
Async fan-out, event ingestion→Pub/Sub
Streaming + batch data pipelines→Dataflow
Sub-ms cache, sessions (Redis/Memcached)→Memorystore
Kafka compatibility, managed→Managed Service for Apache Kafka
Ad-hoc files from a machine→
gcloud storage cp / rsyncBig or scheduled from S3/other cloud/on-prem→Storage Transfer Service
Petabyte-scale, poor bandwidth→Transfer Appliance (ship it)
Networking
HTTP(S), global external→Global external Application LBGlobal · external
HTTP(S), regional internal→Internal Application LBRegional · internal
TCP/SSL proxy, global external→External proxy Network LBGlobal · external
TCP/UDP passthrough, regional external→External passthrough Network LBRegional · external
TCP/UDP, regional internal→Internal passthrough Network LBRegional · internal
| Option | Bandwidth | Path |
|---|---|---|
| Cloud VPN (HA) | ~1.5-3 Gbps/tunnel | Encrypted over internet |
| Partner Interconnect | 50 Mbps - 50 Gbps | Provider's network |
| Dedicated Interconnect | 10 / 100 Gbps | Private fiber |
| Direct / Carrier Peering | n/a | Google edge (not for VPC) |
Central net team, service projects attach→Shared VPC
Connect 2 VPCs, each self-managed (non-transitive)→VPC Peering
Auto subnets everywhere, quick start→Auto-mode VPC (not for prod)
Controlled CIDRs per region→Custom-mode VPC
Rule should follow a workload identity→Target service account
Ad-hoc grouping, anyone can set the tag→Network tag
Performance, global reach (default)→Premium
Lowest egress cost, regional traffic→Standard
Operations & cost
"Where is the request spending time?"→Cloud Trace
"What's burning CPU/memory?"→Cloud Profiler
"What's throwing exceptions?"→Error Reporting
"Which query is slow?"→Query Insights / index advisor
General GCP + multi-cloud provisioning→Terraform
Manage GCP resources from within Kubernetes→Config Connector
Template/package Kubernetes apps→Helm
Committed steady load, 1 or 3 yr→Committed Use Discounts
Running >25% of month, automatic→Sustained Use Discounts
Fault-tolerant batch, 60-91% off→Spot VMs
Right-size / idle recommendations→Active Assist / Recommender
Cloud Logging bucket→Default store, retention control
BigQuery→Query logs with SQL
Cloud Storage→Cheap long-term archive
Pub/Sub→Stream to external/SIEM