Unused AWS resources are silent budget killers. A forgotten RDS instance, an unattached EBS volume from last year's failed deployment, idle load balancers — they quietly drain your budget every single month.
The problem: AWS bills you whether your resources are running or not. And if your team doesn't have visibility into what's actually in use, waste compounds fast.
We analyzed hundreds of AWS audits and found that 15–25% of typical cloud spend goes to unused or underutilized resources. For a company spending $50K/month on AWS, that's $7,500–$12,500 in avoidable monthly costs.
Here's how to find and eliminate them.
1. Idle RDS Databases
Why they're expensive: RDS instances charge per instance per hour, not per GB used. A single small instance runs ~$30–80/month depending on the region.
How to find them:
- Check AWS Console → RDS → Databases
- Enable Enhanced Monitoring (if not already on)
- Look for databases with zero connections over the past 7 days
- Check CloudWatch metrics:
DatabaseConnections= 0
Red flags:
- "Test" or "dev" databases still running in production accounts
- Instances created months ago for a specific project that finished
Example: One customer discovered 4 idle Aurora MySQL instances left over from a failed product launch. Cost: $240/month. Fixed in 5 minutes.
2. Unattached EBS Volumes
Why they're expensive: EBS volumes charge per GB per month, whether attached or not. A 100GB unattached volume costs ~$10/month — but multiply by dozens and you've got real waste.
How to find them:
- AWS Console → EC2 → Volumes
- Filter by State = "available" (not attached to any instance)
- Sort by Create Date to find the oldest ones
Better approach: Use AWS Cost Explorer or set up a CloudWatch alarm for "unused volumes"
Example: A typical discovery: 30–50 unattached volumes from terminated instances. Often 50–200GB total. Savings: $50–200/month just by deleting them.
3. Unattached Elastic IPs
Why they're expensive: AWS charges ~$3.60/month for each unattached Elastic IP (unused IPs).
How to find them:
- AWS Console → EC2 → Elastic IPs
- Look for addresses with no associated instance
Quick win: These are literally free money left on the table. Delete any unattached.
4. Idle EC2 Instances
Why they're expensive: Even stopped instances accrue storage costs. And running instances pay per hour.
How to find them:
- AWS Console → EC2 → Instances
- Check CloudWatch: CPU utilization, Network In/Out
- Look for instances with <1% CPU for 7+ days
How to verify they're safe to stop:
- Ask the team: "What is this instance for?"
- If no owner claims it → it's likely waste
- Stop (don't terminate) first to test if anything breaks
Example: A customer found 12 instances running on weekends with 0% CPU. Stopping them saved $180/month.
5. Unattached Network Interfaces
Why they're expensive: These are usually tied to reserved capacity or old deployments.
How to find them:
- AWS Console → EC2 → Network Interfaces
- Filter for Status = "available"
6. Load Balancers with No Traffic
Why they're expensive: ALBs cost ~$16/month + data processing. NLBs are ~$32/month.
How to find them:
- AWS Console → Load Balancing → Load Balancers
- Check CloudWatch:
RequestCount= 0 for 7 days - Look for old load balancers from dead projects
Example: One customer had 8 unused ALBs from old microservices. Removed them = $128/month savings.
7. Snapshots and Backups You Don't Need
Why they're expensive: EBS snapshots charge ~$0.05 per GB per month. Old backups add up.
How to find them:
- AWS Console → EC2 → Snapshots
- Check age: any older than 1 year?
- Check if the source volume still exists (if not, the snapshot is orphaned)
Better approach: Set up a lifecycle policy to auto-delete snapshots older than 90 days.
---
The Fastest Way: Use a Cost Audit Tool
Manually checking each service takes hours. A cloud cost auditor (like Kirasame Sora) scans your entire AWS bill and flags unused resources automatically — in minutes, not hours.
A typical audit finds:
- 20–40 unused resources per company
- $500–$5,000/month in avoidable waste
- Actionable recommendations (delete, resize, optimize)
---
Action Plan: Next 30 Days
- Week 1: Run this checklist above. Document what you find.
- Week 2: Delete low-risk items (unattached EBS, unused IPs, orphaned snapshots).
- Week 3: Review idle RDS and EC2 with your team. Stop what's not needed.
- Week 4: Celebrate the savings. Track what you found and prevented.
Expected savings: $500–$3,000/month for most companies.
---
Key Takeaway
Unused AWS resources aren't a "one-time cleanup" — they recur. Every failed project, every dev environment left running, every "let's test this" instance adds up.
Set a recurring reminder (quarterly) to audit for waste. Make it someone's responsibility. Or use automated cost tools to catch it continuously.
The $100K+ you save per year from eliminating waste is the same as a free team member. That's worth 30 minutes of investigation.