AWS Compute Optimizer

Complete FinOps Guide
calendar May 12, 2021
Chapter 2.4 AWS Compute Optimizer

AWS Compute Optimizer is an Amazon Web Services (AWS) offering that analyzes Elastic Compute 2 (EC2) Instances, EBS Volumes, Auto Scaling groups, and Lambda Functions using Machine Learning (ML) to generate recommendations for optimal instance and workload combinations.

In this article, we’ll look at how AWS Compute Optimizer can help your organization navigate the complexities of AWS service configuration and avoid unnecessary inefficiency or wasted spend.

Getting Started with AWS Compute Optimizer

Before using AWS Compute Optimizer, you must opt-in to the service and allow it to analyze the relevant data, as shown in the following image.

Using Compute Optimizer requires opting into read-only data access.
AWS Compute Optimizer Opt In

Since Compute Optimizer utilizes CloudWatch data to provide recommendations, AWS requires your consent to collect these metrics. Opting in to the AWS Compute Optimizer service also creates a service-linked role, granting AWS read-only access to your resources and CloudWatch data.

Metrics

AWS Compute Optimizer analyzes several metrics to provide reports and recommendations accessible in a simple dashboard. By default, it examines CPU, storage, network ingress, and network egress utilization. If you want to analyze operating system memory metrics, you must install and configure the AWS CloudWatch agent, which incurs additional API and storage charges. It’s also not a practical solution for most organizations that use a different tool to monitor their EC2s.

Compute Optimizer analyzes data in 5-minute increments out of the box; however, AWS recommends reducing your data collection increments down to one minute. Note that detailed monitoring incurs additional charges; consider whether the benefits are worth the extra cost for your needs.

Analysis Period

AWS Compute Optimizer leverages the preceding 14 days’ worth of data to make recommendations. This setting cannot be changed, extended, or amended in any way. Nevertheless, the service does generate dashboards and reports for instances running for approximately 30 hours. In some cases, this period can be as long as 60 hours, depending on the workload and instance configuration. Recommendations for Lambda functions can take a while longer. AWS Compute Optimizer does not provide optimization information for this service until it has been invoked at least 50 times in the last 14 days.

Machine learning for cloud resource optimization

LEARN MORE
S3 icon
Use machine-learning algorithms to configure cloud resources based on workload patterns
S3 icon
Let algorithms select the optimal cloud configuration from thousands of catalog options
S3 icon
Integrate to ITSM and CI/CD pipelines to provide transparency and automation

Recommendation Types

AWS Compute Optimizer generates one of three recommendations, depending on its analysis outcome:

Optimized
AWS Compute Optimizer considers a service optimized if all the specifications meet a workload’s performance requirements. However, this analysis does not account for a varying level of risk tolerance (for example, between a test and production environment).
Under-provisioned
AWS Compute Optimizer determines a service to be under-provisioned if at least one of its specifications does not meet a workload’s performance requirements, even if others do.
Over-provisioned
AWS Compute Optimizer determines a service to be over-provisioned if at least one of its specifications can be reduced without impacting your workload’s performance.

Once AWS Compute Optimizer has had enough time to analyze the initial data, the first recommendations appear on its dashboard. Since workloads experience peaks and troughs over time, the longer you allow the service to run, the more accurate its recommendations become.

AWS Compute Optimizer only provides these recommendations for four AWS services: EC2 Instances, Auto Scaling Groups, EBS Volumes, and AWS Lambda Functions.

EC2 Instance Recommendations

AWS Compute Optimizer can analyze and provide recommendations for EC2 instances; however, it only supports the M, C, R, T, I, D, H, and X instance families.

EC2 Findings Table

AWS Compute Optimizer provides the following information under its recommendations for EC2 Instances, as shown in the image below.

