Skip to main content

Cleanup your old unused ami and related snapshots

Travis CI codecov.io pypi

Description

This tool enables you to clean your custom Amazon Machine Images (AMI) and related EBS Snapshots.

You can either run in fetch and clean mode where the tool will retrieve all your private AMIs and EC2 instances, exclude AMIs being holded by your EC2 instances (it can be useful if you use autoscaling, and so on …). It applies a filter based on their names or tags and a number of previous AMIs you want to keep. You can also check and delete EBS snapshots left orphaned by manual deletion of AMIs.

It can simply remove AMIs with a list of provided ids.

Prerequisites

This tool assumes your AWS credentials are in your environment, either with AWS credentials variables :

export AWS_DEFAULT_REGION='your region'
export AWS_ACCESS_KEY_ID='with token Access ID'
export AWS_SECRET_ACCESS_KEY='with token AWS Secret'

or with awscli :

export AWS_PROFILE=profile-name

Minimum AWS IAM permissions

To run the script properly, your aws user must have at least these permissions in iam:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1458638250000",
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteSnapshot",
                "ec2:DeregisterImage",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeSnapshots",
                "autoscaling:DescribeAutoScalingGroups",
                "autoscaling:DescribeLaunchConfigurations"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Installation

amicleaner is available on pypi and can be installed on your system with pip

From pypi

[sudo] pip install aws-amicleaner

From source

You can also clone or download from github the source and install with pip

cd aws-amicleaner/
pip install [--user] -e .

Usage

Getting help

amicleaner --help

Fetch and clean

Print report of groups and amis to be cleaned

amicleaner --full-report

Keep previous number of AMIs

amicleaner --full-report --keep-previous 10

Regroup by name or tags

amicleaner --mapping-key tags --mapping-values role env

Exclude amis based on tag values

amicleaner --mapping-key tags --mapping-values role env -excluded-mapping-values prod

Skip confirmation, can be useful for automation

amicleaner -f --keep-previous 2

Activate orphan snapshots checking

amicleaner --check-orphans

Delete a list of AMIs

amicleaner --from-ids ami-abcdef01 ami-abcdef02

See this blog article for more information.

History

0.1.0 (2016-08-22)

  • First release on PyPI.

0.1.1 (2016-08-22)

  • Documentation update

  • rst files in pip package

Metadata

Release files for aws-amicleaner 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aws-amicleaner 0.2.2
File Size Uploaded
aws-amicleaner-0.2.2.tar.gz 17.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for aws-amicleaner 0.2.2
File Interpreter ABI Platform
aws_amicleaner-0.2.2-py3.6.egg Legacy Egg format - - Details
aws_amicleaner-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 58.0 kB

Release files / aws-amicleaner-0.2.2.tar.gz

Download URL aws-amicleaner-0.2.2.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c8a8721c055e59a20e56dd1796ff1228ae5c165341c104267c43e881e3cd8fdf
BLAKE2b-256 checksum
How to use checksums
47c7b3f15132bf0220142612f9fe8bbdd1ad521f182394a7acc1cabcd3c1e2dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / aws_amicleaner-0.2.2-py3.6.egg

Download URL aws_amicleaner-0.2.2-py3.6.egg
Size 25.2 kB
Tags Egg
SHA-256 checksum
How to use checksums
a2dbec1ee7e299fda0e0c3ccf70cb9aacc0c58fd0a21926c86ac2a5756a91100
BLAKE2b-256 checksum
How to use checksums
5bcf9358ed763d5c9a6f7440f36d50233f8a016aa087f47cc7fc376789b4c22a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / aws_amicleaner-0.2.2-py3-none-any.whl

Download URL aws_amicleaner-0.2.2-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4e1d60d0c1dec7d24614aede6deff0a807531b29d348d1cf3f52361da69b2b70
BLAKE2b-256 checksum
How to use checksums
2ec6e1bd0e2469b9c111a454244f532bc4e1ac76c844c8776e66f97bfe17481f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.2 This release

3 release files

0.2.1

1 release file

0.2.0

1 release file

0.1.3

3 release files

0.1.2

1 release file

0.1.1

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page