Find all snapshots created by ami where ami is deleted

If you have only been creating snapshots at AMI creation time, you may be able to reliably do this with the CLI or powershell tools:

  • Get all EC2 snapshots created by your AWS Account (OwnerID = your aws account)
  • Get Snapshots associated with still running Volumes
    • Of these snapshots, attempt to match their VolumeID with the VolumeID of still running Volumes. Output the SnapshotID of matches.
  • Get Orphaned Snapshots/Volumes
    • Of these snapshots, attempt to match their VolumeID with the VolumeID of still running Volumes. Output the SnapshotID of snapshots that aren't matched with still running volumes.

You'll need:

  • Get-EC2Snapshot or ec2-describe-snapshots
  • Get-EC2Volume or ec2-describe-volumes

That won't identify that these volumes were generated along with AMIs that you want to delete, though... only that they've been orphaned. Consider saving yourself a lot of future headache and tag your EC2 volumes at creation time with some simple metadata about who was responsible for creating them, and what they were created for.


I have written a small python script which generates csv raport with all information about snapshot usage. It includes information about linked volumes, instances and amis.

https://gist.github.com/Eyjafjallajokull/4e917414cfb191391f9e51f6a8c3e46a


If you try to delete a snapshot that's tied to an existing AMI, it will give an error and ask you if you're sure.

What I did was selected all of my snapshots and clicked delete, and then just pressed cancel when it let me know that some AMIs were still tied to existing AMIs. Probably the fastest yet scariest way to solve this problem.