Free data table
What idle AWS resources cost per month
An idle NAT gateway costs $32.85 a month in US East, an empty EKS cluster $73, a load balancer with no targets $16.43, and every public IPv4 address $3.65, whether anything uses them or not. Below is what each forgotten resource adds to an AWS bill, from the AWS Price List checked on October 31, 2026, with the CLI command that finds it in your account.
| Idle resource | What AWS charges | Per month | How to find it |
|---|---|---|---|
| NAT gateway with no trafficOne per Availability Zone is a common default, so often times three. | $0.045 an hour per gateway | $32.85 | aws ec2 describe-nat-gateways --filter Name=state,Values=available |
| Amazon EKS cluster with no workloadsThe control plane bills whether any pods run or not. | $0.10 an hour ($0.50 on extended support) | $73.00 | aws eks list-clusters |
| Application Load Balancer with no targetsThen check each target group with describe-target-health. | $0.0225 an hour, before capacity units | $16.43 | aws elbv2 describe-load-balancers |
| Interface VPC endpointPer zone, so three zones is $21.90. Gateway endpoints for S3 and DynamoDB are free. | $0.01 an hour per Availability Zone | $7.30 | aws ec2 describe-vpc-endpoints --filters Name=vpc-endpoint-type,Values=Interface |
| API Gateway REST cache, 1.6 GB, on a stage nobody usesBilled per stage for every hour it exists. Check CacheHitCount before keeping one. | $0.038 an hour per stage (0.5 GB is $0.02) | $27.74 | aws apigateway get-stages --rest-api-id <id> --query "item[?cacheClusterEnabled].[stageName,cacheClusterSize]" |
| Unattached 100 GB gp2 volumeBilled by size provisioned, attached or not. gp3 is $8. | $0.1 per GB-month | $10.00 | aws ec2 describe-volumes --filters Name=status,Values=available |
| Unattached io1 volume, 500 GB with 10,000 IOPSThe IOPS are billed even when nothing reads the disk. | $0.125 per GB-month + $0.065 per IOPS-month | $712.50 | aws ec2 describe-volumes --filters Name=volume-type,Values=io1,io2 |
| 100 GB of old EBS snapshotsDeregistering an AMI leaves its snapshots behind. | $0.05 per GB-month | $5.00 | aws ec2 describe-snapshots --owner-ids self |
| Public IPv4 address (Elastic IP or on an instance)Charged attached or not since February 2024. | $0.005 an hour | $3.65 | aws ec2 describe-addresses --query "Addresses[?AssociationId==null]" |
| Customer managed KMS keyOnly customer managed keys bill; AWS managed keys are free. | $1 a month per key | $1.00 | aws kms list-keys |
| Secrets Manager secretPer secret, per Region it is replicated to. | $0.40 a month per secret | $0.40 | aws secretsmanager list-secrets |
| 10 GB of CloudWatch logs kept foreverSmall per month, but it never stops growing. Set a retention. | $0.03 per GB-month stored | $0.30 | aws logs describe-log-groups --query "logGroups[?!retentionInDays].logGroupName" |
| CloudWatch alarm on a deleted resourceFirst 10 alarms are in the free tier. | $0.1 a month per standard alarm | $0.10 | aws cloudwatch describe-alarms --state-value INSUFFICIENT_DATA |
US East (N. Virginia), On-Demand, a 730-hour month. EBS, CloudWatch, EKS, load balancer, KMS and Secrets Manager prices from the AWS Price List checked October 31, 2026; NAT gateway and VPC endpoint from the Price List published October 28, 2026; public IPv4 from aws.amazon.com/vpc/pricing, checked October 22, 2026. API Gateway cache from the AWS Price List published October 13, 2026, checked November 6, 2026. Data transfer, request and capacity-unit charges are extra and not shown.
Why idle things are the easy money
Most of these are hourly charges for something existing, not for something being used. Nobody gets an alert when a staging VPC still has three NAT gateways after the staging app was deleted, because nothing is broken. The bill just has $98.55 a month on it that buys nothing.
They also come in groups. Infrastructure code that created one stack usually created the gateway, the load balancer, the endpoints and the alarms together, and deleting the app by hand leaves the rest. Run the commands above in every Region you have ever used, not just your main one; Cost Explorer grouped by Region shows where to look.
Before you delete a volume or a snapshot, check what it is. An unattached volume can be the only copy of a database someone detached during an incident. Snapshot it first if you're unsure, and archive the snapshot ($0.0125 per GB-month, 90 days minimum) rather than keeping a disk around.
Using this table
You're welcome to cite or reuse it under CC BY 4.0, with a link back to this page. The dates above say when each price was checked. The longer write-ups are in NAT gateway cost and EBS pricing.
If you'd rather someone else went through the account, our free cloud cost audit ($0) reads the bill line by line, and we reduce AWS bills for $0 up front and 50% of the verified monthly saving for 6 months, nothing if nothing is saved.