Skip to main content

Decision Tables

Every "which X do I pick?" in one place. These matrices ARE the exam.

Compute & containers

DECISIONWhich compute?
Full OS control, custom kernels, lift-and-shiftCompute Engine
Kubernetes API, multi-service orchestrationGKE (Autopilot unless you need node control)
Stateless containers, scale-to-zeroCloud Run
Event-driven single functionCloud Run functions
Batch, fault-tolerant, cheapSpot VMs on GCE / GKE
Pick this when: containers without cluster ops → Cloud Run; full k8s control → GKE; OS-level control / lift-and-shift → Compute Engine; single-purpose event handler → Cloud Run functions
DECISIONWhich disk?
Sensible default (boot, general)Balanced Persistent Disk
High sustained IOPS, tunableHyperdisk / SSD PD
Survive single-zone failureRegional PD (2-zone, ~2x cost)
Ultra-fast ephemeral scratchLocal SSD (375 GB units, data lost on stop)
Cheap, throughput-orientedStandard PD
Pick this when: default → balanced PD; high IOPS/DB → SSD PD or Hyperdisk; survive a zone outage → regional PD; scratch/cache only → local SSD; archival → standard PD
DECISIONGKE Autopilot or Standard?
Hands-off, per-pod billing, less opsAutopilot
Custom node config, privileged pods, node SSHStandard
Most new workloadsAutopilot (default recommendation)
Pick this when: want Google to run nodes and pay per-pod → Autopilot; need node-level control (custom machine types, DaemonSets, GPUs, SSH) → Standard
DECISIONSnapshot or image?
Incremental disk backup, scheduledSnapshot
Golden boot disk for new instances / MIG templateImage (custom image)
Pick this when: back up / restore a disk's data → snapshot; template a boot disk to launch many VMs → image

Storage & data

DECISIONWhich storage class?
Hot / frequentStandardno min duration
< 1× / monthNearline30-day min
< 1× / quarterColdline90-day min
< 1× / yearArchive365-day min

All classes: same ms-latency access; you pay retrieval + early-deletion fees on the cold tiers.

Pick this when: access < once/year → Archive; < once/quarter → Coldline; < once/month → Nearline; otherwise Standard
DECISIONWhich database?
Existing app's RDBMSCloud SQLRelational (MySQL/PG/SQLSvr) · vertical, read replicas
Global consistent transactionsSpannerRelational · horizontal, global, 99.999%
Demanding PostgreSQLAlloyDBRelational (PG) · vertical+, HTAP
Mobile/web app dataFirestoreDocument · auto scale
Time-series, IoT, >1 TB, high writeBigtableWide-column · horizontal (nodes)
Analytics, billing exportBigQueryColumnar SQL warehouse · serverless
Pick this when: relational + regional → Cloud SQL; relational + global/horizontal → Spanner; Postgres-compatible + demanding → AlloyDB; mobile/web docs → Firestore; huge key-wide-column throughput → Bigtable; analytics/SQL-on-everything → BigQuery
DECISIONWhich encryption keys?
Google handles everything (default)Google-managed
You manage keys in Cloud KMS (rotation, disable, audit)CMEK
You supply raw keys, Google never stores themCSEK
Pick this when: do nothing → Google-managed; need control/rotation/audit in Cloud KMS → CMEK; must hold keys yourself off-platform → CSEK
DECISIONMessaging / in-memory?
Async fan-out, event ingestionPub/Sub
Streaming + batch data pipelinesDataflow
Sub-ms cache, sessions (Redis/Memcached)Memorystore
Kafka compatibility, managedManaged Service for Apache Kafka
Pick this when: decouple services async → Pub/Sub; stream/ETL processing → Dataflow; cache or session store → Memorystore
DECISIONWhich data-movement tool?
Ad-hoc files from a machinegcloud storage cp / rsync
Big or scheduled from S3/other cloud/on-premStorage Transfer Service
Petabyte-scale, poor bandwidthTransfer Appliance (ship it)
Pick this when: a few files → gcloud storage cp; large/recurring cloud-to-GCS → Storage Transfer Service; petabytes offline → Transfer Appliance

Networking

DECISIONWhich load balancer?
HTTP(S), global externalGlobal external Application LBGlobal · external
HTTP(S), regional internalInternal Application LBRegional · internal
TCP/SSL proxy, global externalExternal proxy Network LBGlobal · external
TCP/UDP passthrough, regional externalExternal passthrough Network LBRegional · external
TCP/UDP, regional internalInternal passthrough Network LBRegional · internal
Pick this when: HTTP(S) + global → Global external Application LB; TCP/SSL non-HTTP + global → external proxy Network LB; regional pass-through (preserve client IP / UDP) → passthrough Network LB; internal traffic → the internal variants of the same
DECISIONWhich hybrid connectivity?
OptionBandwidthPath
Cloud VPN (HA)~1.5-3 Gbps/tunnelEncrypted over internet
Partner Interconnect50 Mbps - 50 GbpsProvider's network
Dedicated Interconnect10 / 100 GbpsPrivate fiber
Direct / Carrier Peeringn/aGoogle edge (not for VPC)
Pick this when: cheap/fast to set up, over internet → Cloud VPN (HA); dedicated SLA bandwidth ≥ 10 Gbps → Dedicated Interconnect; lower bandwidth via provider → Partner Interconnect; only need Google APIs → Private Google Access
DECISIONShared VPC or VPC Peering?
Central net team, service projects attachShared VPC
Connect 2 VPCs, each self-managed (non-transitive)VPC Peering
Auto subnets everywhere, quick startAuto-mode VPC (not for prod)
Controlled CIDRs per regionCustom-mode VPC
Pick this when: one team owns central network for many projects → Shared VPC; two independently-owned VPCs need private connectivity → Peering
DECISIONFirewall target: tag or service account?
Rule should follow a workload identityTarget service account
Ad-hoc grouping, anyone can set the tagNetwork tag
Pick this when: stable identity, least privilege → service account; quick/flexible grouping → network tag
DECISIONPremium or Standard network tier?
Performance, global reach (default)Premium
Lowest egress cost, regional trafficStandard
Pick this when: global users, lowest latency, Google backbone → Premium; regional, cost-sensitive → Standard

Operations & cost

DECISIONWhich diagnostic tool?
"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
Pick this when: latency across services → Trace; CPU/memory hot spots → Profiler; exceptions → Error Reporting; slow SQL → Query Insights
DECISIONWhich IaC tool?
General GCP + multi-cloud provisioningTerraform
Manage GCP resources from within KubernetesConfig Connector
Template/package Kubernetes appsHelm
Pick this when: multi-cloud / standard → Terraform; manage GCP via k8s CRDs → Config Connector; package k8s apps → Helm
DECISIONWhich cost lever?
Committed steady load, 1 or 3 yrCommitted Use Discounts
Running >25% of month, automaticSustained Use Discounts
Fault-tolerant batch, 60-91% offSpot VMs
Right-size / idle recommendationsActive Assist / Recommender
Pick this when: predictable steady usage → CUD; already-on always-running → SUD (automatic); interruptible batch → Spot; find waste → Active Assist
DECISIONWhere should logs go?
Cloud Logging bucketDefault store, retention control
BigQueryQuery logs with SQL
Cloud StorageCheap long-term archive
Pub/SubStream to external/SIEM
Pick this when: long retention/compliance → log bucket; SQL analytics → BigQuery; cheap archive → GCS; stream to other systems → Pub/Sub