Skip to main content
All posts

Guide

How to Reduce GCP Costs: What Each Google Cloud Fix Saves, With Real Prices

Why the Google Cloud bill grows, how to find what drives it, what each fix saves at Google's own prices in Iowa and São Paulo, and the budgets and spend caps that keep it down.

Bruno RochaFounder and CEO
Published
Read time
16 min
Ler em portuguêsComo reduzir custos no Google Cloud: preços de São Paulo, em dólar e em reais

Find the services that drive the bill, delete what Google's Recommender flags as idle, fix the defaults that charge you every month, commit to the VM usage you always run, move work that can restart to Spot VMs, and set budgets so a jump in spend reaches you before the invoice does. The same items come up on most accounts: detached disks and unused static IP addresses, non-production VMs running all night, pd-ssd where pd-balanced would do, cold data in Standard storage, logs nobody reads, BigQuery queries that scan whole tables, Premium Tier egress, and steady VMs on on-demand rates.

Every price below is Google's own, read on October 28, 2026, for us-central1 (Iowa) and southamerica-east1 (São Paulo), at 730 hours a month, the figure Google's pricing page uses for its Monthly view. Spot prices move, so the Spot figures are a snapshot from that day.

Why is my Google Cloud bill so high?

Check four places first: resources that bill after nobody needs them, on-demand rates for VMs that run all month, Premium Tier egress (the default), and services billed by volume, such as Cloud Logging and BigQuery. A detached 500 GB pd-balanced disk costs $50.00 a month in us-central1 (Disk pricing). An unused static IP bills $7.30 a month, and Google counts an IP attached to a VM as in use "whether the instance is running or stopped" (Network pricing), so stopping the VM keeps the address on the bill. Region moves every price: an e2-standard-4 costs $97.84 a month on demand in us-central1 and $155.30 in São Paulo, 58.7% more (machine pricing).

How do I find what's driving my Google Cloud bill?

  • Export billing data to BigQuery. Create a dataset in a project with billing turned on, enable the BigQuery Data Transfer Service API (the pricing export needs it), then choose that dataset for each export type on the billing export page. The detailed export works at resource level, and a FOCUS export is in Preview. Data starts within a few hours; a backfill of the current and previous month can take up to five days.
  • Open the FinOps hub under Billing for realized and potential savings, your CUD optimization rate and a FinOps score. Its estimates don't consider the CUDs you already hold, and its realized savings leave out idle VMs, disks and IP addresses you turned off.
  • Read Recommender. It covers idle VMs, disks, IP addresses, custom images, GKE clusters and reservations, idle and overprovisioned Cloud SQL, machine types and CUDs.
  • On GKE, turn on cost allocation to split cluster cost by namespace and label. It leaves the GKE bill as it is, and it can raise your BigQuery storage and query costs.

Which fixes cut the most, and what do they save?

