The Problem: Your AWS Bill is Too High
We recently audited a SaaS startup's AWS infrastructure. Their monthly bill was ₹6.5 lakhs. After a 3-week optimisation project, we brought it down to ₹2.8 lakhs per month.
Annual saving: ₹55 lakhs. The optimisation project cost ₹4 lakhs. ROI in under 4 weeks.
This is not unusual. Most Indian startups running on AWS are significantly overpaying — often by 40–70%. Here is exactly what we found and how we fixed it.
The 7 Biggest AWS Cost Killers for Indian Startups
1. Idle EC2 Instances Running 24/7
The most common issue. Developers spin up instances for testing, forget to terminate them, and they run indefinitely. In our audit, we found 12 idle EC2 instances — none actively serving traffic — consuming ₹1.8L/month.
Fix: Audit running instances monthly. Use AWS Instance Scheduler to automatically stop non-production instances outside working hours. Enable AWS Cost Anomaly Detection to alert on unusual spend.
2. No Auto-Scaling — Paying for Peak at All Times
Without auto-scaling, you provision for your maximum expected traffic — and pay for that capacity 24/7, even at 3 AM when traffic is near-zero.
Fix: Implement EC2 Auto Scaling Groups with target tracking policies. For containerised workloads, use EKS with Cluster Autoscaler. Typical saving: 30–50% on compute costs.
3. On-Demand Pricing for Predictable Workloads
On-demand instances cost 3–4x more than Reserved Instances or Savings Plans for the same workload. If you have a baseline of instances running consistently, you are overpaying significantly.
Fix: Purchase 1-year Reserved Instances or Compute Savings Plans for your baseline capacity. Use Spot Instances for batch jobs, data processing, and non-critical workloads — up to 90% cheaper than on-demand.
4. Oversized Instance Types
Engineers typically choose instance sizes conservatively — "just in case." Over time, applications get optimised but instances never get downsized.
Fix: Use AWS Compute Optimizer to get right-sizing recommendations based on actual utilisation data. We typically find 30–40% of instances are 2x oversized.
5. S3 Storage Accumulation
Without lifecycle policies, S3 buckets grow indefinitely. Logs, old backups, temporary files, unused assets — they accumulate silently and the cost compounds monthly.
Fix: Implement S3 Lifecycle Policies: move infrequently accessed data to S3-IA after 30 days, archive to S3 Glacier after 90 days, delete expired logs automatically. Enable S3 Intelligent-Tiering for unpredictable access patterns.
6. NAT Gateway Overuse
NAT Gateway charges both per hour (₹3.5/hour) and per GB processed. In microservices architectures, internal service communication routing through NAT Gateway creates significant unexpected costs.
Fix: Use VPC Endpoints for AWS services (S3, DynamoDB, SQS) to avoid NAT Gateway charges. Route internal traffic through private subnets. We have seen this alone save ₹40,000–₹80,000/month for mid-size startups.
7. No Cost Allocation Tags
Without tagging resources by team, environment, or product, it is impossible to identify which part of your system is driving costs. You cannot optimise what you cannot measure.
Fix: Implement mandatory tagging policy: Environment (prod/staging/dev), Team, Product, Cost Centre. Use AWS Cost Explorer with tag-based filtering to identify the highest-cost components.
The Free Cloud Cost Audit Checklist
Run through this checklist on your AWS account right now:
EC2: List all running instances → check CPU utilisation in CloudWatch → terminate anything below 5% average utilisation for 7 days.
RDS: Check if Multi-AZ is enabled on dev/staging databases — disable it, you only need it in production.
S3: Check bucket sizes → enable Intelligent-Tiering on all buckets over 100GB → add lifecycle rules for logs older than 90 days.
Load Balancers: List all ALBs/NLBs → check if any have zero traffic → delete idle ones.
Elastic IPs: List all Elastic IPs → release any not associated with a running instance (AWS charges for unattached EIPs).
Snapshots: List all EBS snapshots older than 180 days → delete orphaned snapshots from terminated instances.
How Much Can You Actually Save?
Based on our audits of 10+ Indian startups on AWS, here are typical savings by company stage:
Early-stage startup (₹50K–₹2L/month bill): 20–35% savings. ₹10,000–₹70,000/month.
Growth-stage startup (₹2L–₹10L/month bill): 35–55% savings. ₹70,000–₹5.5L/month.
Scale-up (₹10L+/month bill): 40–65% savings. ₹4L–₹15L/month.
Our client with the ₹6.5L monthly bill was a growth-stage SaaS company with 3 engineers. The optimisation required no architecture changes — just right-sizing, auto-scaling, and lifecycle policies.
When to Get a Professional Cloud Cost Audit
DIY optimisation gets you 20–30% savings. A professional audit typically finds 40–65% because:
We analyse 6–12 months of Cost Explorer data to find patterns you will miss in a one-time review. We understand AWS pricing intricacies — Reserved Instance coverage gaps, Savings Plans vs RI trade-offs, cross-region data transfer costs — that most engineers do not deal with daily. We implement automated guardrails to prevent cost creep from returning.
NxtGen Stack offers a free 30-minute cloud cost review call where we look at your AWS Cost Explorer data and give you an estimated saving figure before any engagement. No obligation.
