AWSCost

AWS cost · EBS snapshots

Orphaned EBS snapshots are quietly draining your AWS bill

Snapshots are the cost nobody watches. Each one is a few cents per gigabyte, so no single snapshot looks worth deleting. Then they accumulate - a backup from a migration that is long done, a copy taken before a risky change, the remains of a volume someone deleted years ago. In one account I looked at, untagged snapshots nobody remembered were quietly costing about $300/month. Nobody decided to keep them. They just never got cleaned up.

EBS snapshots cost $0.05/GB-month and never delete themselves. When you delete a volume or terminate an instance, its snapshots stay behind and keep billing - orphaned. Over a few years they pile into hundreds a month. Find them by listing your snapshots and cross-referencing the volumes that still exist, then automate cleanup with Data Lifecycle Manager.

How much do orphaned EBS snapshots cost?

At $0.05/GB-month on stored data, the bill scales quietly with how much you have forgotten:

Orphaned snapshot dataCostPer year
500 GB stored$25/month$300/year
2 TB stored$100/month$1,200/year
6 TB stored$300/month$3,600/year

What makes a snapshot orphaned?

A snapshot is orphaned when the volume it came from no longer exists. Deleting a volume does not delete its snapshots, and terminating an instance leaves them behind too. They lose the one thing that connected them to a running system, become untagged noise in a long list, and keep billing. Multiply that across a team over a couple of years and you get thousands of stale snapshots, each charging every month.

How do I find orphaned EBS snapshots?

List every snapshot you own, then cross-reference it against the volumes that still exist. Anything whose source volume is gone is an orphan:

# every snapshot in this account
aws ec2 describe-snapshots --owner-ids self \
  --query 'Snapshots[].{ID:SnapshotId,Vol:VolumeId,Size:VolumeSize}'

# volumes that still exist
aws ec2 describe-volumes --query 'Volumes[].VolumeId'

# any snapshot Vol not in that list is orphaned

How do I stop them piling up again?

Cleaning up once is not enough - without a policy they come straight back. Use Data Lifecycle Manager to create and expire snapshots on a schedule, so old ones age out automatically instead of waiting for someone to notice. Tag snapshots with what they are for at creation, so a future you can tell a deliberate DR copy from forgotten debris. Then the list stays short on its own.

Want to know how much of your storage bill is orphaned snapshots and volumes? Connect your account read-only and see what it is wasting, in real dollars.

Connect your AWS

The role can only read - Get, Describe, List, nothing else. Read the exact permissions before you deploy it, and delete the stack whenever you want.

Frequently asked questions

How much do EBS snapshots cost?+

EBS snapshots are billed at $0.05/GB-month on the data actually stored. Snapshots are incremental, so you pay for unique changed blocks rather than the full volume size each time - but forgotten ones still add up fast.

What is an orphaned EBS snapshot?+

A snapshot whose source volume no longer exists. When a volume is deleted or an instance is terminated, its snapshots stay behind. They are no longer attached to anything, often untagged, and easy to lose among the rest - but they keep billing.

Does deleting a volume delete its snapshots?+

No. Snapshots are independent of the volume they came from. Deleting the volume, or terminating the instance, leaves the snapshots in place billing at $0.05/GB-month until you remove them.

How do I find unused EBS snapshots?+

List every snapshot you own with `aws ec2 describe-snapshots --owner-ids self`, then list existing volumes with `aws ec2 describe-volumes`. Any snapshot whose source volume is no longer in that list is orphaned.

Are old EBS snapshots safe to delete?+

Usually, if they are past your retention window and not a deliberate disaster-recovery or compliance copy. Check tags and descriptions first - a snapshot that looks unused can still be a DR copy someone relies on. When in doubt, keep the most recent and delete the stale rest.

What is Data Lifecycle Manager?+

Data Lifecycle Manager (DLM) automates snapshot creation and deletion on a schedule and retention policy you set. It is the way to stop orphans accumulating: snapshots expire automatically instead of piling up because nobody remembers to clean them.

Do snapshots cost the full volume size every time?+

No. The first snapshot of a volume captures all used blocks; each later snapshot only stores blocks that changed. You are billed for the total unique data across the snapshot chain at $0.05/GB-month, not the full volume per snapshot.

Related cost breakdowns

More AWS cost breakdowns