A Python3 tool to help you determine the correct instance types to use for your running EC2/RDS instances.
Project description
AWS EC2/RDS Instance Right-Sizer
This tool is designed and written in Python 3.6.5 to help you determine the right AWS EC2/RDS instance type for your servers based on historical usage.
Usage:
usage: rightsizer.py [-h] [-p PROFILE] [-k ACCESSKEY] [-s SECRETKEY] [-r REGION] [-t THRESHOLD THRESHOLD] [-q QUERY] [-o OUTPUT] [-e] [-d] optional arguments: -h, --help show this help message and exit -p PROFILE, --profile PROFILE AWS Credentials Profile -k ACCESSKEY, --access-key ACCESSKEY AWS Access Key Id -s SECRETKEY, --secret-key SECRETKEY AWS Secret Access Key -r REGION, --region REGION AWS Region -t THRESHOLD THRESHOLD, --threshold THRESHOLD THRESHOLD The Cloudwatch [average, max] CPU usage threshold -q QUERY, --query-config QUERY The amount of [days, period] to query Cloudwatch for -o OUTPUT, --output OUTPUT The name/location of the csv file to output -e, --ec2-only Run this tool against EC2 Instances only -d, --rds-only Run this tool against RDS Instances only
Installation:
A pip package is available for this tool. This is the recommended way to install and run the tool. Download and run the tool using the steps below:
python3 -m pip install awsrightsizer --user
rightsizer [OPTIONS]
Upgrading
Upgrading is easy as well with pip, simply issue the following commands:
python3 -m pip install awsrightsizer --upgrade --user
rightsizer [OPTIONS]
Source Installation:
This tool is best run in a virtual environment. You may need to install a virtual environment tool such as python3-venv or python3-virutalenv via your package manager and/or install one via pip by running pip install virtualenv --user.
git clone https://github.com/gregoryjordanm/awsrightsizer.git
cd ./awsrightsizer
python3 -m venv venv or virtualenv -p python3 venv
. ./venv/bin/activate
pip install -r requirements
python rightsizer.py [OPTIONS]
Running Example:
Lets assume for a second that you have already installed the AWS CLI tools for your distribution…
Lets also assume that you have already run the aws configure command and have a profile named “dev” on your system that you have already tested and is functioning :)
To run this tool with your working profile, simply do the following:
rightsizer -p dev
The tool will output a “report_date.csv” file in the directory you ran it in.
Lets now assume that you hate my report name, simply run:
rightsizer -p dev -o your_awesome_new_csv.csv
The tool will now use your_awesome_new_csv.csv is the output file.
If you don’t have an AWS profile set up for some reason (it really does make life easier), then you can use the -k, -s. and -r flags to provide the necessary info.
rightsizer -k XXXXXXXXXXXX -s XXXXXXXXXXXXXXXXXXXXXXXX -r us-east-1
If you don’t want to have the tool pull 30 days worth of data, or if you don’t want the data periods to be 30 minutes, use the -q flag like so:
rightsizer -p dev -q 15,900
This will tell the tool to query 15 days at 15 minute intervals.
To run against just your EC2 assets, just issue the -e flag.
To run against just your RDS assets, just issue the -d flag.
If you are running this via the source, you will need to add python rightsizer.py to your command instead of just rightsizer.
Let me know if you find bugs :)
Attribution:
This tools is loosely based on the awsstats tool by FittedCloud.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for awsrightsizer-1.0.7.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71c8e69f5a0aded1ea0f8e6363b364bb323fa6981360b643e5238e7eaee2b9b6 |
|
MD5 | fcd0ce49fe051cf746fab120d9bdd821 |
|
BLAKE2b-256 | 055bf6bf0dcc1c94fd6b83df3afcd47787cd9c3db2cd73517a7acceacf9acf5f |