Delete the idle disks, IP addresses and VMs that Recommender flags
Saving on that line
100%
Worked example, us-central1
500 GB pd-balanced: $50.00 a month; unused static IP: $7.30
São Paulo
$75.00; $10.95
Move cold data to Coldline or Archive
Saving on that line
80% to 94% against Standard
Worked example, us-central1
10 TiB: $204.80 a month to $40.96 (Coldline) or $12.29 (Archive)
São Paulo
$358.40 to $71.68 or $30.72
Partition BigQuery tables and filter on the partition
Saving on that line
92% in this example
Worked example, us-central1
100 queries a month on a 12 TiB table: $7,500 to $625
São Paulo
$13,500 to $1,125
Run work that can restart on Spot VMs
Saving on that line
Up to 91%; 40% in Iowa and 79% in São Paulo on October 28, 2026
Worked example, us-central1
e2-standard-4: $97.84 to $58.71 a month
São Paulo
$155.30 to $32.34
Exclude noisy logs before they reach a bucket
Saving on that line
In proportion to what you exclude
Worked example, us-central1
500 GiB a month, 60% excluded: $225.00 to $75.00
São Paulo
Not priced here
Schedule non-production VMs for working hours
Saving on that line
64% of VM hours
Worked example, us-central1
e2-standard-4: $97.84 to $34.85 a month
São Paulo
$155.30 to $55.31
Commit with a resource-based CUD, 1 or 3 years
Saving on that line
37% or 55%
Worked example, us-central1
e2-standard-4: $97.84 to $61.64 or $44.03
São Paulo
$155.30 to $97.84 or $69.89
Commit with a Compute flexible CUD, 1 or 3 years
Saving on that line
28% or 46%
Worked example, us-central1
e2-standard-4: $97.84 to $70.44 or $52.83
São Paulo
$155.30 to $111.82 or $83.86
Move internet egress to Standard Tier
Saving on that line
43% in Iowa, 49% in São Paulo
Worked example, us-central1
1 TiB a month: $122.76 to $70.04
São Paulo
$194.56 to $98.88
Move pd-ssd to pd-balanced or Hyperdisk Balanced
Saving on that line
41% to 53%
Worked example, us-central1
500 GB: $85.00 to $50.00 or $40.00
São Paulo
$127.50 to $75.00 or $63.50
Rightsize an n2-standard-4 to an e2-standard-4
Saving on that line
31%
Worked example, us-central1
$141.79 to $97.84 a month
São Paulo
$225.07 to $155.30
Let sustained use discounts apply on N2
Saving on that line
Up to 20%, none on E2
Worked example, us-central1
n2-standard-4 all month: $141.79 to $113.43
São Paulo
Not priced here

Google Cloud pricing pages, read October 28, 2026, linked in the sections below. 730 hours a month. Percentages apply to the line each fix touches.

Rank the fixes by the dollars on your own bill. A 28% flexible CUD on a large compute line can save more than a 94% cut on a small bucket, so delete and rightsize first, then commit to what's left.

Are you paying on-demand rates for VMs that run all month?

Google sells two kinds of committed use discount (CUD), and you can't cancel either once you buy it. A resource-based CUD covers one machine series in one region: up to 37% off for 1 year and 55% for 3 (70% on memory-optimized machines). A Compute flexible CUD commits spend at the billing account level and covers Compute Engine, GKE and Cloud Run in any project and region of that account: 28% or 46% off on most Compute Engine series and GKE, and 17% on Cloud Run functions and request-billed Cloud Run services (flexible CUD rates).

e2-standard-4, us-central1
On-demand
$97.84
Flexible 1 yr
$70.44
Flexible 3 yr
$52.83
Resource 1 yr
$61.64
Resource 3 yr
$44.03
Spot, Oct 28, 2026
$58.71
n2-standard-4, us-central1
On-demand
$141.79
Flexible 1 yr
$102.09
Flexible 3 yr
$76.57
Resource 1 yr
$89.33
Resource 3 yr
$63.81
Spot, Oct 28, 2026
$85.05
e2-standard-4, São Paulo
On-demand
$155.30
Flexible 1 yr
$111.82
Flexible 3 yr
$83.86
Resource 1 yr
$97.84
Resource 3 yr
$69.89
Spot, Oct 28, 2026
$32.34
n2-standard-4, São Paulo
On-demand
$225.07
Flexible 1 yr
$162.05
Flexible 3 yr
$121.54
Resource 1 yr
$141.84
Resource 3 yr
$101.32
Spot, Oct 28, 2026
$51.88

Monthly price at 730 hours, from Google's general-purpose machine and Spot VM pricing pages. On demand, an e2-standard-4 in us-central1 costs $0.134 an hour.

Google applies resource-based CUDs first, then flexible ones, then on-demand rates, and "discount types cannot be combined" (Compute Engine pricing). A resource-based commitment bills its monthly fee whether the resources run or not. Under the new spend-based model you "commit to the discounted spend (the actual amount you pay)", and unused commitment "does not carry over to the next hour". GKE Autopilot and Cloud Run spend-based CUDs are no longer for sale; the Compute flexible CUD covers that spend.

Pick resource-based when the series and region will stay for the term, and flexible when your fleet moves or GKE and Cloud Run carry part of the spend. In São Paulo, a 1-year resource-based CUD on an e2-standard-4 costs $97.84 a month, the on-demand price of the same machine in Iowa.

Do sustained use discounts already cover you?

Sustained use discounts (SUDs) apply with no action once a VM runs more than 25% of the month: up to 20% off for N2, N2D and C2, up to 30% for N1, M1 and M2, and nothing for E2. Google's page adds a limit: "Only Self-serve (or Online) Cloud Billing accounts are eligible for receiving SUDs." An n2-standard-4 running all month in us-central1 drops from $141.79 to $113.43. A 1-year flexible CUD ($102.09) or resource-based CUD ($89.33) beats that, and the two don't stack.

Can the workload run on Spot VMs?

Spot VMs cost up to 91% less than on-demand, and Compute Engine "might preempt Spot VMs at any time". By default you get no dedicated notice, only a best-effort shutdown period of up to 30 seconds; when you create the VM, you can set a 120-second notice, which Google recommends for workloads that need longer to shut down. Spot VMs get no CUDs or SUDs. Preemptible VMs are the older model, and Spot prices apply to both. On October 28, 2026, an e2-standard-4 on Spot cost $58.71 a month in us-central1, 40% off, and $32.34 in São Paulo, 79% off and cheaper in dollars than Iowa (Spot pricing). Move batch jobs, CI runners and stateless workers first.

Which idle VMs, disks and IP addresses is Recommender flagging?

Recommender flags a VM as idle from its CPU and network use over 14 days by default. It flags disks and IPs after 15 days: a blank disk never attached (delete it, 100% saved), a disk detached for 15 days (snapshot it, then delete it, 35% to 92% saved), and an external IP unattached for 15 days (delete it). Recommendations refresh every 24 hours and cost nothing. Each forgotten 500 GB pd-balanced disk is $50.00 a month, and each idle IP $7.30. Keep your own record of these deletions: the FinOps hub's realized savings "don't include savings from turning off idle resources".

Are your VMs bigger than they need to be?

Machine type recommendations read Cloud Monitoring metrics "over the previous 8 days". Install the Ops Agent so they see memory, and look for month-end peaks those 8 days miss. Moving an n2-standard-4 to an e2-standard-4 in us-central1 takes it from $141.79 to $97.84 a month (our arithmetic from Google's prices). Measured against the N2's SUD price of $113.43, the E2 still saves $15.59.

Do non-production VMs run all night?

An instance schedule starts and stops VMs on a timetable, for example "only during working hours". VMs can start or stop up to 15 minutes late, so space the operations at least 15 minutes apart, and give managed instance groups scaling schedules instead. An e2-standard-4 running 12 hours on weekdays bills about 260 hours a month instead of 730: $34.85 instead of $97.84 in us-central1, $55.31 instead of $155.30 in São Paulo. A stopped VM still bills its attached disks, snapshots and external IP addresses.

Are your disks on the right type?

In us-central1, a GiB-month costs $0.04 on pd-standard, $0.10 on pd-balanced, $0.17 on pd-ssd and $0.08 on Hyperdisk Balanced, which charges extra above 3,000 IOPS and 140 MiB/s; São Paulo charges $0.06, $0.15, $0.255 and $0.127 (Disk pricing). For 500 GB, that's $85.00 a month on pd-ssd, $50.00 on pd-balanced and $40.00 on Hyperdisk Balanced. Google recommends Hyperdisk Balanced "for most workloads", but on E2, N1, N2, N2D and C2D machines you have to "contact your account team" to use it. It's self-serve on C3, C4, N4 and other newer series.

You can't change an existing disk's type. Snapshot it, create a new disk from the snapshot, then delete the original, or, for a move to Hyperdisk, let gcloud compute disks convert run those steps. Mind the defaults: the console creates pd-balanced, and the gcloud CLI and the API create pd-standard.

Is Cloud Storage data in the right class?

Standard
us-central1, per GiB-month
$0.02
São Paulo
$0.035
Minimum storage duration
None
Retrieval per GiB
$0
Nearline
us-central1, per GiB-month
$0.01
São Paulo
$0.02
Minimum storage duration
30 days
Retrieval per GiB
$0.01
Coldline
us-central1, per GiB-month
$0.004
São Paulo
$0.007
Minimum storage duration
90 days
Retrieval per GiB
$0.02
Archive
us-central1, per GiB-month
$0.0012
São Paulo
$0.003
Minimum storage duration
365 days
Retrieval per GiB
$0.05

Regional buckets, from Google's Cloud Storage pricing page, October 28, 2026.

For 10 TiB in us-central1, you pay $204.80 a month in Standard, $102.40 in Nearline, $40.96 in Coldline and $12.29 in Archive; in São Paulo, $358.40, $204.80, $71.68 and $30.72. Delete an object early and Google bills "as if the object was stored for the minimum duration", though class changes made by lifecycle rules or Autoclass don't trigger that charge (Cloud Storage pricing). Lifecycle rules apply SetStorageClass or Delete, and each class change bills as a Class A operation, which adds up when most objects are under 1 MB. Autoclass moves objects to Nearline after 30 days without access and leaves them there, because Nearline is its default terminal class. Set Archive as the terminal class and objects go on to Coldline after 90 days and Archive after 365. Autoclass charges no retrieval fees and costs $0.0025 per 1,000 objects for each 30 days.

How much is Cloud Logging charging you for logs nobody reads?

Cloud Logging charges $0.50 per GiB streamed into log buckets, 30 days of storage included, after 50 free GiB per project each month, and $0.01 per GiB-month for retention past 30 days. An entry that matches an exclusion filter "isn't routed", so it never lands in a bucket you pay for. A project streaming 500 GiB a month pays $225.00; exclude 300 GiB of debug and health-check logs and it pays $75.00. Set retention per bucket, from 1 to 3650 days, and send each entry to one bucket: routing it to two can bill its storage twice.

Do BigQuery queries scan more than they need to?

On-demand queries cost $6.25 per TiB scanned in us-central1 and $11.25 in São Paulo, after a free TiB each month (BigQuery pricing). Partitioning cuts "the number of bytes that a query reads". On a 12 TiB table holding 12 months, a full scan costs $75.00 and a query pruned to one month about $6.25. Run it 100 times a month and you pay $7,500 against $625 in us-central1, or $13,500 against $1,125 in São Paulo (our arithmetic, free TiB left out).

Google's cost guide adds four habits: preview a table instead of querying it to explore data, set maximum bytes billed so an oversized query "fails without incurring a charge", dry-run large queries, and stop counting on LIMIT, because "for non-clustered tables, a LIMIT clause won't reduce compute costs." For steady load, Standard edition slots cost $0.04 a slot-hour, or $0.032 on a 3-year commitment, and 100 slots running all month cost $2,920.00 (BigQuery pricing).

Is GKE billing you for capacity your Pods don't use?

GKE charges $0.10 per cluster per hour, $73.00 a month, and gives each billing account $74.40 a month in credits, enough for one zonal Standard or Autopilot cluster (GKE pricing). Standard bills its nodes as Compute Engine VMs, however full they run. Autopilot bills Pod requests, at $0.0445 per vCPU-hour and $0.0049225 per GiB-hour in us-central1, charges nothing for "unallocated space" or unmodified system DaemonSet Pods, and raises requests that fall below its minimums. Pods requesting 4 vCPU and 16 GiB cost $187.43 a month on Autopilot, or $56.08 on Autopilot Spot; an e2-standard-4 node costs $97.84 on Standard. Compare the two against how full your nodes run today.

On Standard, the cluster autoscaler removes underutilized nodes down to the pool minimum, and its optimize-utilization profile "scales down the cluster more aggressively" than the default balanced one. For Pod rightsizing, see The best Kubernetes cost management tools.

What do egress and Cloud NAT cost you?

Ingress is free. Premium Tier, the default, charges $0.12 per GiB from us-central1 to North America for the first TiB, and $0.19 to South America; from São Paulo it charges $0.19 to every destination group except China (Network pricing). Standard Tier gives you 200 GiB a month free, then charges $0.085 per GiB from us-central1 or $0.12 from São Paulo. For 1 TiB a month to your users, that's $122.76 on Premium against $70.04 on Standard in us-central1, and $194.56 against $98.88 in São Paulo. Cloud NAT adds $0.0014 per VM-hour up to 32 VMs, $0.045 per GiB processed and $0.005 an hour per NAT IP: 14 VMs, one IP and 1 TiB processed come to $64.04 a month.

Drop one AWS habit here. A Public NAT gateway "never performs NAT for traffic sent to the select external IP addresses for Google APIs and services" (Cloud NAT and other products), so your Cloud Storage and BigQuery traffic pays no NAT processing. On AWS, S3 traffic through a NAT gateway does, and our AWS guide opens with that fix.

How much more does São Paulo cost than us-central1?

e2-standard-4 on demand, per month
us-central1
$97.84
São Paulo
$155.30
Difference
+58.7%
e2-standard-4 on Spot, October 28, 2026
us-central1
$58.71
São Paulo
$32.34
Difference
-45%
pd-balanced, per GiB-month
us-central1
$0.10
São Paulo
$0.15
Difference
+50%
Cloud Storage Standard, per GiB-month
us-central1
$0.02
São Paulo
$0.035
Difference
+75%
BigQuery on-demand, per TiB scanned
us-central1
$6.25
São Paulo
$11.25
Difference
+80%
Premium Tier egress, first TiB, per GiB
us-central1
$0.12 to North America
São Paulo
$0.19 to every group but China
Difference
+58%

Google Cloud pricing pages, read October 28, 2026. Spot prices change; re-check them before you plan.

Most lines run 50% to 80% higher in São Paulo, and Spot ran the other way that day. If a batch job's data can live in another region, price the job in us-central1 too, and add the $0.14 per GiB it costs to send data from North America to South America. Billing accounts with an address in Brazil pay in reais to Google Cloud Brasil, whichever region they use (Google's Brazil billing FAQ). The Portuguese edition of this guide covers BRL prices, Pix and boleto.

How do I stop the Google Cloud bill from growing again?

How do you set a budget and its alerts?

  • In Billing, open Budgets & alerts, choose the Cloud Billing account and click Create budget. You need the Billing Account Costs Manager or Billing Account Administrator role, or project-scoped billing permissions for a project budget.
  • Scope it to the whole account or to chosen folders, projects, services or labels, and decide whether CUDs and other credits count.
  • Set the amount, a figure of your own or last period's spend, over a month, a quarter, a year or a custom range.
  • Keep or change the thresholds: 50%, 90% and 100% by default, each on actual or forecasted cost.
  • Send the alerts by email to billing admins and users, or through Cloud Monitoring channels and Pub/Sub into automation, such as a Slack message or a script that turns off billing on a project.
  • Finish, and expect the first alert to take several hours. Google advises a budget below your available funds, because usage reports arrive late.

Google's budgets page warns that an alerts-only budget "doesn't automatically cap Google Cloud ... usage or spending."

Can you cap spend on Gemini, Vertex AI and Cloud Run?

Yes. A spend cap budget pauses one service in one project for the rest of the month once gross estimated cost passes 100%, with alerts at 50%, 80% and 100% on the way. It takes monthly budgets and works for the Gemini API, Gemini Enterprise Agent Platform (formerly Vertex AI), Cloud Run and Cloud Run functions; Compute Engine isn't eligible. For the per-token side of that spend, see LLM API pricing.

What else keeps the bill in check?

  • Review cost anomalies. Google sets each project's thresholds from its spend history, and Billing Account Administrators can change them.
  • Label resources with an owner and an environment. Budgets and GKE cost allocation both split by label, so the next spike arrives with a name on it.
  • Compare Google's own tools with third-party ones in The best GCP FinOps tools, and run the same review across every cloud you pay for with our cloud cost guide.

