AWS provides a range of monitoring and reporting tools for analyzing resource utilization data at an individual EC2 instance level.
However, it is difficult for customers to digest a large amount of information in order to reach meaningful conclusions in an aggregated manner.
Many AWS customers are looking for a simple reporting tool which can provide quicker and easier analysis that can help them understand the utilization efficiency of their environment that can lead to immediate rightsizing actions. Such tools are useful to identify potential cost savings and to reduce AWS spend significantly.
An open source EC2 Rightsizing Analysis Tool enables customers to have insights into their EC2 resources and identify overprovisioned EC2 instances. Users run the tool in their environment and do not need to give access to third parties.
Use the following command to run the tool:
python ec2stats.py -k YOUR_ACCESS_KEY -s YOUR_SECRET_ACCESS_KEY
The EC2 Rightsizing Analysis Tool reports the following:
- Average CPU utilization distribution and Summary: Distribution shows how your EC2 instances’ average CPU utilization (based on data from 14 days) is distributed over 10% increments. Summary shows min, max and mean of average CPU utilization, number of instances under <=5% utilization, <=10% utilization and <=30% utilization.
- Maximum CPU utilization distribution and Summary: Distribution shows how your EC2 instances’ maximum CPU utilization (based on data from 14 days) is distributed over 10% increments. Summary shows min, max and mean of maximum CPU utilization, number of instances under <=5% utilization, <=10% utilization and <=30% utilization
- Distribution of Instance types: This data shows how your EC2 instances are distributed across various families of EC2 instances in your environment.
- Efficiency Score: It gives the efficiency score and compares it to other users with similar EC2 spending.
- Instances under the specified average or maximum CPU utilization: This report provides a list of EC2 instances and details of EC2 instances with average or maximum CPU utilization under the specified limit
The REST interface allows customers to integrate the service into their existing AWS management systems. For better visualization of results, use an optional web interface. The web page allows user to upload Cloudwatch stats generated by the utility and get a visualized view of the analysis. It shows the distribution of CPU usage in terms of Average CPU Utilization and Maximum CPU Utilization. The report singles out the numbers of instances with CPU utilization below 5%, 10%, and 30%. It gives customer a clear view of the efficiency of their EC2 instances.
How does one use this data to right-size EC2 instances?
While there are metrics such as memory utilization, disk utilization, and network bandwidth utilization that should be considered for more accurate rightsizing decisions, CPU utilization is a key metric to determine if an instance is over provisioned. Instances with low maximum CPU utilizations (e.g. >10%) are candidates for rightsizing.
Once instances that are over-provisioned are identified, switch the instance type down by one level first. For e.g. if you are using m4.4xlarge instance type which has been identified as a candidate, you can switch it to m4.2xlarge (and save 50% of the cost).
Editor's note: This post was originally published on the now retired FittedCloud blog (January 2018).
Understand and optimize the total cost of cloud and hybrid with Apptio Cloudability.
»Download these eBooks to optimize hybrid and cloud by right-sizing legacy spend, shifting savings to innovation and efficiently embracing cloud:
- Eliminate cloud sprawl
- How to prepare for your cloud migration
- The essential guide to building a cloud center of excellence
»Read more on Emerge: