We Deleted the Snapshots — but the Bill Didn’t Move
One of our clients had a storage bill that kept growing every month, and nobody could explain why. This is the story of what was actually driving it — and why the “obvious” fix didn’t work. If your EBS snapshot or AMI costs feel stuck no matter how much you clean up, this one is for you.
The symptom: a bill that only went up
The client’s monthly AWS cost was creeping higher and higher, and the growth was clearly coming from storage. When we opened AWS Cost Explorer and broke the bill down by usage type, the same two line items were always at the top:
- EBS Snapshots
- AMI (machine image) storage
So far, so normal. Snapshots and AMIs are one of the most common sources of silent AWS waste — teams create them constantly (backups, golden images, pre-deploy safety copies) and rarely go back to clean them up.
The client had already figured this out. They had a Lifecycle Manager policy in place that automatically deleted old snapshots and AMIs on a schedule. They were even manually deleting big batches of old images on top of that.
The confusing part: deleting them changed nothing
Here’s what made this case strange.
Every month, images and snapshots were being deleted — by the lifecycle policy and by hand. You could watch them disappear from the console. And yet the storage cost stayed almost exactly the same, month over month. Delete hundreds of snapshots, wait for the next bill… same number.
That doesn’t add up. If you delete storage, the cost should drop. When deletions have no effect on the bill, it almost always means one thing: the data isn’t actually being deleted. It’s being moved somewhere you’re not looking — and you’re still paying for it.
The discovery: the AWS Recycle Bin
The answer was a feature many teams don’t even know is switched on: the AWS Recycle Bin.
The Recycle Bin lets you set retention rules for EBS snapshots and EBS-backed AMIs. When a rule is active and a matching snapshot or AMI is deleted, AWS doesn’t actually delete it. Instead, it moves it into the Recycle Bin and holds it there for the retention period you configured — so you can recover it if the deletion was a mistake.
This client had a retention rule set to keep every deleted image for six months.
That single setting explained everything:
- The lifecycle policy “deleted” a snapshot.
- The Recycle Bin quietly caught it and held onto it for 6 months.
- The storage — and the charge — never went away. It just moved to a place nobody was watching.
- Six months of “deleted” snapshots were piling up in the bin faster than the oldest ones were aging out.
The deletions were real. The data just wasn’t going anywhere.
Why Recycle Bin snapshots still cost you money
This is the key thing to understand: resources in the Recycle Bin are billed exactly like normal resources.
A snapshot sitting in the Recycle Bin costs the same per-GB storage rate as a snapshot that’s in active use — around $0.05 per GB-month in most regions. AWS does not discount it just because it’s “deleted.” From a billing standpoint, a snapshot in the Recycle Bin and a snapshot in your normal account are identical.
So a six-month retention rule effectively means: every snapshot you delete keeps costing you full price for another six months. If you’re deleting snapshots faster than six months, your bill can look completely flat even while you’re “cleaning up” constantly — which is exactly what we saw.
In this client’s case, the Recycle Bin was holding several terabytes of snapshots that everyone believed were already gone. At roughly $0.05/GB-month, that was hundreds of dollars a month being spent on storage that had been “deleted” — some of it more than once.
The trap inside the trap
There’s one more detail that catches people, and it’s worth saying clearly:
Deleting or changing the retention rule does NOT immediately remove what’s already in the Recycle Bin.
If you turn the rule off today, you stop new deletions from piling up — but every snapshot and AMI already sitting in the bin will stay there, and keep billing, until its own six-month clock runs out. To actually stop the charges now, you have to go into the Recycle Bin and permanently delete the resources that are already in it.
Fixing the rule protects the future. Emptying the bin fixes the present. You usually need to do both.
How to check your own AWS account for Recycle Bin charges
Take five minutes and look. Here’s how.
In the console: search for “Recycle Bin” (it has its own console page), or go to EC2 → Elastic Block Store → Recycle Bin. If you see retention rules and a list of resources with a countdown timer, you have snapshots and AMIs being retained — and billed.
From the CLI, list any active retention rules:
# Retention rules for snapshots
aws rbin list-rules --resource-type EBS_SNAPSHOT
# Retention rules for machine images
aws rbin list-rules --resource-type EC2_IMAGE
Then list what’s actually sitting in the bin right now (this is the storage you’re paying for):
# Snapshots currently in the Recycle Bin
aws ec2 list-snapshots-in-recycle-bin
# AMIs currently in the Recycle Bin
aws ec2 list-images-in-recycle-bin
If those last two commands return a long list, that’s your hidden bill.
How we cut the AWS storage cost
We did three things, in order:
- Emptied the bin. We reviewed what was retained, confirmed nothing was needed, and permanently deleted it to stop the charges immediately —
aws ec2 delete-snapshotfor snapshots andaws ec2 deregister-imagefor AMIs that were in the bin. - Right-sized the retention rule. Six months of full-price retention made no sense for routine automated deletions. We cut the retention period down to a few days — long enough to catch a genuine “oops,” short enough that it costs almost nothing — and scoped it with tags so it only protects the images that actually matter.
- Made it visible. We added the Recycle Bin to the monthly cost review so it can never quietly grow again.
The storage line item dropped the following month and stayed down — because this time the snapshots were genuinely gone, not just relocated.
The takeaway
If your snapshot or AMI costs won’t budge no matter how much you delete, the storage isn’t leaving your account — it’s moving somewhere you’re not billed to notice. The AWS Recycle Bin is the usual suspect.
A quick checklist:
- Check for retention rules:
aws rbin list-rulesfor bothEBS_SNAPSHOTandEC2_IMAGE. - List what’s in the bin:
list-snapshots-in-recycle-binandlist-images-in-recycle-bin— this is live, billable storage. - Empty it to stop current charges (deleting the rule alone won’t do this).
- Shorten the retention period to something sane — days, not months — and scope it with tags.
- Put the Recycle Bin on your monthly cost review so it can’t silently refill.
The Recycle Bin is a genuinely useful safety net. It just shouldn’t be a six-month, full-price safety net you forgot you turned on.
Seeing storage costs you can’t explain? Get in touch — we’ll audit your snapshot, AMI, and Recycle Bin spend and show you exactly what’s driving the bill.
MakFam Solutions
AWS cloud engineer and architect with 6+ years of experience. Helping small and medium businesses build scalable, secure, cost-effective cloud systems.