Why Your Cloud Bill Is Higher Than It Should Be
The average company wastes 32% of its cloud spend (Flexera's 2025 State of the Cloud Report). For a startup spending $10,000/month on AWS, that is $3,200/month going to unused or oversized resources. Over a year, $38,400 wasted.
Cloud waste happens for predictable reasons. Developers provision instances based on peak capacity and never scale down. Test environments run 24/7 when they are used 8 hours a day. Old EBS volumes, snapshots, and load balancers accumulate after infrastructure changes. Default configurations favor reliability over cost efficiency.
The fixes are not complicated. Most require no code changes and take effect immediately. A focused cloud cost optimization sprint (1 to 2 days) typically reduces bills by 30 to 40%.
Right-Sizing: Stop Paying for Resources You Don't Use
Right-sizing means matching your instance sizes to actual usage. It is the single biggest cost lever for most companies.
Compute Instances
Check your EC2/GCE CPU utilization in CloudWatch or Stackdriver. If average CPU utilization is under 20%, your instance is oversized. An m6i.xlarge ($140/month) running at 15% CPU should be an m6i.large ($70/month) or even a t4g.medium ($30/month). That single change saves $110/month per instance.
AWS Compute Optimizer (free for EC2) analyzes your usage patterns and recommends optimal instance types. Run it monthly and act on its recommendations.
Database Instances
RDS instances are often the biggest line item. A db.r6g.xlarge ($450/month) running at 30% CPU and 40% memory should be a db.r6g.large ($225/month). Check CloudWatch for CPUUtilization, FreeableMemory, and ReadIOPS. If all three are well below capacity, downsize.
For development and staging databases, use db.t4g.micro or db.t4g.small ($15 to $30/month) instead of production-sized instances. There is no reason a staging database needs the same capacity as production.
Graviton Instances (ARM)
AWS Graviton (ARM-based) instances are 20% cheaper than equivalent x86 instances and often faster. If your application runs on Node.js, Python, Go, or Java, switching from m6i to m7g (Graviton) is a free 20% savings. Check compatibility with your specific workload, but most web applications run on ARM without changes.
Reserved Instances and Savings Plans
If you know your baseline infrastructure needs for the next 1 to 3 years, reserved capacity offers 30 to 60% savings compared to on-demand pricing.
AWS Savings Plans
Compute Savings Plans offer up to 66% discount in exchange for a 1 or 3-year commitment to a minimum hourly spend. The key advantage over Reserved Instances: Savings Plans apply across instance types, sizes, operating systems, and even services (EC2, Fargate, Lambda). If you commit to $100/hour of compute, any compute usage counts toward that commitment.
Start by analyzing your last 3 months of compute spend. Your baseline (the minimum consistent spend) is what you should commit. Do not commit your peak; commit your floor. For a startup spending $5,000 to $8,000/month on compute, committing $4,000/month to a 1-year Savings Plan saves roughly $1,500/month.
RDS Reserved Instances
RDS Reserved Instances offer 30 to 40% savings for 1-year commitments. Since your production database runs 24/7, this is almost always worth it. A db.r6g.large at $225/month on-demand drops to $140/month with a 1-year reserved instance. That is $1,020/year saved per database.
Google Cloud Committed Use Discounts
Google Cloud offers 1-year (37% discount) and 3-year (55% discount) committed use discounts. Similar to AWS Savings Plans but applied automatically. Google also offers Sustained Use Discounts (up to 30%) that apply automatically to instances running more than 25% of the month.
Spot and Preemptible Instances
Spot instances (AWS) and preemptible VMs (GCP) offer 60 to 90% discounts on compute in exchange for the possibility of interruption. Your instances can be reclaimed with 2 minutes notice when cloud demand spikes.
Where Spot Instances Work
- CI/CD pipelines: Build and test jobs are perfect for spot. If an instance is reclaimed, the pipeline retries automatically. Savings: 70 to 80%.
- Batch processing: Data processing, image/video transcoding, ML training jobs. Design for interruption with checkpointing.
- Development environments: Dev instances used during business hours. If reclaimed, developers just launch a new one.
- Stateless web workers: If your application runs behind a load balancer with multiple instances, losing one spot instance is handled by the load balancer routing to remaining instances.
Where Spot Instances Do NOT Work
Databases, single-instance applications, and any workload where a 2-minute interruption causes data loss or customer impact. Never run your production database on spot.
Mixed Fleets
The best approach: run a baseline of on-demand or reserved instances (enough to handle minimum traffic) and use spot instances for scaling headroom. AWS Auto Scaling groups support mixed instance policies that automatically blend on-demand and spot capacity.
Storage Optimization
Storage costs creep up silently. Old snapshots, unattached volumes, and inefficient storage tiers are common waste.
S3 Storage Tiers
S3 Standard costs $0.023/GB/month. S3 Infrequent Access costs $0.0125/GB/month. S3 Glacier Instant Retrieval costs $0.004/GB/month. For 1TB of data accessed rarely, the difference is $23/month vs $4/month. Multiply by 10TB of logs and backups and the savings are significant.
Enable S3 Intelligent-Tiering ($0.0025/GB monitoring fee) to automatically move objects between tiers based on access patterns. Or create lifecycle policies that transition objects to Infrequent Access after 30 days and Glacier after 90 days.
EBS Volume Cleanup
Unattached EBS volumes (orphaned after instance termination) cost money every month while doing nothing. Run: aws ec2 describe-volumes --filters Name=status,Values=available. Delete any volumes that are not needed. Do the same for snapshots: old snapshots from development instances and defunct projects accumulate fast.
Database Storage
RDS storage auto-scaling can grow your database storage to 64TB and never shrink it. If your database grew to 500GB during a data migration and now uses 100GB, you are paying for 500GB. The fix requires manual intervention: create a new smaller instance, migrate data, and delete the old instance. Annoying but worth it for large overprovisions.
Cost Monitoring and Governance
Optimization is not a one-time project. Without ongoing monitoring, costs creep back up within 3 to 6 months.
AWS Cost Explorer (Free)
Built into AWS. Shows spending by service, region, and tag. Set up daily cost anomaly detection alerts. If your daily spend jumps 20% unexpectedly, you want to know immediately, not at the end of the month.
Third-Party Tools
- Vantage ($0 to $500/month): Excellent visualization and recommendations. Free tier covers up to $2,500/month in cloud spend. Our recommendation for startups.
- Infracost ($0 to $200/month): Shows cost impact of infrastructure changes in pull requests. Before a Terraform change is merged, you see the estimated cost impact. Prevents expensive surprises.
- CloudHealth (custom pricing): Enterprise-grade cost management. Starts at ~$500/month. Overkill for startups but excellent for companies spending $50K+/month on cloud.
Tagging Strategy
Tag every resource with environment (production, staging, development), team, project, and owner. Without tags, you cannot attribute costs to specific teams or projects. Enforce tagging with AWS Config rules or Terraform policies that reject untagged resources.
Scheduled Scaling
If your traffic is predictable (B2B SaaS with minimal weekend usage), schedule your development and staging environments to shut down outside business hours. Running dev environments only during business hours (10 hours/day, 5 days/week) saves 70% compared to 24/7 operation.
The 40% Reduction Playbook
Here is the prioritized list of actions that typically achieve a 30 to 40% reduction in cloud spend:
- Week 1: Quick wins (15 to 20% savings). Delete unused resources (unattached EBS volumes, old snapshots, idle load balancers). Shut down or schedule non-production environments. Switch to Graviton instances where compatible. Enable S3 lifecycle policies.
- Week 2: Right-sizing (10 to 15% savings). Downsize oversized EC2 and RDS instances based on CloudWatch metrics. Switch from provisioned to on-demand DynamoDB if applicable. Optimize NAT Gateway usage (consolidate or use VPC endpoints).
- Week 3: Commitments (10 to 15% savings). Purchase Savings Plans for your baseline compute. Reserve RDS instances for production databases. Commit to consistent workloads.
- Ongoing: Monitoring and governance. Set up cost alerts and anomaly detection. Review spending weekly. Tag all resources. Use Infracost in your CI/CD pipeline.
What Optimization Costs
- Self-service audit (1 to 2 days, $0): Use AWS Cost Explorer, Compute Optimizer, and Trusted Advisor (free tools) to identify savings.
- Professional cloud cost audit (3 to 5 days, $5K to $15K): We analyze your entire cloud infrastructure, implement quick wins, and deliver a prioritized optimization roadmap.
- Ongoing FinOps management ($2K to $5K/month): Continuous monitoring, monthly optimization reviews, and proactive cost governance.
A company spending $15K/month on cloud that reduces costs by 35% saves $63K/year. The optimization audit pays for itself in the first month.
We help startups and scale-ups optimize their cloud infrastructure for performance and cost. Book a free strategy call to get a cloud cost assessment.
Need help building this?
Our team has launched 50+ products for startups and ambitious brands. Let's talk about your project.