▸ Guides
AWS waste: the resources you pay for and don't use
Most AWS waste isn't one big mistake. It is volumes nobody deleted, addresses nobody released, instances stopped for now and logs kept forever, each a few dollars a month, spread across regions and accounts. None of them break anything, so they stay on the bill.
Each guide takes one of them: what AWS charges for it, how to find it with the AWS CLI, and how to clean it up safely.
[ What idle resources cost ]
| Unattached 500 GB gp3 EBS volume | $40 a month |
|---|---|
| Stopped instance with a 100 GB gp3 volume and an Elastic IP | $11.65 a month |
| Elastic IP associated with nothing | $3.65 a month each |
| Log group set to Never expire | $3 more each month per 100 GB it adds |
US East (N. Virginia) list prices. Each guide shows the full pricing and when it was last checked.
The guides
Networking · 6 min read
AWS Elastic IP cost: what you pay, and how to find idle IPs
AWS charges $0.005 an hour for every public IPv4 address, about $3.65 a month per Elastic IP. What idle ones cost, and how to find them across regions and accounts.
Monitoring · 7 min read
CloudWatch log retention: find the log groups that never expire
CloudWatch keeps logs forever unless you set retention. What CloudWatch Logs costs, how to find log groups set to Never expire, and how to fix them with the AWS CLI.
Storage · 6 min read
Unused EBS volumes and snapshots: what they cost and how to find them
Unattached EBS volumes bill for every provisioned GB, and snapshots outlive their volumes. What EBS volumes and snapshots cost, and how to find them with the AWS CLI.
Compute · 5 min read
What does a stopped EC2 instance cost?
Stopped EC2 instances aren't billed for compute, but their EBS volumes and Elastic IPs are. What a stopped instance still costs, and how to find the long-stopped ones.
[ Across many accounts ]
Every command in these guides covers one account at a time. With ten or fifty accounts, finding idle resources means assuming a role in each, running the checks, and merging the results, then doing it again next month.
Resource Atlas does that in one scan. It runs inside an AWS account you own, reads every connected account through a read-only role, and lists EBS volumes, Elastic IPs, EC2 instances and log groups from all of them in one searchable inventory, with the unattached, stopped and never-expiring ones counted at the top. It covers the region you deploy it to in each account. Community is free for up to 2 AWS accounts.
Questions
What is AWS waste?
Resources that are still billed but no longer do anything useful: unattached EBS volumes, Elastic IPs associated with nothing, instances left stopped, and log groups that keep every log forever. None of them break anything, so they tend to stay on the bill until someone goes looking for them.
How do I find unused AWS resources across multiple AWS accounts?
Each guide here has AWS CLI commands that find one kind of idle resource in an account, in one region or all of them. Across many accounts you run them once per account, assuming a role in each. A multi-account inventory such as Resource Atlas lists these resources from every connected account in one place instead.
Which idle AWS resources cost the most?
Usually unattached EBS volumes, because they are billed for every provisioned GB, and for provisioned IOPS too: one unattached 500 GB gp3 volume costs $40 a month in US East (N. Virginia). Log groups that never expire start small but cost more every month.