2026-06-02 · 8 min read
Cutting AWS & GCP Cloud Costs: A Practical Guide
Real, implementable strategies to reduce your AWS and GCP bills by 30-70%, right-sizing, autoscaling, spot/preemptible instances, storage tiering, and the FinOps habits that keep costs down for good.

Cutting AWS & GCP Cloud Costs: A Practical Guide
Cloud bills creep. A team ships fast, nobody owns cost, and six months later finance is asking why the AWS invoice doubled. I've helped teams cut cloud spend by 30-70%, not through one magic switch, but through a handful of high-leverage changes plus the habits that keep costs from creeping back.
Here's the practical playbook, for both AWS and GCP.
First: get visibility
You can't optimise what you can't see. Before changing anything:
- AWS: enable Cost Explorer and the Cost and Usage Report; tag resources by team/environment.
- GCP: use the Billing reports and BigQuery billing export; label resources.
Tagging/labelling is the unglamorous foundation, without it, you can't attribute cost to anything.
The biggest levers
1. Right-size compute (20-40% savings)
Most instances run at 10-20% utilisation. Use AWS Compute Optimizer or GCP Recommender to find over-provisioned VMs, then resize. This is usually the single biggest win.
2. Autoscale instead of over-provisioning (30-50% on variable load)
Static fleets sized for peak waste money off-peak. Use Auto Scaling Groups (AWS) or Managed Instance Groups (GCP), and on Kubernetes use the Cluster Autoscaler or Karpenter. Pay for what you actually use.
3. Spot / preemptible for fault-tolerant work (60-90% savings)
CI runners, batch jobs, and stateless workers don't need on-demand pricing.
- AWS: Spot Instances (and Spot for EKS node groups).
- GCP: Spot VMs / preemptible instances.
Just design for interruption, checkpoint long jobs and keep a small on-demand fallback.
4. Commit for steady-state (up to ~70%)
For the baseline you always run:
- AWS: Savings Plans or Reserved Instances.
- GCP: Committed Use Discounts.
Cover your stable floor with commitments, burst on spot/on-demand.
5. Storage tiering (15-30%)
- Move infrequently-accessed data to cheaper tiers (S3 Intelligent-Tiering / Glacier; GCS Nearline / Coldline) with lifecycle rules.
- On AWS, switch gp2 EBS volumes to gp3: cheaper and faster.
- Delete unattached volumes, old snapshots, and orphaned disks. They quietly accumulate.
6. Cut data-transfer and idle costs
- Use a CDN (CloudFront / Cloud CDN) instead of serving large assets from origin.
- Replace idle NAT gateways and unused load balancers, they bill by the hour whether used or not.
- Use VPC endpoints / Private Google Access to avoid egress charges to cloud APIs.
Make it stick: FinOps habits
One-time cleanups regress. What keeps costs down:
- Budgets + anomaly alerts. AWS Budgets / Cost Anomaly Detection; GCP budget alerts. Get pinged before a surprise, not after.
- Cost in code review. Treat a big new resource like any other change: reviewed, justified.
- Showback by team. When teams see their own spend (via tags/labels), behaviour changes.
- A regular cost review. A monthly 30-minute look at the top line items catches creep early.
A sensible rollout order
- Week 1: visibility (tagging, cost reports, anomaly alerts) + delete obvious waste.
- Weeks 2-4: right-size compute, switch gp2→gp3, add lifecycle rules.
- Month 2: autoscaling + spot for fault-tolerant workloads.
- Month 2-3: commitments for steady-state; embed the FinOps habits.
The mindset
Cost optimisation isn't a project you finish, it's a practice. The teams that stay efficient treat cloud spend as an engineering metric, owned and reviewed like latency or error rate. Done right, it funds more features instead of bigger invoices.
Need help getting your AWS or GCP bill under control? I do cloud cost optimisation as part of my consulting work, reach out.