Skip to content

Instantly share code, notes, and snippets.

@limed
Created September 27, 2018 22:41
Show Gist options
  • Save limed/e2e56f340b3dbd0e4c7d8fc4cdb3d793 to your computer and use it in GitHub Desktop.
Save limed/e2e56f340b3dbd0e4c7d8fc4cdb3d793 to your computer and use it in GitHub Desktop.
Deregister and delete ami based on tags
#!/bin/bash
project_name=$1
if [ -z ${project_name} ]; then
echo "Usage: $0 <project_name>"
exit 1
fi
regions="$(aws ec2 describe-regions --query "Regions[].RegionName" --output text)"
for region in ${regions[@]}; do
echo "---- Region: ${region} ---"
ami_id=$(aws ec2 describe-images --owner self --region ${region} --filters "Name=tag:project, Values=${project_name}" --query "Images[].ImageId" --output text)
if [ ! -z "${ami_id}" ]; then
for ami in ${ami_id[@]}; do
snapshot_id=$(aws ec2 describe-images --image-ids ${ami} --query "Images[].BlockDeviceMappings[].Ebs.SnapshotId" --region "${region}" --output text)
echo "Deregistering AMI: ${ami}"
aws ec2 deregister-image --image-id "${ami}" --region ${region}
echo "Deleting snapshot ${snapshot_id} for AMI ${ami}"
aws ec2 delete-snapshot --snapshot-id "${snapshot_id}" --region ${region}
done
else
echo "No AMI found"
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment