import boto3 ec2 = boto3.client('ec2') images = ec2.describe_images(Owners=['self']) for image in images['Images']: if image['State'] == 'available': snapshots = image['BlockDeviceMappings'] print "Deleting %s - %s" % (image['ImageId'], image['Name']) ec2.deregister_image(ImageId=image['ImageId']) for s in snapshots: if 'Ebs' in s: if 'SnapshotId' in s['Ebs']: print "Deleting %s" % s['Ebs']['SnapshotId'] ec2.delete_snapshot(SnapshotId=s['Ebs']['SnapshotId']) else: print image['State']