Skip to content

Instantly share code, notes, and snippets.

@nirbhabbarat
Created February 9, 2018 06:56
Show Gist options
  • Select an option

  • Save nirbhabbarat/ee8772b7ba677fc45dc4ec4d26e4b19d to your computer and use it in GitHub Desktop.

Select an option

Save nirbhabbarat/ee8772b7ba677fc45dc4ec4d26e4b19d to your computer and use it in GitHub Desktop.

Revisions

  1. nirbhabbarat created this gist Feb 9, 2018.
    28 changes: 28 additions & 0 deletions aws_delete_ami_boto3.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    #!/usr/bin/env python
    ##### USE ON YOUR OWN RISK - THIS IS GOING TO DEREGISTER AMI OLDER THAN 30 DAYS

    import boto3
    from dateutil.parser import parse
    import datetime
    age = 30
    aws_profile_name = 'prod'
    def days_old(date):
    get_date_obj = parse(date)
    date_obj = get_date_obj.replace(tzinfo=None)
    diff = datetime.datetime.now() - date_obj
    return diff.days

    boto3.setup_default_session(profile_name = aws_profile_name)
    ec2 = boto3.client('ec2')
    amis = ec2.describe_images(Owners=[
    'self'
    ])
    for ami in amis['Images']:
    create_date = ami['CreationDate']
    ami_id = ami['ImageId']
    # print ami['ImageId'], ami['CreationDate']
    day_old = days_old(create_date)
    if day_old > age:
    print "deleting -> " + ami_id + " - create_date = " + create_date
    # deregister the AMI
    ec2.deregister_image(ImageId=ami_id)