Your Google Cloud bill is growing faster than your revenue. Sound familiar?
Most GCP cost optimization guides are written for enterprises with dedicated FinOps teams and million-dollar cloud budgets. But what about growing companies—startups and scale-ups—who need practical solutions without the enterprise overhead?
This guide is for you. No enterprise jargon. No six-month implementation plans. Just practical strategies you can implement today to reduce your GCP costs.
Why GCP Costs Spiral for Growing Companies
Before diving into solutions, let's understand why costs get out of control:
- No visibility: You're reacting to bills, not monitoring spend
- Over-provisioned resources: You picked instance sizes based on guesses
- Idle resources: That test VM from 3 months ago is still running
- No commitment strategy: You're paying on-demand rates for predictable workloads
- Missing discounts: SUDs, CUDs, and Spot VMs could save 30-70%
Quick Wins (Implement Today)
These take less than an hour and cost nothing:
1. Enable Billing Export to BigQuery
Why it matters: Without billing export, you're flying blind. GCP Console gives you summary views, but billing export gives you the raw data to actually analyze costs—down to individual resources.
Critical: Billing export data is NOT retroactive. If you enable it today, you only get data from today forward. Enable it now.
Step 1: Create a project for billing data
We recommend creating a dedicated project (e.g., billing-analytics) for your billing export. This keeps billing data isolated from production, which is important when granting access to cost optimization tools—you're only sharing billing data, not your production resources.
You can use an existing project, but a dedicated one simplifies access control and security reviews.
Multiple billing accounts? Repeat this setup for each one. See the Multi-Billing Account Visibility section below for managing costs across accounts.
Step 2: Create a BigQuery dataset
- Open BigQuery in your billing project
- Create a dataset (e.g.,
billing_export) - Choose a multi-region location (US or EU) for durability
Go to Billing → Billing export. You'll see four export options—but you only need one:
Enable "Detailed usage cost" — Click "Edit Settings", select your project and dataset, then save.
This export contains everything you need for cost optimization:
- Cost breakdown by service, project, SKU, and region
- Resource-level detail (which specific VM, disk, or query)
- CUD and SUD savings already applied
- Hourly granularity for trend analysis
The other three exports (Standard usage cost, Pricing, Committed Use Discounts) are optional. Most cost optimization tools, including GCP FinOps, only need the Detailed usage cost export.
Storage cost: Negligible—typically a few dollars per month. Worth it for the visibility.
Step 4: Wait for data
Data starts flowing within 24-48 hours. The first export includes the current month's data up to that point. GCP creates a table named gcp_billing_export_resource_v1_<YOUR_BILLING_ACCOUNT_ID> in your dataset.
2. Set Budget Alerts
Why it matters: Surprise bills happen when nobody's watching. Budget alerts are your early warning system.
Recommended setup:
- Set budget at 80% of expected monthly spend
- Alert at 50%, 90%, and 100% thresholds
- Send to engineering leads, not just finance
How to set up:
- Billing → Budgets & alerts
- Create budget
- Set amount and alert thresholds
- Add email recipients
3. Review Google Recommender Suggestions
Why it matters: Google already knows where you're wasting money. The Recommender API analyzes your usage and suggests optimizations.
Common recommendations:
- Idle VM instances (not used in 15+ days)
- Oversized instances (using <50% CPU)
- Unattached persistent disks
- Unused static IP addresses
- Idle Cloud SQL instances
How to check: Console → IAM & Admin → Recommendations
Pro tip: Check recommendations weekly. New ones appear as usage patterns change. Or use a dashboard that surfaces these automatically.
Medium-Term Optimizations (This Month)
These require some planning but deliver significant savings:
4. Right-Size Your Compute Instances
Most companies over-provision by 40-60%. A VM that "might need" 8 vCPUs usually runs fine on 4.
How to right-size:
- Check actual utilization: Console → Compute Engine → VM instances → Observability
- Look for patterns: If average CPU is under 40%, consider downsizing
- Use Recommender: It suggests specific machine types based on actual usage
- Test first: Resize in staging before production
- n2-standard-8 → n2-standard-4: ~50% savings on that instance
- Across 10 oversized VMs: $500-2,000/month savings
5. Clean Up Idle Resources
Idle resources are pure waste. Common culprits:
| Resource | Cost Impact | Detection |
|---|---|---|
| Idle VMs | $50-500/month each | Recommender, low CPU |
| Unattached disks | $10-100/month each | Compute → Disks → "In use by" empty |
| Unused IPs | $7/month each | VPC → External IP → Status |
| Old snapshots | $0.02-0.05/GB/month | Compute → Snapshots → age |
| Idle Cloud SQL | $50-500/month each | Low connections, Recommender |
- Run Recommender report
- List resources older than 90 days
- Check with owners before deleting
- Delete or tag for retention
6. Implement Cost Labels
Labels let you see WHERE money goes. Without them, you just see THAT money went.
Recommended labels:
environment: prod, staging, dev, testteam: engineering, data, platformproject: customer-api, data-pipeline, internal-toolsowner: email of responsible person
How to enforce:
- Create labeling policy document
- Add labels to Terraform/IaC templates
- Use Cloud Asset Inventory to audit unlabeled resources
- Set up alerts for resources missing required labels
Committed Use Discounts: When They Make Sense for SMBs
CUDs offer significant savings (28-55%) but require commitment. Here's when they make sense for growing companies:
When to Buy CUDs
Buy CUDs if:
- You have stable, predictable workloads
- Monthly GCP spend exceeds $3,000
- Workloads will exist for 12+ months
- You can commit to specific regions
Skip CUDs if:
- Spend is under $2,000/month
- You're still figuring out architecture
- Workloads change frequently
- You might migrate to another cloud
CUD Types Explained
Resource-based CUDs:
- Commit to specific vCPUs and memory
- Up to 55% savings (3-year)
- Best for: Stable production workloads
- Risk: Locked to specific machine family and region
Spend-based (Flexible) CUDs:
- Commit to hourly spend amount
- Up to 46% savings (3-year)
- Best for: Variable workloads across services
- Benefit: Applies to Compute, GKE, Cloud SQL
Quick CUD Calculator
For a $5,000/month GCP compute spend:
| Scenario | Monthly Cost | Annual Savings |
|---|---|---|
| No CUDs (on-demand) | $5,000 | $0 |
| 1-year flexible CUD (50% coverage) | $4,300 | $8,400 |
| 3-year flexible CUD (50% coverage) | $3,850 | $13,800 |
Pro tip: Analyzing your usage patterns to find the right CUD coverage takes time. Tools that analyze your billing data can recommend optimal CUD purchases based on actual usage.
Advanced: Multi-Billing Account Visibility
Many growing companies end up with multiple billing accounts:
- Acquired company kept their account
- Different accounts for different clients
- Separate accounts for dev vs prod
The problem: GCP Console only shows one billing account at a time. You can't see total company spend.
Solutions:
- Manual consolidation: Export all billing data to one BigQuery dataset (complex)
- Third-party tools: Use tools like GCP FinOps that aggregate across billing accounts automatically (recommended)
- Organization-level billing: Migrate all projects to one billing account (disruptive)
This is one of the biggest pain points for growing companies. Native GCP tools don't solve it well.
Tools Comparison for SMBs
Free Native Tools
| Tool | What It Does | Limitations |
|---|---|---|
| Billing Reports | Basic cost visibility | Summary only, no recommendations |
| Recommender | Optimization suggestions | Must check manually |
| FinOps Hub | Cost insights | Basic, new feature |
| BigQuery Export | Raw cost data | Requires SQL skills |
SMB-Friendly Third-Party Tools
| Tool | Best For |
|---|---|
| GCP FinOps | GCP-focused, multi-billing-account, all-in-one dashboard |
| Infracost | IaC cost estimation |
| Cloud Custodian | Policy-based automation (OSS) |
| Vantage | Multi-cloud visibility |
Enterprise Tools (Often Overkill)
CloudHealth, Apptio, Spot.io, CAST AI—these are enterprise-priced and require lengthy implementation projects. Great for large organizations, but often overkill for growing companies spending under $50K/month.
Monthly Cost Review Checklist
Run this checklist monthly:
Week 1: Quick Review (30 min)
- Check Recommender for new suggestions
- Review budget alert history
- Compare spend to last month
Week 2: Resource Audit (1 hour)
- Identify idle VMs (CPU < 5% for 14+ days)
- List unattached disks
- Check for unused IP addresses
- Review snapshot age and necessity
Week 3: Optimization Actions (2 hours)
- Resize oversized instances
- Delete confirmed idle resources
- Update labels on new resources
- Schedule resources that don't need 24/7
Week 4: Planning (30 min)
- Review CUD utilization
- Plan next month's optimizations
- Update stakeholders on savings achieved
Getting Started
- Today: Enable billing export (5 minutes)
- This week: Set up budget alerts, run Recommender
- This month: Audit idle resources, right-size top 10 VMs
- Next month: Evaluate CUDs for stable workloads
Key Takeaways
- Enable billing export immediately—data isn't retroactive
- Check Recommender weekly—Google tells you what's wasted
- Right-size aggressively—most VMs are over-provisioned
- Start CUDs conservatively—cover 30-50% of stable spend
- Monthly audits matter—idle resources accumulate silently
I'm building GCP FinOps to help growing companies optimize GCP costs without enterprise complexity. Have questions? Reach out on LinkedIn.