AWS Compute Optimizer EC2 instance recommendations
AWS Compute Optimizer EC2 instance recommendations
EC2 Instance Recommendations Fields
Field Name Description
Instance ID The AWS instance ID
Instance name The friendly name you can assign to an EC2 instance
Finding AWS Compute Optimizer’s finding. The result could be optimized, under-provisioned or over-provisioned
Current instance type The current instance type, e.g., t2.small
Current On-Demand price The current on-demand price for the configured instance
Recommended instance type AWS Compute Optimizer’s recommended instance type, e.g., t3.small
Recommended On-Demand price The on-demand price for AWS Compute Optimizer’s recommended instance type
Price difference The difference in cost per hour between the current and recommended instance type
Account ID The associated AWS account ID for the instance
Region The regional location for the instance
Auto Scaling Group name The Auto Scaling Group name. This field is blank if the instance does not belong to an Auto Scaling Group
Attached EBS Volumes The number of EBS volumes attached to the instance

Meet us at KubeCon + CloudNativeCon North America. Salt Lake City, Utah | November 13-15, 2024

Schedule a Meeting

EC2 View Details Table

You can view more detail for a recommendation by selecting “View Details” after selecting a row. Note that in the presented screenshot, Compute Optimizer offers three options. The tool expects users to choose the one best suited for them based on their judgment (which may not be evident to every user).

How to view AWS Compute Optimizer EC2 recommendations details
AWS Compute Optimizer EC2 recommendations details

EC2 Instance Recommendation Details Fields
Field Name Description
Options The option identifier. Typically, AWS Compute Optimizer offers three options – Current, Option 1, and Option 2
Instance type The instance type of the selected option
On-Demand price The on-demand price of the option chosen
Price difference The difference in cost per hour between the selected option and the current instance
Performance risk The potential performance risk should the subscriber opt to migrate their instance to the recommended AWS Compute Optimizer option. In the example above, migrating to the recommended option poses a very low-performance risk
vCPUs The number of vCPUs assigned to the selected option
Memory The amount of memory allocated to the selected option
Storage The type of storage available for the selected option
Network The networking throughput of the selected option

Auto Scaling Group Recommendations

AWS Compute Optimizer supports recommendations for Auto Scaling Groups; however, as with EC2 Instances, it can only offer this service to instances belonging to the M, C, R, T, I, D, H, or X instance families. The service also limits its analysis and recommendations to Auto Scaling Groups with a fixed size. This limitation means that the Auto Scaling Group must be configured with the desired, minimum, and maximum settings set to the same value with no scaling policy attached.

Auto Scaling Group Findings Table

The information provided is nearly identical to the data provided for EC2 Instances due to the underlying elements that make up this service.

AWS Compute Optimizer Auto Scaling group recommendations
AWS Compute Optimizer Auto Scaling group recommendations
Auto Scaling Groups Recommendation Fields
Field Name Description
Auto Scaling Group name The name given by the subscriber to the Auto Scaling Group
Finding AWS Compute Optimizer’s finding. The result could be optimized, under-provisioned or over-provisioned
Current instance type The Auto Scaling Group’s current instance type, e.g., t2.small
Current On-Demand price The current on-demand price for the configured instance
Recommended instance type AWS Compute Optimizer’s recommended instance type for the Auto Scaling Group, e.g., t3.small
Recommended On-Demand price The on-demand price for AWS Compute Optimizer’s recommended instance type
Price difference The difference in cost per hour between the current and recommended instance type
Desired number of instances The number of desired instances configured
Account ID The associated AWS account ID for the Auto Scaling Group
Region The regional location for the Auto Scaling Group

Auto Scaling Group Details Table

If you highlight the Auto Scaling Group and click on “View Details,” it provides further detailed information as you find with the other services AWS Compute Optimizer analyzes.

How to view AWS Compute Optimizer Auto Scaling group recommendation details
AWS Compute Optimizer Auto Scaling group recommendation details

Auto Scaling Groups Recommendation Details Fields
Field Name Description
Options The option identifier. Typically, AWS Compute Optimizer offers three options – Current, Option 1, and Option 2
Instance type The instance type of the selected option
On-Demand price The on-demand price of the selected option
Price difference The difference in cost per hour between the selected option and the recommended option
Performance risk The potential performance risk should the subscriber opt to migrate their instance to the recommended AWS Compute Optimizer option. In the example above, migrating to the recommended option poses a very low-performance risk
Desired number of instances The number of desired instances based on the selected option
Memory The amount of the memory allocated to the selected option
Storage The type of storage available for the selected option
Network The networking throughput of the selected option

