Skip to content

Instantly share code, notes, and snippets.

@sudheerchamarthi
Created October 7, 2020 16:33
Show Gist options
  • Save sudheerchamarthi/5e08cba29b13f80c075c1551ca811e4e to your computer and use it in GitHub Desktop.
Save sudheerchamarthi/5e08cba29b13f80c075c1551ca811e4e to your computer and use it in GitHub Desktop.
import boto3
from datetime import datetime, timedelta
import time
client = boto3.client('ec2', region_name='us-east-1')
ec2Usedamis = client.describe_instances()
ec2UsedamiList=[]
oldamilist = []
for ec2ami in range(len(ec2['Reservations'])):
ec2UsedamiList.append(ec2['Reservations'][ec2ami]['Instances'][0]['ImageId'])
createdAMI = client.describe_images(Owners=['self'])
for ami in range(len(createdAMI['Images'])):
amiCreationDate=datetime.strptime(response['Images'][ami]['CreationDate'], '%Y-%m-%dT%H:%M:%S.000Z')
AMIAge=(datetime.now() - amiCreationDate).days
if int(AMIAge) > 180:
oldamilist.append(createdAMI['Images'][ami]['ImageId'])
deleteList=list(set(oldamilist).difference(ec2Usedamis))
# Deregister AMI Code
for deleteami in deleteList:
try:
cleanupImage = client.describe_images(Owners=['self'], ImageIds=[deleteami])
#client.deregister_image(ImageId=deleteami)
# Get Snapshots
time.sleep(10)
for snapshots in range(len(cleanupImage['Images']['BlockDeviceMappings'])):
print(cleanupImage['Images']['BlockDeviceMappings'][snapshots]['Ebs']['SnapshotIds'])
#client.delete_snapshot(cleanupImage['Images']['BlockDeviceMappings'][snapshots]['Ebs']['SnapshotIds'])
except:
print("failed to delete AMI: " + deleteami)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment