Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bonclay7/aws-amicleaner
Cleanup your old unused ami and related snapshots
https://github.com/bonclay7/aws-amicleaner
aws python
Last synced: 12 days ago
JSON representation
Cleanup your old unused ami and related snapshots
- Host: GitHub
- URL: https://github.com/bonclay7/aws-amicleaner
- Owner: bonclay7
- License: mit
- Created: 2016-03-10T11:21:04.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-11-20T16:08:52.000Z (12 months ago)
- Last Synced: 2024-10-10T19:42:19.293Z (about 1 month ago)
- Topics: aws, python
- Language: Python
- Size: 108 KB
- Stars: 362
- Watchers: 15
- Forks: 132
- Open Issues: 31
-
Metadata Files:
- Readme: README.rst
- Changelog: HISTORY.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
README
aws-amicleaner
==============Cleanup your old unused ami and related snapshots
|Travis CI| |codecov.io| |pypi|
Maintenance note
----------------
This project is not under active maintenance but still active.
Consider using the official AWS-supported `Amazon Data Lifecycle Manager
`__.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
-------------- `awscli `__
- `python 2.7 or 3+`
- `python pip `__This tool assumes your AWS credentials are in your environment, either with AWS
credentials variables :.. code:: bash
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`` :
.. code:: bash
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``:.. code:: json
{
"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
~~~~~~~~~.. code:: bash
[sudo] pip install aws-amicleaner
From source
~~~~~~~~~~~You can also clone or download from github the source and install with pip
.. code:: bash
cd aws-amicleaner/
pip install [--user] -e .Usage
-----Getting help
~~~~~~~~~~~~.. code:: bash
amicleaner --help
Fetch and clean
~~~~~~~~~~~~~~~Print report of groups and amis to be cleaned
.. code:: bash
amicleaner --full-report
Keep previous number of AMIs
.. code:: bash
amicleaner --full-report --keep-previous 10
Regroup by name or tags
.. code:: bash
amicleaner --mapping-key tags --mapping-values role env
Exclude amis based on tag values
.. code:: bash
amicleaner --mapping-key tags --mapping-values role env -excluded-mapping-values prod
Skip confirmation, can be useful for automation
.. code:: bash
amicleaner -f --keep-previous 2
Activate orphan snapshots checking
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code:: bash
amicleaner --check-orphans
Delete a list of AMIs
~~~~~~~~~~~~~~~~~~~~~.. code:: bash
amicleaner --from-ids ami-abcdef01 ami-abcdef02
.. |Travis CI| image:: https://travis-ci.org/bonclay7/aws-amicleaner.svg?branch=master
:target: https://travis-ci.org/bonclay7/aws-amicleaner
.. |codecov.io| image:: https://codecov.io/github/bonclay7/aws-amicleaner/coverage.svg?branch=master
:target: https://codecov.io/github/bonclay7/aws-amicleaner?branch=master
.. |pypi| image:: https://img.shields.io/pypi/v/aws-amicleaner.svg
:target: https://pypi.python.org/pypi/aws-amicleanerSee this `blog article
`__
for more information.