Common mistakes when cutting Google Cloud costs

  • Stopping a VM and expecting its charges to stop. Its disks, snapshots and attached IP addresses keep billing.
  • Adding LIMIT to a BigQuery query to save money. On a non-clustered table it costs the same.
  • Treating a budget as a cap. Spend caps exist for the Gemini API, Agent Platform and Cloud Run; a budget sends alerts.
  • Counting on sustained use discounts for E2 machines, which get none, or on a billing account that isn't self-serve.
  • Planning Hyperdisk Balanced for E2 or N2 machines before you talk to your account team.
  • Sending data to Archive that you'll delete within a year. Archive's minimum is 365 days, and an early delete bills as if the object stayed that long.
  • Routing the same logs to two buckets and paying for their storage twice.
  • Buying a CUD before you delete idle resources and rightsize, which locks a discount you can't cancel onto waste.

Where does LevelFour fit?

LevelFour reads your Cloud, SaaS, and AI bills in one view, finds the savings, and ships each one: applied in your cloud or SaaS account with access scoped to that one change, as a pull request to your infrastructure code, or as manual steps. Savings Audit confirms each saving on the bill. Cloud Savings costs 30% of realized savings, and plans start at $30 a month (pricing). You can also buy LevelFour on the Google Cloud Marketplace, as on AWS and Azure.

See what LevelFour can save you in 5 minutes, with read-only access.

Frequently asked questions

What's the difference between CUDs and sustained use discounts?

A sustained use discount applies with no action once a VM runs more than 25% of the month: up to 20% off on N2, N2D and C2, up to 30% on N1, M1 and M2, none on E2, and only on self-serve Cloud Billing accounts. A committed use discount is a 1- or 3-year commitment for 28% to 55% off that you can't cancel. Google doesn't combine the two. Sustained use discounts.

How much do committed use discounts save, and should I pick resource-based or flexible?

Resource-based CUDs take up to 37% off for 1 year and 55% for 3, on one machine series in one region. Compute flexible CUDs cover Compute Engine, GKE and Cloud Run across the billing account, at 28% and 46% on most Compute Engine series and GKE and 17% on Cloud Run functions and request-billed Cloud Run services. On an e2-standard-4 in us-central1, that's $61.64 or $44.03 a month resource-based against $70.44 or $52.83 flexible, from $97.84 on demand. Compute Engine pricing.

Which Google tools find savings for free?

Recommender (idle VMs, disks and IP addresses, machine types, CUDs), the FinOps hub, and the billing export to BigQuery. Google provides idle VM and idle resource recommendations free of charge; the BigQuery export costs what BigQuery charges to store and query the data. Idle VM recommendations.

When should I use Spot VMs, and how are they different from preemptible VMs?

Use them for work that survives an interruption, such as batch jobs and CI runners. Compute Engine can preempt a Spot VM at any time. By default it gives no dedicated notice, only a best-effort shutdown of up to 30 seconds, and you can set a 120-second notice when you create the VM. In return you get up to 91% off. Spot VMs have no maximum runtime unless you set one. Preemptible VMs are the older model, and Spot prices apply to both. Spot VMs.

How do I cut BigQuery costs?

Partition large tables and filter on the partition, set maximum bytes billed so an oversized query fails without a charge, preview tables instead of querying them, and dry-run large queries. LIMIT doesn't reduce compute cost on non-clustered tables. For steady load, compare on-demand at $6.25 per TiB in us-central1 with editions slots from $0.04 per slot-hour. BigQuery cost best practices.

Does a Google Cloud budget stop spending when it's reached?

No. Google says an alerts-only budget doesn't cap usage or spending. A spend cap budget pauses a service for the rest of the month once its estimated cost passes 100%, for the Gemini API, Gemini Enterprise Agent Platform (formerly Vertex AI), Cloud Run and Cloud Run functions. Compute Engine isn't eligible. Spend cap budgets.

Try LevelFour free for 14 days

See what it saves on your cloud, SaaS, and AI bills. No credit card required.

Start free trial

See what LevelFour can save you