Outcome
By the end of this lesson, you will be able to distinguish GCP’s three pricing levers (sustained-use, CUD, Spot) and identify the cross-zone traffic charge that surprises teams on both AWS and GCP.
| Tier | Operator |
| JTBD | ”Read a GCP bill without applying AWS assumptions.” |
| Personas | FinOps Analyst · Platform Engineer |
| Prerequisites | M0.1, L1 |
| Time | 10 minutes |
| Bloom verb | Distinguish (Analyze) and Identify (Remember) |
1. Concept
Google’s bill looks like Amazon’s from a distance: compute, storage, network, then services. Several of the mechanics underneath are different.
Teams arriving from AWS usually assume the two behave the same way, and get caught by three specific differences.
The top 10 GCP services by typical spend share
RANK SERVICE TYPICAL % NOTES───────────────────────────────────────────────────────────────────── 1 Compute Engine 30-50% VMs, equivalent of EC2 2 BigQuery 10-25% Storage + query cost 3 Cloud Storage 5-15% GCS buckets 4 GKE (Kubernetes Engine) 5-15% Node compute + control plane 5 Cloud SQL 5-10% Managed DB 6 Network egress 5-10% Internet + inter-region 7 Cloud Logging / Monitoring 2-8% The CloudWatch equivalent 8 Cloud Load Balancing 1-5% Forwarding rules + LCU equivalent 9 Cloud Functions 1-4% Serverless10 Cloud Run 1-4% Managed container serviceThe three GCP-specific pricing levers
Sustained-use discount (SUD). Automatic. Any Compute Engine VM running >25% of the month gets a discount that ramps up to 30% off for VMs running 100% of the month. No purchase, no commitment, no opt-in. AWS and Azure have no equivalent. This is GCP’s quiet structural advantage and is why “always-on” on GCP is meaningfully cheaper than AWS at the same rate-card price.
Committed Use Discount (CUD). GCP’s equivalent of AWS Reserved Instances or Azure Reservations, but with two flavors. Resource-based CUD commits to a specific machine family in a specific region: up to 57% off for 3-year. Spend-based CUD commits to a dollar amount per hour: up to 28% off, more flexible, applies across families.
Spot (the successor to Preemptible). Stateless workload pricing. 60-91% off rate card. Spot VMs have no maximum runtime: the old 24-hour cap was Preemptible-only. GCP can evict a Spot VM at any time (roughly 30 seconds notice) when it needs the capacity back, but a Spot VM that is never reclaimed keeps running. Best fit: batch jobs that checkpoint, K8s nodes that drain gracefully.
The cross-zone chatter trap
Traffic between availability zones within the same region is charged on both AWS and GCP: roughly $0.01 per GB in each direction (the receiving side also pays), so cross-zone chatter costs about $0.02 per GB round-trip. Only traffic that stays within a single zone is free. A K8s cluster spanning three zones with chatty service-to-service traffic can rack up significant network spend on either cloud. The trap is assuming cross-zone replication is free because same-zone traffic is.
SCENARIO: 100 GB/day inter-zone traffic in a GKE/EKS clusterAWS (us-east-1): ~$60/month (100GB × 30 × $0.02, cross-AZ each way)GCP (us-central1): ~$60/month (100GB × 30 × $0.02)The two clouds cost about the same here; cross-zone chatter is not an AWS-vs-GCP difference. Multiply across many services in a high-traffic cluster and the line item becomes non-trivial. There are two fixes. Keep the parts that talk to each other in one zone, accepting that losing that zone now takes the workload with it. Or use regional persistent disks, which copy the data between zones at the storage layer so your application does not have to send it over the network itself.
BigQuery’s two pricing axes
BigQuery is unique in having both storage and query as primary pricing axes:
- Storage: $0.02 per GB-month (active), $0.01 per GB-month (long-term, automatic after 90 days untouched)
- Query: $6.25 per TB scanned (on-demand) or flat rate via reserved slots ($2,000-$40,000+ per month per 100 slots)
The query-pricing trap: a poorly-written query (no partition pruning, SELECT *, no clustering) can scan terabytes per execution. One bad dashboard refreshing every 30 minutes can add hundreds of dollars a day. The fix is query review, partition discipline, and reserved slot capacity for predictable workloads.
Per-vCPU pricing nuance
Compute Engine lets you price a machine by the processor and the memory separately.
AWS sells fixed sizes, so a workload needing 6 processors and 4 GB of memory is rounded up to whichever standard size covers both. On GCP you pay for 6 and 4. In practice that means resizing on GCP can be done in smaller steps, and gets closer to what the workload actually needs.
Other GCP cost notes
- Persistent disks are charged per GB-month, with SSD and HDD tiers. Snapshots are charged per GB-month at $0.026 (cheaper than EBS).
- Cloud Logging has a free tier (50 GiB ingestion / month) which is generous compared to CloudWatch.
- Network premium tier is the default for egress (uses Google’s premium backbone). Switching to “standard tier” (public internet routing) saves up to 30% on egress, with some latency trade-off.
- GKE Autopilot charges per pod (vCPU-second and GB-second) instead of per-node, abstracting the cluster sizing: convenient but harder to optimize without per-pod visibility.
2. Demo
GCP-specific cost decomposition for a real GKE-heavy estate:
SERVICE MONTHLY % OF BILL NOTES────────────────────────────────────────────────────────────────────────Compute Engine (GKE nodes) $42,300 35% Cross-zone GKEBigQuery $19,400 16% 8 TB/day scanCloud Storage $11,200 9% Data lakeGKE control plane $ 219 <1% 3 clusters × $0.10/hr × 730Network egress $ 9,800 8% ← high: cross-zone GKECloud SQL $ 7,400 6%Cloud Logging $ 5,200 4% Above free tierCloud Monitoring $ 3,100 3% Custom metrics heavyOther long tail $20,880 18%────────────────────────────────────────────────────────────────────────TOTAL $120,000 100%The 8% network line is the cross-zone chatter cost. It is not a GCP-only surprise: AWS bills the same cross-AZ traffic at $0.01 per GB each direction, so this workload would cost about the same on AWS. The mitigation is the same on both clouds: pin the workloads to a single zone (accept reduced AZ-failure tolerance) or use regional persistent disks instead of cross-zone replication.
3. Hands-on (6 min)
If your organization runs GCP:
# Pull your top services by spendbq query --use_legacy_sql=false --format=pretty 'SELECT service.description AS service, SUM(cost) AS spendFROM `your_billing_dataset.gcp_billing_export_v1_*`WHERE DATE(usage_start_time) BETWEEN "2026-04-01" AND "2026-04-30"GROUP BY serviceORDER BY spend DESCLIMIT 10'Identify:
- Where does your network egress sit as a percent?
- Is there cross-zone GKE traffic driving it?
- Are sustained-use discounts visible in the cost reduction column?
4. Knowledge check
Q1
A workload that ran 24/7 on AWS at $X/month is migrated to GCP at the same rate-card price. After one month the GCP bill is lower than $X. Most likely reason:
A. GCP undercharged
B. Currency error
C. Spot pricing was applied on GCP but not on AWS, which is why the two figures differ from each other so much
D. Sustained-use discount applied automatically: workloads running 100% of the month get up to 30% off on Compute Engine
Show answer
Correct: D. SUD is automatic, no commitment, no opt-in. This is GCP’s structural advantage for always-on workloads.
Q2
A team migrates a chatty K8s cluster from AWS to GCP. The network egress line on the bill triples. Most likely cause:
A. The cluster runs across multiple zones
B. GCP raised network prices
C. DNS misconfiguration
D. The cluster is simply bigger on GCP
Show answer
Correct: A. Cross-zone traffic is charged at about $0.01 per GB each direction on both AWS and GCP (only same-zone traffic is free). The fix is to keep the chatty parts in one zone, or to let regional persistent disks do the copying. It is the single most common surprise when a workload moves to GCP.
Q3
A BigQuery dashboard refreshes every 30 minutes by running SELECT * FROM raw_events. Monthly cost is $1,800. Most defensible fix:
A. Increase the BigQuery budget to cover the extra query spend the dashboard generates on each and every single day
B. Use a different tool
C. Add partition pruning (filter by date), select only needed columns, and consider reserved slots for predictable workloads
D. Disable the dashboard
Show answer
Correct: C. The dashboard may drop from $1,800/month to $50/month with no query change in semantics. BigQuery’s on-demand pricing punishes lazy queries. Partition pruning + column projection + clustering can drop scan cost by 1-3 orders of magnitude.
5. Apply
ZopNight’s GCP integration handles:
- Resource discovery via Cloud Asset Inventory (88 resource types)
- Billing sync via BigQuery billing export (24h lag)
- Metrics enrichment via Cloud Monitoring for size + count on GCS and Artifact Registry
- Activity logs via Cloud Logging for the “Recent Activity” tab in evidence panels
The 450+ rule library has GCP-specific rules: workloads sitting just below a sustained-use threshold that a small change would push over, steady workloads with no commitment covering them, and heavy traffic between zones that is worth moving into one.
Related lessons
- L3: Azure cost surface (next)
- L4: Multi-cloud governance
- T0.M0.4.L2: Billing cost and the discount stack
Glossary terms touched
Sustained-use discount · Committed Use Discount · Cross-AZ traffic · BigQuery slots · Persistent disk