It is very common for people to buy more computing power than is really needed. If you do not have experience running similar workloads, you may not be sure which type of device to use. AWS Compute Optimizer is a tool that can help you figure it out.
What is Compute Optimizer?
The concept is very simple. When enabled, Compute Optimizer will analyze your running EC2 instances using CloudWatch logs and other metrics and give you a recommendation for another instance type if a change is needed. You can then upgrade or downgrade the specified EC2 instance to the optimized type.
It does not make first guesses for you ̵1; you still have to set up your instance with the programs it is to run and beat them with a real workload. The best thing you can do here is to override with large instances and then cut back when the Compute Optimizer has had a few days to analyze what is really necessary.
Compute Optimizer works with EC2 instances as well as automatic scaling groups. If you do not use automatic scaling, you may want to consider setting it, as it allows your computing power to scale throughout the day and more closely match the workload it handles. Compute Optimizer can be used to give you a recommendation for the underlying instances in the automatic scaling group.
Using the Compute Optimizer
If you want to test it, just turn it on. Go to the Compute Optimizer in the AWS Management Console and click “Opt In” to enable it.
It takes about 12 hours to collect data and report back with recommendations. When done, you will see a graph showing the percentage of your instances that are optimized, need to be upgraded or need to be downgraded.
To see the details, select either “EC2 Instances” or “Auto Scaling Groups” in the sidebar, depending on the type you are using.
You see a list of all your current instances, current prices and recommendations. Under “Price difference” you see how much you save (or spend) by switching to the recommended instance.
Here, the calculation optimizer found that the current current instance is quite optimized and has no problem using a
t2.micro. However, it is still recommended to upgrade to the new generation
t3.micro, which saves a small chunk per hour.
You can filter results by using the Compute Optimizer – optimized, child (needs to be upgraded) or parent (needs to be downgraded). This filters out the optimized instances so you can control what really needs to change. You can also filter by region here.
Compute Optimizer will do its thing in the background and be updated regularly with new recommendations.