Skip to main content

A Python3 tool to help you determine the correct instance types to use for your running EC2/RDS instances.

Project description

made-with-python PyPI pyversions PyPI version Maintenance Open Source Love png2

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:

uUsage: rightsizer.py [OPTIONS]

  rightsizer takes user input and provides an output CSV of suggestions.

Options:
  -p, --profile TEXT             Your AWS Credentials Profile.
  -k, --access-key TEXT          Your AWS Access Key ID.
  -s, --secret-key TEXT          Your AWS Secret Access Key ID.
  -r, --region TEXT              The AWS Region to query.
  -t, --threshold INTEGER...     The Cloudwatch [average, max] CPU usage
                                 threshold.
  -q, --query-config INTEGER...  The amount of [days, period] to query
                                 Cloudwatch for.
  -o, --output TEXT              The Name/Location of the file to output.
  -e, --ec2-only
  -d, --rds-only
  -v, --verbose
  -h, --help                     Print help message

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:

  1. python3 -m pip install awsrightsizer --user

  2. rightsizer [OPTIONS]

Upgrading

Upgrading is easy as well with pip, simply issue the following commands:

  1. python3 -m pip install awsrightsizer --upgrade --user

  2. 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.

  1. git clone https://github.com/gregoryjordanm/awsrightsizer.git

  2. cd ./awsrightsizer

  3. python3 -m venv venv or virtualenv -p python3 venv

  4. . ./venv/bin/activate

  5. pip install -r requirements

  6. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awsrightsizer-1.1.2.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

awsrightsizer-1.1.2-py3-none-any.whl (87.2 kB view details)

Uploaded Python 3

File details

Details for the file awsrightsizer-1.1.2.tar.gz.

File metadata

  • Download URL: awsrightsizer-1.1.2.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.2 CPython/3.6.6 Linux/4.18.14-200.fc28.x86_64

File hashes

Hashes for awsrightsizer-1.1.2.tar.gz
Algorithm Hash digest
SHA256 69d1ba348401a917c5e690043c3ceba8aac5ee22a5f50588a21d11b21cc4cbc2
MD5 8fcd12e2c1182cda4dc79450ffcfa707
BLAKE2b-256 3bdff29d7325c97ae124b4525c6ec1e39f7bfc995f7962ee6d61c1e7e54e7039

See more details on using hashes here.

File details

Details for the file awsrightsizer-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: awsrightsizer-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 87.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.2 CPython/3.6.6 Linux/4.18.14-200.fc28.x86_64

File hashes

Hashes for awsrightsizer-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 de98555086f6019b7395b5ca37a1ab6f6fd7a1fc5734d5c89d66b77ab743d419
MD5 300596a4e7018c66910794378d824efa
BLAKE2b-256 b793dc7cb2d690fec231d525fb9ca154e72f74033ca02e993c5d629a2760cf05

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page