Stopped EC2 Instances: The Cost You Forgot About

It's easy to assume that a stopped EC2 instance isn't costing you anything, but that's not quite true. While compute charges pause, you're still paying for attached EBS volumes, Elastic IPs, and sometimes more.
At Lensix, we regularly flag stopped instances that quietly persist across all enabled regions - not just your usual ones - racking up costs and clutter without adding any value.
π‘ Why it matters
Stopped instances aren't just another item in the EC2 list:
- You're still paying: Even stopped instances may have:
- Root EBS volumes that incur hourly storage costs
- Additional data volumes left behind
- Elastic IP addresses that are billed while detached
- Operational clutter: Stray stopped instances create confusion for teams and noise in your dashboards.
- Security concerns: Older stopped instances may have outdated AMIs, unpatched software, or bad configurations — and can be restarted accidentally, maliciously, or just carelessly.
π§© How Does It Happen?
- Testing and staging: Instances are stopped "temporarily" for testing — but never restarted or deleted.
- Automation misfires: Scripts that shut down workloads after hours may stop instances but not clean them up.
- Multi-region confusion: Devs spin up an instance in a non-primary region, stop it, and forget it exists.
- Human nature: Out of sight = out of mind. One of the most common EC2 views shows only running instances.
- Just in case: Sometimes you keep instances stopped when they are replaced "just in case" you need them again. Soon, they are forgotten.
β οΈ Common Caveats
- Some stopped instances should stay in place - like temporarily paused dev environments, cold DR standby targets, or other useful setups. Tagging and documentation can help identify these.
- EBS-backed instances retain their root volume even when stopped, unless explicitly deleted. The Lensix Unattached EBS Volumes check can help identify these.
β What to do about it
- Audit all regions: Lensix automatically checks every enabled AWS region — not just the ones you use most.
- Tag paused workloads clearly: Include expiration dates and the reason for pausing.
- Use lifecycle policies: Automate cleanup of aged or idle resources.
- Reclaim Elastic IPs: These cost money and can be a limited resource.
π Alternatives
- Snapshotting and terminating is usually safer and cheaper than keeping old stopped instances around if you aren't quite ready to completely remove them.
π¬ Bottom Line
A stopped EC2 instance might not show up on your radar — but its associated costs do. Cleaning up strays helps reduce unnecessary spend, declutters your AWS environment, and reduces operational drift.
Lensix scans every region, flags these ghosts, and tracks them for you until your environment is clean.