GCP's Unique Pricing Features
GCP has two pricing mechanisms that don't exist on AWS or Azure:
Sustained Use Discounts (SUD): Automatically applied when you run a VM for more than 25% of a month. No commitment required. Run a VM all month and GCP automatically discounts it 20–30%. This is free money — no action needed.
Per-second billing: GCP bills compute by the second (after a 1-minute minimum). For batch workloads that run for minutes, this is meaningfully cheaper than AWS/Azure's per-hour minimum.
Committed Use Discounts (CUDs)
CUDs are GCP's equivalent of Reserved Instances — commit to a resource level for 1 or 3 years in exchange for discounts. Two types:
| CUD Type | Commitment | Discount | Flexibility |
|---|---|---|---|
| Resource-based | Specific vCPU + memory in a region | Up to 57% | Low — tied to resource type |
| Spend-based | Minimum $/hour commitment | Up to 35% | High — any eligible resource |
| 3-year resource CUD | Specific resources, 3 years | Up to 70% | Very low |
Strategy: use resource-based CUDs for stable VM families (n2, c2, m2). Use spend-based CUDs for variable workloads. CUDs stack on top of Sustained Use Discounts — though not with Preemptible/Spot VMs.
Spot VMs (Preemptible): 60–91% Off
GCP Spot VMs (formerly Preemptible) offer the deepest discounts of any major cloud — up to 91% off on-demand for some machine types. GCP can preempt them with 30 seconds notice and a maximum runtime of 24 hours per instance.
For GKE workloads, mix Spot and standard node pools. Use node taints and tolerations to schedule batch/non-critical pods on Spot nodes and keep stateful/critical workloads on standard nodes.
BigQuery Cost Control
BigQuery is GCP's most common source of surprise bills. At $5/TB scanned, a single poorly written query against a large table can generate hundreds of dollars in one execution.
Use partitioned tables: Partition by date or ingestion time. Queries with a partition filter scan only relevant partitions instead of the entire table. A 10TB table partitioned by day: a query for one week scans ~200GB (~$1) instead of 10TB (~$50).
Use clustered tables: Cluster by frequently filtered columns (user_id, country, etc.). BigQuery skips blocks that don't match, reducing data scanned by 50–80%.
Preview data before querying: Use LIMIT with SELECT * on unfamiliar tables. Better: check estimated bytes processed in the query validator before running.
Set custom quotas: In BigQuery → Admin → Quotas, set per-user and per-project daily scan limits to prevent runaway queries.
Storage & Networking Costs
Cloud Storage classes: Standard ($0.02/GB/month) → Nearline ($0.01, accessed <30 days) → Coldline ($0.004, <90 days) → Archive ($0.0012, <1 year). Use lifecycle policies to automate transitions for logs, backups, and infrequently accessed data.
Egress costs: GCP charges $0.08–$0.12/GB for egress to the internet. Between GCP regions: $0.01–$0.08/GB. Within the same region but different zones: $0.01/GB each direction. Co-locate services in the same region to minimize cross-region traffic.
GKE Cost Optimization
GKE Autopilot mode charges only for pod resource requests (not node capacity) — eliminating node over-provisioning waste. For new clusters, Autopilot is worth evaluating vs Standard mode. For existing Standard clusters: enable cluster autoscaler, use Vertical Pod Autoscaler for right-sizing, and add Spot node pools for non-critical workloads.
GKE clusters on Standard mode have a cluster management fee of $0.10/hour ($73/month) per cluster — same as EKS. Consolidate small clusters where operationally feasible.
GCP Recommender
GCP Recommender (free, in Cloud Console) provides machine type right-sizing recommendations, idle VM detection, unused IP address flagging, and CUD purchase recommendations. It analyzes 8 weeks of usage data — more historical depth than AWS Compute Optimizer's 14 days. Check monthly and review the "High priority" recommendations first.