Skip to main content
Your progress
0 of 4 lessons complete0%
T0 / M0.5 / L2 OF 4 / Operator TIER / 10 min

GCP cost surface: quirks and gotchas

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.


TierOperator
JTBD”Read a GCP bill without applying AWS assumptions.”
PersonasFinOps Analyst · Platform Engineer
PrerequisitesM0.1, L1
Time10 minutes
Bloom verbDistinguish (Analyze) and Identify (Remember)

1. Concept

GCP’s cost surface looks like AWS at first glance, compute, storage, network, services, but several mechanics work differently. Teams migrating from AWS to GCP commonly assume parity and get caught.

The top 10 GCP services by typical spend share

Terminal window
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% Serverless
10 Cloud Run 1–4% Managed container service

The 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.

Terminal window
SCENARIO: 100 GB/day inter-zone traffic in a GKE/EKS cluster
AWS (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. The mitigation is zone-pinning (run a workload’s pods in a single zone, accept the reduced AZ-failure tolerance) or regional persistent disks (replicate at the storage layer instead of the network layer).

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 prices custom machine types per vCPU and per GB of RAM independently. This is finer-grained than AWS’s instance-family approach: a workload that needs 6 vCPU and 4 GB RAM can be priced exactly at 6+4, not rounded up to the nearest instance type. The implication: rightsizing on GCP is often more granular than on AWS.

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:

Terminal window
SERVICE MONTHLY % OF BILL NOTES
────────────────────────────────────────────────────────────────────────
Compute Engine (GKE nodes) $42,300 35% Cross-zone GKE
BigQuery $19,400 16% 8 TB/day scan
Cloud Storage $11,200 9% Data lake
GKE control plane $ 219 <1% 3 clusters × $0.10/hr × 730
Network egress $ 9,800 8% ← high: cross-zone GKE
Cloud SQL $ 7,400 6%
Cloud Logging $ 5,200 4% Above free tier
Cloud Monitoring $ 3,100 3% Custom metrics heavy
Other 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:

Terminal window
# Pull your top services by spend
bq query --use_legacy_sql=false --format=pretty '
SELECT
service.description AS service,
SUM(cost) AS spend
FROM `your_billing_dataset.gcp_billing_export_v1_*`
WHERE DATE(usage_start_time) BETWEEN "2026-04-01" AND "2026-04-30"
GROUP BY service
ORDER BY spend DESC
LIMIT 10
'

Identify:

  1. Where does your network egress sit as a percent?
  2. Is there cross-zone GKE traffic driving it?
  3. 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. Sustained-use discount applied automatically: workloads running 100% of the month get up to 30% off on Compute Engine
C. Currency error
D. Spot was applied

Show answer

Correct: B. 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. GCP raised network prices
B. The cluster runs across multiple zones. 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 zone-pinning or regional persistent disks.
C. DNS misconfiguration
D. The cluster is bigger on GCP

Show answer

Correct: B. This is the canonical GCP migration gotcha. The fix is workload zone-pinning or a different network architecture.

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
B. Add partition pruning (filter by date), select only needed columns, and consider reserved slots for predictable workloads. The dashboard may drop from $1,800/month to $50/month with no query change in semantics.
C. Use a different tool
D. Disable the dashboard

Show answer

Correct: B. 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

GCP-specific rules in the 450+ rule library include sustained-use opportunity detection (workloads on the edge of the SUD bracket), CUD coverage gap detection (steady workloads without commitments), and cross-zone egress alerts (high inter-zone traffic flagged for zone-pinning).


Glossary terms touched

Sustained-use discount · Committed Use Discount · Cross-AZ traffic · BigQuery slots · Persistent disk


Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Open curriculum. No login. No paywall. 237 lessons across 7 courses, three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
0 logins, paywalls, or marketing forms
open curriculum, public credential verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 30% average cloud cost cut· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 30% average cloud cost cut· 4 platforms · 1 console·