Table Of Contents
What Is AWS Compute Optimizer? How AWS Compute Optimizer Works Recommendations: AWS Compute Optimizer Vs. AWS Cost Explorer Vs. AWS Trusted Advisor What Are the Benefits of Using Compute Analyzer? What Are AWS Compute Optimizer’s Limitations? Is There A Better AWS Compute Optimizer Alternative? AWS Compute Optimizer FAQ

Amazon Web Services (AWS) offers the convenience of choosing specific virtual machine combinations to meet your compute needs. Unlike traditional data centers, you can also scale your cloud resources automatically to meet fluctuating workload needs.

The best part is that you can rightsize your workload requirements to specific instance types (VM types) offered by AWS. By hand, this takes a lot of time and is prone to errors. This is where AWS Compute Optimizer comes into play.   

So, how does AWS Compute Optimizer help in this regard?

What Is AWS Compute Optimizer?

AWS Compute Optimizer is an AWS service that helps you pick and choose the most optimal Amazon EC2 instances for maximum efficiency and performance. 

Compute Optimizer uses machine learning (ML) to analyze your historical resource consumption. 

By analyzing the data, it recommends ways to maximize compute efficiency without spending extra. In turn, it shows you whether your resources are over-provisioned, under-provisioned, or optimized.

AWS Compute Optimizer provides analysis of and optimization recommendations for four AWS services:

  • Amazon Elastic Compute Cloud (EC2) instance types
  • Amazon Elastic Block Store (EBS) volumes
  • AWS Lambda functions
  • Auto Scaling Groups (ASC)
finops-automation-series-thumbnails

How AWS Compute Optimizer Works

You must opt into using AWS Compute Optimizer. You can enable this in the Compute Optimizer console, which you can access from the AWS Compute Optimizer page.

AWS Compute Optimizer

Once you opt-in, the tool will use AWS CloudWatch metrics to infer configuration and resource consumption metrics. However, Compute Optimizer will only have read-only access (service-linked role), so it cannot change your CloudWatch metrics.

Next, AWS Compute Optimizer begins to analyze your AWS resources. Note that you need to run your organization’s metric data on the cloud for 30-60 continuous hours in order to generate recommendations. You can think of this as the minimum threshold for accurate recommendations.

Depending on how many AWS resources you have, the tool may take up to 12 hours to complete the analysis. You need to have invoked AWS Lambda at least 50 times in the previous 14 days for Compute Optimizer to generate AWS Lambda optimization recommendations.

What metrics does AWS Compute Optimizer use to make recommendations?

From AWS CloudWatch, AWS Compute Optimizer collects metrics on virtual CPU, memory, storage, network in/out, disk read/write, volume read/write, and other metrics on currently running instances. 

As a further option, you can install the AWS CloudWatch Agent to collect additional Compute Optimizer metrics like operating system memory (at extra cost).

By default, the service collects historical metrics from the last 14 days of utilization. They also set it to collect data in five-minute increments. If you want, you can decrease that to every minute. 

You can also extend the analysis period from 14 days to three months using Enhanced infrastructure metrics. Each of these extras is charged separately.

What recommendations does AWS Compute Optimizer provide?

To help right-size your workloads, Compute Optimizer provides up to three EC2 instance options, multiple EBS volume selections, and various Lambda function configuration choices.

Compute Optimizer also estimates and reports what vCPU usage, memory utilization, and workload runtime would be if you use the recommended AWS resource options. 

This gives you an idea of how your workload would perform if you implemented the recommended options before you even decide to implement them.

Once you are on the Compute Optimizer dashboard and have your AWS location properly entered, you’ll notice three types of recommendations on display:

AWS Compute Optimizer dashboard

Credit: Well Architected Labs

  • Over-provisioned – Compute Optimizer generates this status when it is possible to reduce one or more of its specifications without negatively affecting workload performance.
  • Optimized – This status shows your system configuration meets all of your workload’s performance requirements.
  • Under-provisioned – Here, the tool considers one or more aspects of your system configuration insufficient to support your workload’s demands.

To proceed, you need to click on one of these “statuses”. To review an optimization status, click the radio button on the left. Then go to the View Details tab on the extreme right of the dashboard to view the details — like this:

EC2 Instance

Credit: Details on over-provisioned EC2 instances on Compute Optimizer – Well-Architected Labs

AWS Compute Optimizer also displays resource utilization graphs, like this:

AWS Compute Optimizer

Credit: Well-Architected Labs

This image does not show usage metrics for the memory utilization graph.

This is because AWS Compute Optimizer does not give recommendations until that instance’s memory utilization is enabled. So, ensure all resources have this enabled in order to receive recommendations on all of them.

Now, here is an example of how AWS Compute Optimizer makes EC2 instance recommendations:

EC2 instance

Each option includes a recommendation for a specific instance type, as well as a comparison of the difference in costs and performance that may occur if you implement the recommendations.

Important note: AWS Compute Optimizer provides analyses and recommendations for M, C, R, T, I, D, H, and X families of EC2 instances and Auto Scaling Groups. It does not support similar capabilities for G instance families.

For EBS volumes, Compute optimizer supports Provisioned IOPS (io1 io2) -> IOPS and General Purpose (SSD GP3) -> IOPS and Throughput. For AWS Lambda functions, it provides optimization recommendations on Compute-intensive functions and Over-provisioned memory functions.

Recommendations: AWS Compute Optimizer Vs. AWS Cost Explorer Vs. AWS Trusted Advisor

In comparison with AWS Cost Explorer and AWS Trusted Advisor, AWS Compute Optimizer provides more detailed configuration and resource utilization information.

Also, Cost Explorer and Trusted Advisor recommendations tend to focus on AWS cost management, while Compute Optimizer optimization recommendations tend to focus on improving system performance without paying too much attention to the cost implications.

What Are the Benefits of Using Compute Analyzer?

  • AWS Compute Optimizer is available to all AWS customers, no matter what your support level is.
  • The service is free with an AWS subscription, but you can choose to pay extra for even more capabilities, like increasing the analysis period from the default 14 days to three months to improve the recommendations’ accuracy.
  • It provides optimization recommendations for most families of EC2 instances and Auto Scaling Groups.
  • By implementing the recommendations, you can often save money as well.
  • The service shows optimized, over-provisioned, and under-provisioned resources clearly. So, you can pinpoint where you are doing well and where you need to rightsize if you don’t want to lose money or degrade system performance.
  • AWS Compute Analyzer covers some of the most used AWS services; Amazon EC2 instances, Amazon EBS, Auto Scaling Groups, and AWS Lambda.

What Are AWS Compute Optimizer’s Limitations?

  • While it provides actionable optimization recommendations, there is no direct way to implement the rightsizing action. You must ‌manually adjust the instance settings.
  • AWS Compute Optimizer is not available in all regions. It also supports M, C, R, T, and X instance families. If you use a combination of supported and unsupported instance families, Compute Optimizer only makes recommendations for the supported types.
  • Compiling recommendations based on just 14 days of CloudWatch data may cause inaccuracies, especially if any anomalies occurred during those two weeks or if your workload fluctuates with the seasons.
  • The service does not provide recommendations for optimizing Graviton and network-optimized (-n) instances.
  • It’s challenging to customize recommendations and filters vary by AWS region.
  • If you have a multi-cloud or hybrid cloud setup, AWS Compute Optimizer may not be helpful.

Key takeaway: AWS Compute Optimizer helps you view how you can optimize EC2 instances, EBS volumes, Auto Scaling Groups, and AWS Lambda functions. But it does not automatically apply the recommendations.

Instead, you must apply them manually and indirectly. Also, it is ideal for recommending performance optimization rather than optimizing both performance and cost.

Is There A Better AWS Compute Optimizer Alternative?

You can consider using both of these options together with Compute Optimizer:

1. ProsperOps

ProsperOps

ProsperOps empowers you to:

  • Automatically detect optimized, under-provisioned, and over-provisioned resources in your AWS environment continuously. Unlike Compute Optimizer, ProsperOps will rightsize them based on your pre-set triggers to save you time and money daily.
  • Use your aggregate EC2 spend to automate choosing the right AWS Savings Plans and Reserved Instances for your workloads.
  • Start saving on RIs and Savings Plans right away.
  • Minimize the risk of commitment lock-in
  • Optimize instances continuously without human intervention so you can focus on innovation elsewhere.
  • Adjust your Amazon EC2 commitments in real-time to meet your environment’s capacity requirements.

ProsperOps is an official CloudZero partner. Furthermore, it is a founding member of the FinOps Foundation, a FinOps Certified Platform, a 2021 Gartner Cool Vendor in Cloud Computing, and an AWS Advanced Technology Partner.

Learn more about how ProsperOps autonomous savings works here.

2. Xosphere

Xosphere

With Xosphere Instance Orchestrator, you can run AWS EC2 Spot Instances at the same reliability level as On-Demand instances — but at a fraction of the cost. 

