Skip to main content
orphan · aws

EBS snapshots whose source volume is gone and no AMI uses them

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

ZopNight flags an Amazon EBS snapshot when its source volume no longer exists and no AMI you own references it, unless the snapshot looks like a database or disaster-recovery backup. The saving shown is the snapshot's full priced cost, which can overstate the real reduction because snapshots are incremental and share blocks.

Signal and threshold

How ZopNight evaluates EBS snapshots whose source volume is gone and no AMI uses them.
Field Value
Rule IDsRC-021
Categoryorphan
Severitylow
Metricnone — pure configuration read
Thresholdsource volume deleted and no self-owned AMI reference
SourceZopNight
Permissions usedec2:DescribeSnapshots · ec2:DescribeVolumes · ec2:DescribeImages

Snapshots outlive the volumes they came from

An EBS snapshot is an incremental backup: AWS saves only the blocks that changed since the previous snapshot. Snapshots do not depend on the volume staying around, so when a volume is deleted its snapshots remain and keep billing for the blocks they hold. Backup schedules that ran for years on a volume long since deleted are a common source of steady, invisible storage cost.

Matching snapshots to volumes and AMIs

Terminal window
aws ec2 describe-snapshots --owner-ids self \
--query 'Snapshots[].[SnapshotId,VolumeId,StartTime,VolumeSize]' --output table
aws ec2 describe-volumes --volume-ids vol-0123456789abcdef0
aws ec2 describe-images --owners self \
--filters Name=block-device-mapping.snapshot-id,Values=snap-0123456789abcdef0

If describe-volumes reports the volume does not exist and describe-images returns nothing, the snapshot is a candidate.

Two facts and one veto

ZopNight flags a snapshot when discovery has proved that its source volume is gone and that no AMI owned by the account references it. It then applies a veto for backups that look deliberate: a snapshot whose metadata, tags or name identify a database engine, a data tier or a stateful business application is treated as a disaster-recovery copy and skipped, even if its name alone is generic. The snapshot must also have a price.

When no finding appears

Snapshots whose volume still exists are not orphans. A snapshot used by a registered AMI cannot be deleted anyway: the deletion guide says you must deregister the AMI first. Snapshots with no price are skipped rather than shown with a $0 saving.

Why the saving is an upper bound

Terminal window
saving = the snapshot's full priced cost
cost after fix = 0

Each snapshot is priced independently. AWS bills only unique blocks, and its guide states that deleting a snapshot might not reduce storage costs when other snapshots still reference its data. Deleting one snapshot from a chain can therefore save less than the figure shown; deleting the whole chain recovers the full amount.

Cleaning up orphaned snapshots

  1. Confirm the source volume is gone and no AMI or launch template needs the snapshot.
  2. If the data might matter later, move it to the archive tier, which converts it to a full snapshot and offers up to 75 percent lower storage cost for snapshots kept 90 days or longer.
  3. Otherwise delete it with aws ec2 delete-snapshot --snapshot-id snap-0123456789abcdef0.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·