EBS Volume Recommendations

AWS Compute Optimize supports the following EBS Volume recommendations:

General Purpose (SSD GP3)
>IOPs and throughput
Provisioned IOPS (io1 io2)
>IOPS

EBS Volumes Findings Table

For EBS Volume recommendations, AWS Compute Optimizer provides information relevant to this service type, as shown in the image below.

AWS Compute Optimizer EBS recommendations
AWS Compute Optimizer EBS recommendations
EBS Recommendations Fields
Field Name Description
Volume ID The volume ID of the EBS Volume
Finding AWS Compute Optimizer’s finding. The result could be optimized, under-provisioned or over-provisioned
Current volume type The current volume type, e.g., General purpose SSD (gp2)
Current size The size in GB of the EBS Volume
Current IOPS The IOPS allocated to the EBS Volume
Current monthly price The current monthly price of the EBS Volume
Recommended volume type The recommended volume type, e.g., General purpose SSD (gp3)
Recommended size The recommended size in GB of the EBS Volume
Recommended IOPS The recommended IOPS of the EBS Volume
Recommended monthly price The monthly price of the recommended EBS Volume
Price difference (monthly) The monthly price difference between the current and recommended EBS Volume
Attachment information The AWS attachment information ID
Account ID The associated AWS account ID for the EBS Volume
Region The regional location for the EBS Volume

Meet us at FinOps X Europe. Barcelona, Spain | November 12 -13, 2024.

Schedule a Meeting

EBS Volumes Details Table

As with the EC2 Instances, AWS Compute Optimizer provides further details when you highlight the relevant volume and click on “View Details,” as shown below.

How to view AWS Compute Optimizer EBS recommendations details
AWS Compute Optimizer EBS recommendation details

EBS Recommendation Details Fields
Field Name Description
Options The option identifier. Typically, AWS Compute Optimizer offers three options – Current, Option 1, and Option 2
Finding The selected option’s volume type, e.g., General purpose SSD (gp2)
Volume size The selected option’s size in GB of the EBS Volume
Baseline IOPS The selected option’s baseline IOPS
Burst IOPS The selected option’s burstable IOPS
Baseline throughput The selected option’s burst throughput in MiB per second
Burst throughput The recommended volume type, e.g., General purpose SSD (gp3)
Monthly price The monthly price of the selected option Volume
Price difference (monthly) The difference in the monthly price between the current EBS Volume and the selected option
Performance risk The potential performance risk should the subscriber opt to migrate their EBS Volume to the recommended AWS Compute Optimizer option. In the example above, migrating to the recommended option poses a very low-performance risk

AWS Lambda Function Recommendations

AWS Compute Optimizer can aid you in optimizing two categories of Lambda functions:

  1. Over-provisioned memory functions
  2. Compute-intensive functions

Functions must run at least 50 times over a 14 day period of analysis before AWS Compute Optimizer sends any recommendations. Elements such as function execution duration, CPU time used, and memory utilization are all considered.

Lambda Functions Findings Table

AWS Compute Optimizer Lambda recommendations
AWS Compute Optimizer Lambda Functions recommendations
Lambda Functions Recommendation Fields
Field Name Description
Function name The name of the Lambda Function
Function version The version of the Lambda Function
Finding AWS Compute Optimizer’s finding. The result could be optimized or not optimized.
Finding reason AWS Compute Optimizer’s finding reason. In the example above, AWS Compute Optimizer rates the Lambda Function as not optimized due to memory over-provisioning
Current configured memory The current configured memory of the Lambda Function
Recommended configured memory The recommended configured memory of the Lambda Function.

Lambda Functions Details Table

As with the other services, highlighting the function and clicking on “View Details” provides further detailed information to help you make an informed decision.

