Kirasame
sora · ソラ
BlogRun Free Audit
AWSMay 8, 20264 min read

How to Find Unused AWS Resources — A Practical Cost-Cutting Guide

Discover idle RDS instances, unattached volumes, and forgotten resources that waste thousands monthly. Step-by-step guide to identify and eliminate AWS waste.

Want to audit your own CSV? Run a free Kirasame Sora cloud cost audit and get your top findings in minutes.

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

  1. Week 1: Run this checklist above. Document what you find.
  2. Week 2: Delete low-risk items (unattached EBS, unused IPs, orphaned snapshots).
  3. Week 3: Review idle RDS and EC2 with your team. Stop what's not needed.
  4. 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.

Your cloud. Your audit.

Find waste in your own cloud bill.

Upload an AWS, Azure, GCP, or OCI billing export and get a prioritized cost optimization report.

Run Free Audit →