Measure before you optimize
Before changing infrastructure, make sure you can explain where the bill comes from and who owns it. Google Cloud Billing Reports can break spend down by project, service, region, SKU, and labels, while resource labels can support cost allocation.Start with four controls:
Map billing accounts, folders, and projects to business owners.
Use labels such as cost center, service, team, and environment where supported.
Give shared-platform costs an explicit allocation rule.
Define who approves exceptions for intentionally expensive workloads.
If BigQuery dominates, start with query behavior and pricing model. For GKE, examine workload requests, node utilization, autoscaling, and cluster mode. See our deeper guides on BigQuery cost optimization and GKE cost optimization for those paths.
Seven GCP cost optimization best practices
1. Rightsize compute resources
GCP rightsizing means matching provisioned CPU and memory to observed demand. Compute Engine machine type recommendations use recent utilization to suggest smaller or larger VM configurations. Google currently bases these recommendations on the last eight days of CPU and memory data.Validate latency, memory pressure, peaks, and failover needs before changing production resources.
2. Remove idle resources
Idle cleanup eliminates resources that still bill without useful work. Google provides idle VM recommendations and separate idle-resource recommendations for Persistent Disk volumes, IP addresses, and custom disk images.Review stale test environments, unattached disks, unused static IPs, old images, and resources left after migrations. Give temporary infrastructure an owner and expiration date.
3. Schedule non-production capacity
Development, test, and sandbox environments rarely need the same runtime schedule as production. Where requirements allow, stop or scale them down outside working hours.4. Optimize Cloud Storage lifecycle
Object Lifecycle Management can move eligible data to colder classes or delete objects when defined conditions are met.Nearline, Coldline, and Archive have minimum storage durations of 30, 90, and 365 days. Model retrieval fees, early deletion charges, operations, and Autoclass management costs before setting lifecycle rules. Google Cloud Storage pricing documents the current conditions and fees.
5. Use budgets as guardrails
Cloud Billing budgets track actual and forecasted spend and can trigger notifications or Pub/Sub workflows.An alerts-only budget does not cap usage or billing. Spend cap budgets are available in preview for supported services, but they are a separate control.
6. Use SUDs where eligible
Sustained Use Discounts apply automatically to eligible Compute Engine resources used for more than 25% of a billing month. Depending on machine type, the maximum monthly SUD is 20% or 30%.SUDs require no commitment and do not stack with CUDs on the same usage. Our GCP savings setup guide explains where SUDs, CUDs, and Spot VMs fit.
7. Cover durable usage with CUDs
Committed Use Discounts exchange a one-year or three-year commitment for lower rates on eligible usage.Resource-based CUDs suit predictable Compute Engine resources tied to a machine series and region. Compute flexible CUDs commit to eligible hourly spend and can apply across supported Compute Engine, GKE, and Cloud Run usage.
For current mechanics and rates, see our GCP CUD guide.
Prioritize by service and cost driver
Generic optimization lists become less useful as GCP environments diversify. Use the service generating spend to choose the next action.| Cost driver | First questions to ask |
|---|---|
| Compute Engine | Are VMs oversized, idle, on the wrong family, or suitable for SUDs, CUDs, or Spot? |
| GKE | Are Pod requests inflated, node pools underutilized, and autoscalers tuned? |
| BigQuery | Which queries, projects, or reservations drive bytes processed or slot spend? |
| Cloud Storage | Does access frequency match storage class and retention? |
| Networking | Which regions, egress paths, or designs drive transfer charges? |
For Cloud Run, compare request-based with instance-based billing. Request-based billing can fit sporadic traffic, while instance-based billing can fit steadier workloads or background processing.
Compare GCP discount options
| Option | Commitment | Current discount | Best fit |
|---|---|---|---|
| SUD | None | Up to 20% or 30% on eligible resources | Steady eligible Compute Engine usage |
| Resource-based CUD | 1 year | Up to 37% | Stable regional Compute Engine resources |
| Resource-based CUD | 3 years | Up to 55% for most machine types, up to 70% for some memory-optimized resources | Very stable resources |
| Compute flexible CUD | 1 year | SKU-specific, commonly 28% for many Compute Engine families and GKE | Portable eligible compute spend |
| Compute flexible CUD | 3 years | SKU-specific, commonly 46%, with some higher rates | Longer-lived eligible compute spend |
Update billing dashboards, BigQuery exports, and KPI logic that depend on the prior data model. Google’s migration timeline explains the account-specific migration paths, while its updated spend-based CUD documentation explains the new consumption model.
Decision rule: stable regional configuration generally points to resource-based CUDs; portable eligible spend may fit Compute flexible CUDs; interruptible workloads may warrant Spot evaluation.
Why traditional optimization stalls
Rightsizing, cleanup, scheduling, lifecycle rules, and budgets mainly reduce consumption. Once production workloads are reasonably efficient, the next question is what rate you pay for usage expected to remain.CUDs make that decision financially meaningful because commitments cannot simply be canceled after purchase. If demand falls or architecture changes, unused commitment can turn a nominal discount into a poor outcome.
Use this three-step commitment check:
Confirm the hourly or service-level baseline that repeats in billing data.
Exclude planned migrations, rightsizing, shutdowns, and known demand reductions.
Model conservative, expected, and downside demand before selecting coverage.
Build a scalable operating cadence
Scalable GCP cost optimization is a recurring review, not a quarterly cleanup.Track these metrics monthly:
Spend by service, project, team, and major SKU.
Month-over-month variance and anomalies.
Rightsizing and idle-resource backlog.
CUD coverage and utilization.
On-demand-equivalent durable baseline.
Upcoming migrations and commitment expirations.
For the planning gap, see our guide to why cloud cost forecasting breaks. For the broader operating model, see why cloud cost management fails.
How we manage commitment risk
We focus on the commitment layer rather than replacing provider-native optimization.With Flex Insured Commitment Program teams can get the 30–50% savings of a 1- or 3-year commitment with none of the commitment risk.For eligible Flex Commitments, our pricing is based on realized savings. We also provide cashback protection when a covered Flex Commitment costs more than equivalent on-demand usage, subject to current eligibility and terms. Cashback losses are calculated monthly and paid 90 days after accrual.
For eligible GCP Compute flexible CUD opportunities, we can help teams evaluate and manage coverage before they commit. Our cashback protection can help cover the difference when an eligible Flex Commitment costs more than equivalent on-demand usage, subject to current program eligibility and terms.
Conclusion
GCP cost optimization best practices work best in sequence. Establish allocation and ownership, identify the services driving spend, remove waste, optimize workload behavior, then evaluate the rate paid for durable production usage.If you can name your durable baseline, planned demand changes, current commitment coverage, and utilization, you are ready to evaluate additional CUD coverage. If you cannot, improve measurement first.
Review coverage, utilization, and eligible commitment opportunities before adding another long-term position.
Frequently asked questions
What are the main GCP cost optimization best practices?
They include cost allocation, rightsizing, idle cleanup, non-production scheduling, storage lifecycle management, budget guardrails, service-specific optimization, and appropriate use of SUDs, CUDs, or Spot capacity.
What is the difference between rightsizing and idle cleanup?
Rightsizing keeps a workload but changes its resource allocation. Idle cleanup removes resources that no longer provide useful work.
How do SUDs and CUDs differ?
SUDs apply automatically to eligible usage without a long-term commitment. CUDs require a one-year or three-year commitment and can provide deeper discounts. The same eligible usage does not receive both simultaneously.
How should teams choose between resource-based and Compute flexible CUDs?
Resource-based CUDs fit predictable regional Compute Engine configurations. Compute flexible CUDs fit eligible spend that benefits from portability across supported resources and services. Validate current SKU eligibility and rates before purchasing.
What should a mature GCP optimization program measure?
Measure spend allocation, service and SKU trends, waste backlog, CUD coverage, CUD utilization, durable baseline, anomalies, planned demand changes, and commitment expirations.