AWS Compute Optimizer Lambda recommendation details
AWS Compute Optimizer Lambda recommendation details
Lambda Functions Recommendation Details Fields
Field Name Description
Option The option identifier. Typically, AWS Compute Optimizer offers two options for Lambda Functions – Current and Option 1
Configured Memory The configured memory of the selected option
Cost Difference (%) The cost difference as a percentage between the current and selected option
Used memory (maximum) The used memory of the current Lambda function
Duration (average) The average duration of the current Lambda function
Projected duration (expected) The projected duration of the recommended Lambda function

Dashboard

The dashboard consists of four panes, one for each of the services AWS Compute Optimizer analyzes: EC2 Instances, EBS Volumes, Auto Scaling Groups, and Lambda Functions. Once your initial analyses are complete, the dashboard populates with data as shown in the following image. Note that the green bar means that the resources are optimized. The color would change to yellow or red depending on whether it finds resources that require optimization.

Review your findings in the dashboard
AWS Compute Optimizer Dashboard

Each pane provides an overview of the analyzed instances and whether they are optimized, under-provisioned, or over-provisioned.

To view recommendations for each Findings category, simply click “View recommendations for […].”

Selecting this link opens a new pane in the dashboard
View Recommendations by Findings Category

The detailed recommendation view differs for each element AWS Compute Optimizer analyzes. The example below shows a recommendation to change an EC2 instance from t2.medium to t3.medium (modernizing the EC2 generation) even though it reports that it’s optimized. In this example, by migrating to a more recent instance generation, the subscriber can save $0.0048 per hour. The fact that the instance shows as optimized, even though it still offers a recommended option to optimize further, may be confusing.

AWS Compute Optimizer dashboard showing recommendation details

Limitations and Shortcomings

Although AWS Compute Optimizer offers AWS subscribers some insights into services running on the AWS platform, the service has its limitations.

Analysis Period

AWS Compute Optimizer only analyzes data for the preceding 14 days. As some functions and processes run less frequently, the service may miss critical peaks or troughs. For example, if specific processes only run once a month, this data may not be analyzed by AWS Compute Optimizer if the period falls outside its 14-day window limitation.

Blackbox Analytics

The analytics engine that serves the recommendations is not exposed or explained, so users must accept the recommendations based on face value. This lack of understanding translates into a lack of confidence in the results.

Lack of Control

This limitation is related to the previous one in that the users lack both understanding and control of the recommendations engine. State-of-the-art recommendation engines allow users to configure constraints to control the results of the recommendations. For example, such advanced tools enable users to adjust a level of risk tolerance adequate for a production environment versus a development environment; or avoid certain families or types of EC2s (such as the EC2s belonging to the T series that have a burstable CPU) disapproved by their application team. Among other benefits, this feature could have helped eliminate some of the three options that may lead to a mistake by team members not aware of the company’s best practices.

Consideration for Reservations

EC2 recommendations should account for prior commitments made in the form of purchase reservations. For example, the AWS Compute Optimizer engine may recommend an m5.large EC2 instance without considering that the AWS account has purchased one-year reservation contracts for c4.large instances that have remained unused. In such a scenario, the least expensive instance is not the best choice since it would waste a prior investment.

Auto Scaling

The Auto Scaling recommendations feature does not provide any insight into Auto Scaling Groups (ASG) when the subscriber sets the desired, minimum, and maximum to different values with a scaling policy attached. Instead, the functionality is limited to the EC2s making up the ASG. The true benefit of auto-scaling comes from automated elasticity, where the service automatically scales up or down. This restriction limits AWS Compute Optimizer’s relevance for these particular services.

Containers and Nodes

AWS Compute Optimizer does not provide analysis or recommendations for containers and nodes. As containerization is a staple of many AWS-based solutions, not offering optimization support for this core service is another severe limitation.

Spot Pricing

One of the core benefits of using a service like AWS Compute Optimizer is increasing efficiency and reducing cost. However, the service does not provide an option for pricing spot instances.

RDS Support

AWS Compute Optimizer currently lacks support for the Relational Database Service (RDS).

Single Cloud Analysis

As most enterprises have adopted a multi-cloud strategy, they prefer a single solution spanning their entire cloud computing estate, including Microsoft Azure, Google Cloud, and private cloud. A single solution spanning hybrid cloud reduces the need for configuration, reconciliation, report consolidation, and user training.

A free 30-day trial for cloud & Kubernetes resource control. Experience in your environment or use sample data. See optimization potential in 48 hours. No card required.

Free Trial

Getting the Most From Your Cloud Services

Leveraging cloud services offers organizations and individuals several advantages. As they provide solutions on top of vast quantities of pooled computing resources, they deliver economies of scale. As a result, you can build and consume solutions at a fraction of the cost.

In addition to the low price point they offer, cloud services also provide improved flexibility and enhanced efficiency. The ability to scale up or down rapidly enables you to align your computing resources with your solution requirements without waste. Furthermore, as you only pay for what you use, cloud platforms offer the most cost-effective way to deliver apps and services.

However, leveraging these advantages can be challenging. The scale and complexity of modern public cloud platforms require you to plan, size, and architect your solution appropriately to ensure you gain the maximum benefit. AWS Compute Optimizer gives you some insight into a limited set of AWS services. It provides some analysis and offers recommendations, but its scope and feature set are limited. In an enterprise environment where organizations leverage multiple services from several cloud providers, using a third-party specialist optimization tool would be a better option.

FAQ About AWS Compute Optimizer

Is AWS Compute Optimizer free?

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

How do I enable Compute Optimizer on AWS?

Navigate to the AWS Compute Optimizer website, and if you have AWS account, you can initiate the use of Compute Optimizer by opting in via the Compute Optimizer console or through its API.

How does the cost-benefit analysis of using AWS Compute Optimizer differ for small versus large enterprises?

The cost-benefit analysis of using AWS Compute Optimizer can significantly differ between small and large enterprises. For small enterprises, the primary advantage lies in reducing operational costs and improving efficiency without the need for significant investment in dedicated IT resources or advanced cloud management tools. Small businesses can leverage AWS Compute Optimizer to fine-tune their AWS resource usage, potentially leading to substantial savings on their cloud bills. For large enterprises, the benefits extend to optimizing large-scale deployments and complex architectures, where even minor efficiency improvements can lead to significant cost reductions across numerous resources. However, large organizations might also have more complex requirements, such as compliance, security, and integration needs, which could necessitate additional investments in third-party tools or services to complement AWS Compute Optimizer’s recommendations.

Can AWS Compute Optimizer integrate with third-party monitoring and management tools, and if so, how?

AWS Compute Optimizer is designed to work seamlessly within the AWS ecosystem, primarily using CloudWatch data for its analysis. AWS services, in general, offer APIs and SDKs that facilitate integration with a broad range of external tools. Therefore, it’s plausible that data from third-party tools could be ingested into CloudWatch or another intermediary service that feeds into AWS Compute Optimizer, enabling a broader data analysis scope beyond the default AWS metrics.

What measures does AWS Compute Optimizer take to ensure the privacy and security of the data it analyzes?

AWS Compute Optimizer adheres to AWS’s standard practices for data security and privacy. Since it operates under a read-only model to analyze your AWS resource configurations and usage data, it doesn’t modify your resources. All data analysis and processing are conducted within the secure AWS environment, with AWS’s robust security measures protecting customer data. AWS also complies with major privacy regulations and frameworks, ensuring that data handling meets strict privacy standards.

How does AWS Compute Optimizer compare to similar services offered by other cloud providers or third-party vendors in terms of functionality, cost, and efficiency?

When comparing AWS Compute Optimizer to similar services offered by other cloud providers or third-party vendors, AWS Compute Optimizer’s main advantage lies in its deep integration with the AWS ecosystem and its use of machine learning to tailor recommendations specifically for AWS resources. Competing services may offer broader multi-cloud support or feature different optimization focuses, such as cost optimization across various cloud platforms or performance optimization for specific applications. However, AWS Compute Optimizer’s strength is its specific focus on optimizing AWS services, making it potentially more effective for AWS-centric environments. Cost-wise, AWS Compute Optimizer could be more cost-effective for AWS users due to its integration and the potential for cost savings it identifies, though third-party services might offer additional features or broader support that could justify their costs.

Discover the benefits of optimized cloud & container resources. Try Densify for free for 30 days!

Free Trial