Xosphere automatically replaces On-Demand instances with the more affordable Spot instances whenever they are available. It does this continuously and seamlessly, moving applications to the right place at the right time to maximize savings, reliability, and availability.

Learn more about how Xosphere works here.

Important note: Using CloudZero’s autonomous discount optimization dashboard, you can quickly identify workloads that can benefit from optimization.

With ProsperOps or Xosphere, you can deploy fully managed instance optimization with just one change to an auto-scaling group tag. The result is full visibility into your discounts, along with the assurance that your discounts are managed as efficiently as possible.

3. Turbonomic

Turbonomic

Compared to Compute Optimizer, IBM’s Turbonomic offers broader performance and cost optimization capabilities. For example, it works across multiple cloud platforms, including AWS, Azure, and GCP.

In addition, Turbonomic uses a combinatorial algorithm to scan millions of alternative solutions across compute, network, and storage. It then suggests the most economical options for virtual machines (VMs) in your cloud.

There’s more:

  1. Automation and optimization: Turbonomic continuously analyzes workload performance and resource utilization and automatically adjusts resource allocations to ensure optimal performance and cost efficiency.
  2. Application-aware optimization: It considers each application’s specific resource requirements and performance characteristics.
  3. Visibility and control: IBM Turbonomic offers intuitive dashboards and reporting tools to track resource utilization, performance metrics, and cost trends across your entire cloud environment.
  4. Integration and extensibility: Besides a wide range of integrations with third-party tools and services, Turbonomic also provides APIs and SDKs for custom integrations and automation.
  5. Enterprise-grade reliability and support: Turbonomic is backed by IBM’s reputation for enterprise-grade reliability, security, and support. This is a key consideration, especially for mission-critical workloads in the cloud.

Overall, IBM Turbonomic is a great AWS Compute Optimizer alternative for organizations with enterprise-grade, multi-cloud environments.

4. CloudZero

CloudZero

CloudZero empowers you with comprehensive insights into your AWS spending and optimization opportunities. By leveraging CloudZero’s platform, you can gain visibility into your effective savings rate (ESR) and identify areas for cost optimization across your AWS environment.

With CloudZero, you can:

  • Automatically detect optimized, under-provisioned, and over-provisioned resources in your AWS environment.
  • Utilize aggregated EC2 spend to automate the selection of the right AWS Savings Plans and Reserved Instances tailored to your workloads.
  • Start saving on RIs and Savings Plans immediately while minimizing the risk of commitment lock-in.
  • Continuously optimize instances without manual intervention, allowing you to focus on innovation elsewhere.
  • Gain real-time adjustments to your Amazon EC2 commitments to meet your environment’s capacity requirements effectively.

to see your effective savings rate (ESR) and optimize your AWS discounts. Whether you use custom tools, Cloud provider tools, or third-party solutions, including CloudZero, you’ll be able to see all your discounts in one place.

AWS Compute Optimizer FAQ

The following are some answers to some of the most frequently asked questions about AWS Compute Optimizer.

Is AWS Compute Optimizer free?

Yes. AWS Compute Optimizer is free‌, provided you have an AWS account.

What AWS resource types does Compute Optimizer rightsize?

AWS Compute Optimizer provides recommendations for optimizing Amazon EC2 instances, Amazon EBS volumes, AWS Lambda functions, and AWS Auto Scaling Groups.

Who can use Compute Optimizer in AWS?

Besides standalone AWS accounts, the service also supports the Management Account of an organization in AWS and member accounts of the organization.

How far back can AWS Compute Optimizer look back to make recommendations?

14 days. But once you activate Enhanced infrastructure metrics (paid feature), you can analyze up to three months of configuration and utilization metrics at the resource, account, or organization levels.

What recommendations does AWS Compute Optimizer make for AWS Lambda?

It offers recommendations on both compute-intensive and over-provisioned memory Lambda functions.

What AWS Services does Compute Optimizer analyze and provide recommendations for?

AWS Compute Optimizer analyzes configuration and utilization data on Amazon EC2 instances, AWS Lambda functions, Amazon Elastic Block Storage (EBS) volumes, and Auto Scaling Groups.

How do I enable Compute Optimizer on AWS?

Visit the AWS Compute Optimizer web page, and if you already have an AWS account, opt into using Compute Optimizer through the Compute Optimizer console or API.

The Modern Guide To Managing Cloud Costs

Traditional cost management is broken. Here's how to fix it.

Modern Cost Management Guide