GCP Cost Optimisation - Committed Use Discounts, Spot VMs, and FinOps Strategies
UK organisations are increasingly adopting Google Cloud - particularly in fintech, data analytics, and AI/ML. Edinburgh’s growing AI ecosystem, London’s financial services sector, and Manchester’s tech corridor are all seeing accelerating GCP adoption. At the same time, many teams bring AWS or Azure cost habits to GCP, which leads to misunderstandings. GCP has its own pricing logic and its own savings mechanisms. Understanding them is the first step to controlling your budget.
This article covers every available cost optimisation lever on GCP - from automatic discounts through commitments to architectural strategies. All with concrete numbers and examples from our projects.
GCP Pricing Model - How It Differs from AWS
Before diving into optimisation, it is worth understanding the fundamental differences:
| Aspect | GCP | AWS |
|---|---|---|
| Billing granularity | Per-second billing (min. 1 minute) | Per-second (EC2), per-hour (some services) |
| Automatic discounts | Sustained Use Discounts (up to 30%) | None automatic |
| Commitments | Committed Use Discounts (1 or 3 years) | Reserved Instances / Savings Plans |
| Spot/Preemptible | Spot VMs (up to 91% discount) | Spot Instances (up to 90%) |
| Free tier | Always Free (e2-micro, 5GB storage, BigQuery 1TB/month) | Free Tier (12 months + always free) |
| Egress pricing | Tiered (Premium vs Standard network tier) | Flat per-GB (varies by region) |
The key difference: GCP automatically rewards sustained usage. You do not need to buy or reserve anything - if a virtual machine runs for the entire month, you pay less. This means some optimisation happens without your intervention.
Sustained Use Discounts (SUD) - Automatic Savings
Sustained Use Discounts are unique to GCP. They apply automatically to Compute Engine VMs (except E2 and A2/A3 families):
- 0-25% of the month: full price
- 25-50%: 20% discount on incremental hours
- 50-75%: 40% discount
- 75-100%: 60% discount
Effective discount at 100% usage: approximately 30% compared to on-demand pricing.
SUD operates at project and region level - GCP aggregates usage of all instances of the same type within a region. If you replace one machine with another of the same type (e.g. n2-standard-4 to another n2-standard-4), the discount does not reset.
What this means in practice: If you run a workload 24/7 on N1 or N2 machines, you receive a 30% discount with no commitment, no reservation, no activation. You simply pay less at the end of the month.
Limitations:
- Does not apply to E2 machines (cheapest) - but these qualify for GCP Flex CUD
- Does not apply to A2/A3 machines (GPU)
- Does not stack with Committed Use Discounts (CUD replaces SUD)
- Does not apply to Spot VMs
Committed Use Discounts (CUD) - Commitment for Savings
Committed Use Discounts are GCP’s equivalent of AWS Reserved Instances, but with an important difference: you commit to a minimum level of resource usage (vCPU + memory), not to a specific instance type.
How CUD Works
You purchase a commitment for 1 or 3 years:
- 1 year: 20-28% discount (depending on machine type)
- 3 years: 46-55% discount
The commitment is for a quantity of vCPU and GB of RAM in a given region. You are not locked to a specific instance type - you can change from n2-standard-4 to n2-standard-8 without losing the discount.
Resource-based vs Spend-based CUD
| CUD type | Commitment | Flexibility | Discount (3 years) |
|---|---|---|---|
| Resource-based | Specific quantity of vCPU + RAM in a region | Any machine type within the same family | 46-55% |
| Spend-based (Flex CUD) | Minimum spend $/hour | Any machine type, any region | Smaller (typically 20-25%) |
Spend-based (Flex CUD) is a newer model, available since 2024. It works like AWS Compute Savings Plans - you commit to a spend level, not to specific resources. It works across regions and machine families. Smaller discount, but greater flexibility.
Example Calculation
A fintech scaleup in London runs 3 n2-standard-8 instances (8 vCPU, 32 GB RAM each) 24/7 in europe-west2 (London region):
Without CUD (SUD only):
- On-demand price n2-standard-8: ~$0.3876/hour
- SUD 30%: effective price ~$0.2713/hour
- 3 machines x 730h: ~$594/month
With 3-year CUD (resource-based):
- Commitment: 24 vCPU + 96 GB RAM in europe-west2
- Discount: ~52%
- Effective price: ~$0.1860/hour
- 3 machines x 730h: ~$407/month
Saving: ~$187/month = ~$2,244/year = ~$6,732 over 3 years
For larger infrastructure (20-50 machines), savings reach tens of thousands of pounds annually.
When to Buy CUD
- Baseline load: workload running 24/7 for at least 3 months
- Stable size: you do not plan to significantly reduce infrastructure
- Region settled: you do not plan to migrate to another GCP region
When NOT to buy:
- Workload growing rapidly (doubling resources monthly) - buy smaller CUD and add more later
- You plan to migrate away from GCP
- Workload is seasonal (use Spot VMs + on-demand instead)
Spot VMs - Up to 91% Discount for Flexibility
Spot VMs (formerly Preemptible VMs) are virtual machines available at 60-91% discounts that GCP can terminate at any moment (with 30-second notice).
Differences Between Spot VM and Preemptible VM
Since 2022, GCP officially replaced Preemptible VMs with Spot VMs:
- Preemptible: max 24h lifetime, then automatic termination
- Spot: no lifetime limit (but GCP can terminate at any time)
In practice, Spot VMs are the improved version - use them instead of Preemptible.
Where to Use Spot VMs
| Workload | Suitable for Spot? | Notes |
|---|---|---|
| CI/CD pipelines | Yes | Runners on GKE with Spot node pool. Preemption = job restart. |
| Batch processing / ETL | Yes | Dataflow, Dataproc with Spot workers. Built-in checkpointing. |
| ML training | Yes (with checkpoints) | Vertex AI Training with Spot. Save checkpoints every N iterations. |
| Dev/test environments | Yes | If preemption does not block developers |
| GKE workloads (stateless) | Yes | Deployment with min. 2 replicas, one on Spot, one on on-demand |
| Databases (production) | No | Data loss / unavailability not acceptable |
| Critical single-instance workload | No | No redundancy = unavailability risk |
Spot on GKE - Node Pool Configuration
In GKE you can mix node pools - some on Spot, some on on-demand:
# GKE node pool - Spot VMs
apiVersion: container.google.com/v1
kind: NodePool
spec:
config:
spot: true
machineType: n2-standard-4
autoscaling:
enabled: true
minNodeCount: 0
maxNodeCount: 10
management:
autoRepair: true
autoUpgrade: true
Key point: set PodDisruptionBudget for workload on the Spot node pool so Kubernetes knows how many replicas can be unavailable simultaneously.
Active Assist - GCP’s Built-in Optimisation Recommendations
Active Assist is a set of ML-powered tools built into the GCP Console that analyse your usage and suggest savings:
Recommender
Three key recommenders for cost:
-
VM Rightsizing Recommender - analyses CPU and RAM usage over 8 days and suggests a smaller machine type if resources are underutilised
- Idle Resource Recommender - identifies resources that are not being used:
- Persistent disks without an attached instance
- Static IP addresses without assignment
- VMs with <1% CPU usage over the past week
- Unused snapshots older than 90 days
- Committed Use Discount Recommender - analyses the stability of your usage and suggests optimal CUD size
Billing Export to BigQuery
For deeper cost analysis, enable billing data export to BigQuery. This gives you:
- Costs per-project, per-service, per-SKU
- Daily/weekly/monthly trends
- Ability to build dashboards in Looker Studio
- Automatic anomaly alerts (Cloud Monitoring)
-- Top 10 most expensive services in the past month
SELECT
service.description AS service,
ROUND(SUM(cost), 2) AS total_cost
FROM `project.billing_dataset.gcp_billing_export_v1_*`
WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY service.description
ORDER BY total_cost DESC
LIMIT 10
Hidden GCP Costs - What to Watch For
Egress (Outbound Traffic)
GCP has two network tiers:
- Premium Tier (default): traffic routes through Google’s global network. More expensive egress (~$0.12/GB inter-continental).
- Standard Tier: traffic exits via the public internet closer to source. Cheaper (~$0.085/GB), but higher latency.
For UK organisations serving users primarily in the UK and Europe, the difference is modest. But if you serve data globally (CDN, public APIs), Standard Tier can deliver 20-30% savings on egress.
Cross-region Replication
If you use multi-regional storage (e.g. Cloud Storage in EU) - you pay for replication automatically. For data that does not require high availability across regions, use a single-region bucket (europe-west2 for London, europe-west1 for Belgium).
BigQuery
BigQuery charges per-query (volume of data scanned):
- On-demand: $6.25/TB of data scanned
- Slots (flat-rate): from $2,000/month for 100 slots
Common traps:
SELECT *on large tables - scans ALL columns. Always select specific columns.- No partitioning - query scans the entire table instead of one partition.
- Materialising views instead of using cache.
Cloud NAT
Similar to AWS NAT Gateway - Cloud NAT charges per hour of operation + per-GB of processed data. If your machines only need internet access for pulling packages (apt-get, pip), consider Private Google Access instead of NAT.
FinOps Strategies for GCP - Checklist
Level 1: Quick wins (week 1)
- Enable Billing Export to BigQuery
- Review Active Assist recommendations (VM Rightsizing, Idle Resources)
- Delete unused disks, snapshots, static IPs
- Enable automatic shutdown of dev/test environments outside working hours
- Verify BigQuery uses partitioning and clustering
Level 2: Medium-term (month 1-2)
- Identify baseline load and purchase CUD (resource-based or Flex)
- Deploy Spot VMs for CI/CD and batch processing
- Configure budgets and alerts in Cloud Billing
- Implement labels on all resources - per-team, per-environment, per-project
- Consider Standard Tier networking for non-critical workload
Level 3: Strategic (quarter)
- Implement showback/chargeback model between teams
- Automate lifecycle management (unused resources -> alert -> delete after 14 days)
- Analyse multi-cloud vs single-cloud costs (if also using AWS/Azure)
- Renegotiate CUD (if approaching end of commitment)
- Evaluate custom machine types vs predefined (are you paying for resources you do not use)
Custom Machine Types - Savings Through Granularity
GCP lets you define custom machine types with exact vCPU and RAM quantities. On AWS/Azure you must choose from predefined sizes - if you need 6 vCPU and 24 GB RAM, you buy 8 vCPU / 32 GB.
On GCP you can create a machine with exactly 6 vCPU / 24 GB RAM - and pay less.
When it is worth it:
- Workload that needs high RAM but low CPU (e.g. caching, in-memory databases)
- Workload that needs high CPU but low RAM (e.g. encoding, compression)
- Any situation where a predefined type wastes >20% of resources
Limitations:
- Custom machine types do not combine with resource-based CUD (only Flex CUD)
- Minimum: 1 vCPU, 0.9 GB RAM per vCPU
- Maximum: 96 vCPU, 624 GB RAM (N2)
GCP Regions for UK Organisations
GCP’s europe-west2 region is located in London. For UK organisations this is significant:
- Latency: <5ms to users in the UK (vs 15-25ms from Belgium or Netherlands)
- Data residency: data stays physically in the UK, simplifying UK GDPR and Data Protection Act 2018 compliance
- FCA requirements: for financial services firms - data processed within UK jurisdiction
- Cost: comparable to europe-west1 (Belgium), often identical
Financial services teams in Leeds and Edinburgh - where FCA regulatory scrutiny requires demonstrable data residency - find the London region particularly valuable for eliminating cross-border data transfer questions entirely.
Service availability in europe-west2:
- Compute Engine, GKE, Cloud Run - yes
- BigQuery - yes (multi-region EU covers UK)
- Cloud SQL, AlloyDB - yes
- Vertex AI - partially (not all models)
- Cloud Spanner - yes (multi-region)
If your organisation operates primarily in the UK and does not need global reach - use europe-west2 as your primary region. You save on latency and simplify regulatory compliance.
Savings Comparison - What Each Mechanism Delivers
| Mechanism | Typical discount | Commitment required | Risk |
|---|---|---|---|
| Sustained Use Discounts | Up to 30% | None (automatic) | None |
| CUD 1-year | 20-28% | 1 year, non-cancellable | Low (if baseline is stable) |
| CUD 3-year | 46-55% | 3 years, non-cancellable | Medium (lock-in) |
| Spot VMs | 60-91% | None | Preemption at any time |
| VM Rightsizing | 20-50% | None | None (if measured properly) |
| Idle Resource cleanup | 100% (elimination) | None | None |
| Custom Machine Types | 10-30% | None | None |
Combined, a typical organisation can achieve 40-60% reduction in GCP costs by applying a combination of these mechanisms. The key is starting with risk-free optimisations (rightsizing, idle cleanup, SUD) and gradually adding commitments (CUD) as usage stabilises.
How We Can Help
At Devopsity, we implement FinOps strategies on GCP for organisations across the UK and Europe - from scaleups to enterprise. A typical engagement includes:
- Audit of current GCP costs and identification of quick wins (1 day)
- Usage analysis and optimal CUD recommendation (1-2 days)
- Deployment of Spot VMs, autoscaling, and lifecycle policies (2-3 days)
- Configuration of cost dashboards and alerts (1 day)
If your GCP bills are growing faster than revenue - that is a signal you need a FinOps strategy, not a bigger budget.
Need a GCP cost audit?
Book a free 30-minute call. No pitch - a technical conversation about your environment.
Frequently Asked Questions
Can Committed Use Discounts be cancelled?
No. CUD is a non-cancellable commitment - you pay regardless of whether you use the resources. Buy CUD only for baseline load you are confident will persist. If workload is variable, consider Flex CUD (spend-based) - smaller discount, but more flexibility.
Are Spot VMs suitable for production?
Yes, if the architecture is resilient to preemption. Stateless workload on GKE with at least 2 replicas, batch processing with checkpoints, CI/CD - all work well on Spot. Databases and critical single-instance workload - no.
How long does it take to implement a FinOps strategy on GCP?
Quick wins (idle cleanup, rightsizing) - 1-2 days. Full strategy with CUD, Spot, dashboards, and processes - 2-4 weeks. The longest part is cultural change (engineers taking responsibility for costs in their environments).
Is the europe-west2 (London) region more expensive?
Not significantly. Prices are comparable to europe-west1 (Belgium) - differences are minimal (0-5%). In return you get lower latency for UK users and simplified data residency compliance.
How do CUD and SUD interact?
They do not stack - CUD replaces SUD. If you purchase CUD for a given resource, SUD is not applied. CUD provides a larger discount than SUD (55% vs 30%), so it is more beneficial regardless.