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.
| Prerequisites | M0.1, L1 |
| Time | 10 minutes |
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, on older machine families. An N1 VM running more than 25% of the month gets a discount that ramps up to 30% off at 100% of the month; N2, N2D and C2 VMs ramp up to 20%. E2 and most newer families (such as C3, C4 and N4) get no sustained-use discount. No purchase, no commitment, no opt-in. AWS and Azure have no equivalent. On the families that qualify, this is GCP’s quiet structural advantage: “always-on” there 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. AWS bills about $0.01 per GB out plus $0.01 per GB in, so cross-zone chatter costs about $0.02 per GB transferred. GCP bills about $0.01 per GiB on the sending (egress) side only, because Google does not charge for incoming traffic. 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): ~$30/month (100GB × 30 × $0.01, egress only)GCP costs about half as much here because it bills only the sending side, but both clouds charge for it; cross-zone chatter is a cost on either one. 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 TiB scanned (on-demand) or capacity pricing through BigQuery Editions, billed per slot-hour (about $0.04 to $0.10 per slot-hour pay-as-you-go in US regions, roughly $2,900 to $7,300 a month for 100 slots running all month). The old flat-rate slots were retired in 2023.
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 $21,381 18%────────────────────────────────────────────────────────────────────────TOTAL $120,000 100%The 8% network line is the cross-zone chatter cost. It is not a GCP-only surprise: GCP bills about $0.01 per GiB on egress only, and AWS bills the same cross-AZ traffic at about $0.01 per GB out plus $0.01 per GB in, so this workload would cost roughly twice as much 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: on eligible machine families, 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 moves a chatty K8s cluster from a single zone on AWS to three zones on GCP. The network line on the bill triples. Most likely cause:
A. Its traffic now crosses zones
B. GCP raised network prices
C. DNS misconfiguration
D. The cluster got bigger on GCP
Show answer
Correct: A. Cross-zone traffic is charged on both clouds: AWS bills about $0.01 per GB out plus $0.01 per GB in, and GCP about $0.01 per GiB on egress only (only same-zone traffic is free). GCP did not raise prices, and nothing suggests the cluster grew or DNS changed. Spreading the cluster across zones is what created the new charge, not the move to GCP. The fix is to keep the chatty parts in one zone, or to let regional persistent disks do the copying.
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 (70 resource types)
- Billing sync via BigQuery billing export (no fixed lag: billing sync runs daily and re-fetches the last 3 days)
- 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 684-rule library has GCP-specific rules, such as steady Compute Engine and Cloud SQL workloads with no committed use discount covering them.
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