AWS Compute Optimizer FAQs

Compute Optimizer delivers intuitive and actionable recommendations to help you choose the optimal AWS resources for your workloads.

General

AWS Compute Optimizer helps you identify the optimal AWS resource configurations, such as Amazon Elastic Compute Cloud (EC2) instance types, Amazon Elastic Block Store (EBS) volume configurations, task sizes of Amazon Elastic Container Service (ECS) services on AWS Fargate, commercial software licenses, AWS Lambda function memory sizes, and Amazon Relational Database Service (RDS) DB instance classes, using machine learning to analyze historical utilization metrics. Compute Optimizer provides a set of APIs and a console experience to help you reduce costs and increase workload performance by recommending the optimal AWS resources for your AWS workloads.

AWS Compute Optimizer delivers intuitive and easily actionable AWS resource recommendations to help you quickly identify optimal AWS resources for your workloads without requiring specialized expertise or investing substantial time and money. The Compute Optimizer console provides you with a global, cross-account view of all resources analyzed by Compute Optimizer and recommendations so that you can quickly identify the most impactful optimization opportunities.

To sign up for AWS Compute Optimizer, go to the Compute Optimizer console and click “opt in.” You must have an AWS account to access this service. Once you opt in, Compute Optimizer immediately starts analyzing your AWS resources and starts delivering recommendations. When you first opt in Compute Optimizer, it may take up to 24 hours to fully analyze the AWS resources in your account.

When you opt in AWS Compute Optimizer, you authorize the service to use AWS resource configuration data, CloudWatch metrics, and Amazon RDS Performance Insights data. This data is required because Compute Optimizer needs to identify the resources to assess, and it needs sufficient metrics history before it makes recommendations.

Cost Explorer Resource Rightsizing Recommendations and AWS Compute Optimizer use the same recommendation engine. Compute Optimizer delivers recommendations to help customers identify optimal EC2 instance types for their workloads. The Cost Explorer console and API surfaces a subset of these recommendations that may lead to cost savings, and augments them with customer-specific cost and savings information (such as billing information, available credits, RI and Savings Plans) to help cost-management owners quickly identify savings opportunities through infrastructure rightsizing. Compute Optimizer console and its API delivers all recommendations regardless of the cost implications. Engineering teams can use Compute Optimizer to evaluate price-performance trade-off for their workloads, receive recommendations that incorporate additional data (such as memory metrics), and evaluate projected resource utilization and performance risk.

AWS Compute Optimizer is integrated with Cost Optimization Hub. After enabling Cost Optimization Hub, you can view estimated monthly savings that incorporate your discounts in Compute Optimizer.

Recommendation Preferences

You can use the external metrics ingestion feature to configure AWS Compute Optimizer to ingest EC2 memory utilization metrics from one of the four observability products: Datadog, Dynatrace, Instana, and New Relic. When enabled, Compute Optimizer analyzes your external EC2 memory utilization metrics in addition to your CPU, disk, network, IO, and throughput data to generate EC2 rightsizing recommendations. Recommendations with memory data can help you identify additional savings opportunities and ways to improve application performance.

Savings Estimation Mode allows you to choose whether the estimated savings should consider your specific discounts, such as Reserved Instances and Savings Plans. By default, AWS Compute Optimizer estimates savings with your discounts. You can change Savings Estimation Mode settings to see savings before discounts.

AWS Compute Optimizer can identify the effort required to migrate your workloads from x86-based instance types to Arm-based AWS Graviton instances types by inferring the types of applications running on your instances. Inferred Workload Type infers the types of applications that might be running on your AWS resources, such as EC2 instances and Auto Scaling groups, by analyzing the attributes of your resources. These attributes include resource names, tags, utilization characteristics, and configuration. It can infer if your instances are running Amazon EMR, Apache Cassandra, Apache Hadoop, Memcached, NGINX, PostgreSQL, Redis, Kafka, or Microsoft SQL Server.

You can tailor Rightsizing Recommendation preferences to your workload requirements, uncovering more savings and performance enhancement opportunities. To accurately capture your recurring workload patterns, you can set lookback period to 14, 32, or 93 days (enhanced) in AWS Compute Optimizer. You can influence rightsizing recommendations by adjusting CPU and memory utilization headroom, as well as CPU utilization thresholds. A customizable list of EC2 instance types for EC2 and Auto Scaling group recommendations enables you to set specific resource constraints, such as application or business needs, on rightsizing recommendations. Compute Optimizer will limit rightsizing recommendations to the specified instance types on your list. After saving Rightsizing recommendation preferences, you can expect new rightsizing recommendations to be generated within 24 hours.

You can adjust utilization thresholds when you want to change AWS Compute Optimizer’s sensitivity to utilization spikes. For most workloads, transient spikes can occur, going beyond normal usage due to patching or instance restarts. To address this, you can set utilization thresholds, which represent the percentage of time your workload should run under your utilization headroom. If your workloads are less sensitive to spikes, you can decrease the threshold, which can lead to more savings. This allows Compute Optimizer to deliver rightsizing recommendations with the right amount of sensitivity for your performance and savings goals.

You should change the utilization headroom if you have high confidence in your future utilization trends. If you expect higher utilization in the future, or are unsure, you can set a higher headroom. If you are confident your utilization will remain steady, you can safely reduce your headroom.

AWS Compute Optimizer may update these numbers to reflect the latest technological updates and maintain recommendation quality. Compute Optimizer may fine-tune your chosen parameters based on your workload characteristics to ensure suitable instance recommendations for you.

You should define a preferred instance list when you want to control which instance types and families you want AWS Compute Optimizer to recommend. Defining a preferred instance list won’t prevent Compute Optimizer from generating recommendations for any instances currently excluded from the instance list. If you have specific rightsizing criteria based on instances, Instance Savings Plans, Reservations, burstable instances, CPU provider, or others, this allows you to configure the recommendations to align with your criteria.

If you are an organizational account holder or a delegated administrator, you can set recommendation preferences for your organization and its underlying accounts and regions. If you are an account owner, you can set recommendation preferences for your account and regions. When there are overlapping preferences at the resource, account, or organizational levels, the more granular preference overrides the broader preference. For example, resource-level preferences override account-level preferences, and account-level preferences override organizational preferences.

Recommendations

AWS Compute Optimizer delivers up to three resource recommended options for Amazon Elastic Compute Cloud (EC2), Amazon Elastic Block Store (EBS), and EC2 Auto Scaling groups. Compute Optimizer delivers one memory size recommendation for AWS Lambda functions, one task-level CPU and memory size recommendation for Amazon Elastic Container Service (ECS) services on AWS Fargate. Compute Optimizer delivers up to two resource recommended options for Amazon Relational Database Service (RDS) DB instances.  In addition, Compute Optimizer delivers one license recommendation for Microsoft SQL Server edition downgrading.

AWS Compute Optimizer delivers recommendations for selected types of EC2 instances, EC2 Auto Scaling groups, EBS volumes, Amazon ECS services on AWS Fargate, Lambda functions, RDS DB instances, and commercial software licenses.

AWS Compute Optimizer analyzes metrics from the past 14 days to generate recommendations for Amazon Elastic Compute Cloud (EC2) instances, EC2 Auto-Scaling groups, and Amazon Relational Database Service (RDS) DB instances, but you can change the settings to 32 or 93 days. Compute Optimizer analyzes metrics from the past 14 days to generate recommendations for other resource types.

You can quickly identify and prioritize top optimization opportunities through two new sets of dashboard-level metrics: savings opportunity and performance improvement opportunity.

Savings opportunity metrics quantify the Amazon EC2, Amazon EBS, Amazon ECS services on AWS Fargate, commercial software licenses, Amazon RDS, and AWS Lambda monthly savings you can achieve at the account level, resource type level, or resource level by adopting AWS Compute Optimizer recommendations. You can use these metrics to evaluate and prioritize cost efficiency opportunities, as well as monitor your cost efficiency over time. Performance improvement opportunity metrics quantify the percentage and number of underprovisioned resources at the account level and resource type level. You can use these metrics to evaluate and prioritize performance improvement opportunities that address resource bottleneck risks.

Enhanced infrastructure metrics is a paid AWS Compute Optimizer feature for EC2 instances and RDS DB instances that improves recommendation accuracy and relevance for workloads with monthly or quarterly utilization patterns. Upon activation of the feature, Compute Optimizer automatically ingests and analyzes up to six times more utilization metrics history than the default Compute Optimizer option (up to three months of history compared to 14 days). You can activate the feature at the organization, account, or resource level via the Compute Optimizer console or API for all existing and newly created EC2 instances, Auto Scaling groups, and RDS DB instances.

Visit the AWS Compute Optimizer pricing page for details.

Licensing optimization recommendations

AWS Compute Optimizer generates edition downgrading recommendations for SQL Server running on EC2. when you are not using any enterprise-only features or there is a viable alternative in Standard edition on AWS, you can downgrade from Enterprise to Standard to save up to 73% of SQL Server license cost. To receive the recommendation, customers need to enable agent-based CloudWatch Application Insights and grant it read-only access with database credentials. This license recommendation covers both your EC2 SQL Server license included (LI) and bring-your-own-license (BYOL) instances. In addition, you can optimize your licensing cost through EC2 instances rightsizing recommendations since SQL Server is licensed per CPU core only. Less vCPUs means less SQL Server license cost.

AWS Compute Optimizer analyzes your current configurations such as SQL Server edition, licensing options, and specific database level features you are using. Based on the analysis, it determines whether your SQL Server instances are optimized. Lastly, it generates recommendations based the pre-defined optimization criteria and then makes recommendations available in console or through APIs.

When you opt in AWS Compute Optimizer, you authorize the service to use AWS service configuration data and CloudWatch Application Insights metrics. For SQL Server, the data includes edition, licensing options, and SQL Server feature configurations tracked by CloudWatch Application Insights.

EC2 instance recommendations

AWS Compute Optimizer supports EC2 instance type and size recommendations for standalone EC2 instances of M, C, R, T, X, I, D, H, Z, G, and P instance families. For the full list of supported EC2 instance types, see documentation.

AWS Compute Optimizer analyzes default CloudWatch metrics, such as CPU utilization, network packets per second, local storage throughput, and local storage IOPS when generating EC2 instance type recommendations. EC2 instances need to have accumulative 30 hours of metrics before it can get recommendations.

If you use CloudWatch agent to publish memory utilization, AWS Compute Optimizer automatically analyzes memory metrics published by the CloudWatch Agent in the “CWAgent” namespace.

If metrics for a hardware resource, such as memory, are not available, AWS Compute Optimizer will attempt to avoid making a recommendation that downsizes that dimension.

Performance risk indicates the likelihood of the instance type not meeting the resource needs for your workload. AWS Compute Optimizer calculates an individual performance risk score for each resource dimension of the recommended instance, including CPU, memory, EBS throughput, EBS IOPS, disk throughput, disk IOPS, network throughput, and network PPS. For each resource dimension, the performance risk score is computed as the proportion of time over the historical lookback period where capacity may be constrained in the given resource dimension. The performance risk of the recommended instance is calculated as the maximum performance risk score across the analyzed resource specifications.

AWS Compute Optimizer projects the would-be CPU and memory utilization of your EC2 instance had you used the recommended option, so that you can understand how your workload would have performed on the recommended options. Compute Optimizer also lists the configuration differences between the current instance and the recommended instance type, so you can understand the updates you may need to apply to migrate your workloads from the current instance to the recommended instance type. 

After AWS Compute Optimizer identifies a list of optimal AWS resources for your workload, it incorporates a variety of pricing dimensions, such as on-demand pricing, along with expected performance risk to rank the recommendations. Compute Optimizer does not consider transient pricing factors, such as spot pricing.

Auto Scaling group recommendations

AWS Compute Optimizer provides EC2 instance type and size recommendations for EC2 Auto Scaling groups with a fixed group size, meaning desired, minimum, and maximum are all set to the same value and have no scaling policy attached. Additionally, all Auto Scaling group member instances must be of type M, C, R, T, X, I, D, H, Z, G, and P instance families. At this time Compute Optimizer does not support Auto Scaling groups configured with mixed instances policy. For the full list of supported EC2 instance types, see documentation.

AWS Compute Optimizer needs at least 30 consecutive hours of metrics before it makes recommendations for Auto Scaling groups. Compute Optimizer analyzes default CloudWatch metrics of each member EC2 instances, such as CPU utilization and network I/O metrics, as well as Auto Scaling group configuration, such as scaling policy and associated launch template.

EBS volume recommendations

AWS Compute Optimizer supports General Purpose EBS volumes (gp2/gp3), Provisioned IOPS EBS volumes (io1/io2/io2 BX), and HDD EBS volumes (st1/sc1). Compute Optimizer also provides recommendations for your Magnetic EBS volumes to migrate to current generation EBS volumes.

AWS Compute Optimizer needs at least 30 consecutive hours of metrics before it makes recommendations for EBS volumes. Compute Optimizer analyzes default CloudWatch metrics for EBS volumes, such as IOPS and throughput metrics.

Performance risk indicates the likelihood that the recommended option does not meet the performance requirements of your workload. The higher the performance risk, the more effort you may need to spend to validate whether the recommended EBS volume configuration meets the performance requirements of your workload.

After AWS Compute Optimizer identifies a list of optimal EBS volume configurations for your workload, it incorporates public EBS pricing, along with expected performance risk, to rank the recommendations.

AWS Lambda function recommendations

AWS Compute Optimizer helps you optimize two categories of Lambda functions. The first category includes Lambda functions that may be overprovisioned in memory sizes. You may consider downsizing the memory sizes of these functions to save costs. The second category includes compute-intensive Lambda functions that may benefit from additional CPU power. You may consider increasing their memory sizes to trigger an equivalent increase in CPU available to these functions and reduce runtime. For functions that do not fall under any of these categories, Compute Optimizer does not deliver recommendations for them.

AWS Compute Optimizer analyzes 14 days of Lambda function invocation history, including function runtime duration, CPU time used, and memory usage, to deliver recommendations.

Yes. After AWS Compute Optimizer identifies optimal memory sizes for your Lambda functions, it incorporates public Lambda pricing, expected function runtime, and number of function invocations over the past 14 days to calculate a “would-be” cost number. You can use this number to understand what your Lambda cost would have been had you set the memory size of your Lambda function to the recommended option.

Amazon ECS services on AWS Fargate recommendations

AWS Compute Optimizer provides task-level CPU and memory size recommendations for Amazon ECS services running on AWS Fargate.

AWS Compute Optimizer needs at least 24 hours of metrics before it makes recommendations for your Amazon ECS services on AWS Fargate. Compute Optimizer analyzes CPU and memory utilization data of Amazon ECS services on AWS Fargate.

AWS Compute Optimizer projects the would-be CPU and memory utilization of your Amazon ECS services on AWS Fargate had you configure them as recommended, so that you can understand how your workload would have performed on the recommended configurations.

Yes. After Compute Optimizer identifies optimal CPU and memory sizes for your Amazon ECS services on AWS Fargate, it incorporates public AWS Fargate pricing, new CPU and memory configurations, and runtime history over the past 14 days to calculate a “would-be” cost. You can use this information to understand what your Amazon ECS services on AWS Fargate cost would have been had you set the CPU and memory size to the recommended option.  

Idle recommedations

AWS Compute Optimizer provides idle recommendations for standalone EC2 instances, Autoscaling Groups, EBS volumes, RDS databases, and ECS tasks on Fargate.

Compute Optimizer uses 14 days of utilization metrics, such as CPU and IOPS, to identify idle workloads where utilization is low. When utilization is low for 14 days consecutively, Compute Optimizer gives a recommendation to delete, scale down, turn off, or snapshot and delete your resources to save cost.

RDS database recommendations

AWS Compute Optimizer provides recommendations for Amazon RDS for MySQL, Amazon RDS for PostgreSQL, and Amazon Aurora MySQL-Compatible Edition, and Amazon Aurora PostgreSQL-Compatible Edition engines.

AWS Compute Optimizer provides recommendations to help you detect idle database instances, choose the optimal DB instance class, storage type, and performance recommendations for EBS volumes attached to supported RDS DB instances.

AWS Compute Optimizer automatically analyzes CloudWatch metrics such as CPU utilization, network utilization, and database connections as well as Amazon RDS Performance Insights metrics, such as DBLoad, to generate recommendations. RDS DB instances need to have at least 30 hours of metrics before receiving recommendations.

You can enable Performance Insights for your DB instance in the AWS management console. For more instructions, you can refer to the Amazon RDS user guide and Amazon Aurora user guide.

Performance risk indicates the likelihood of the instance type not meeting the resource needs for your workload. Compute Optimizer calculates an individual performance risk score for each resource dimension of the recommended instance, including CPU, EBS throughput, EBS IOPS, and network throughput. For each resource dimension, the performance risk score is computed as the proportion of time over the historical lookback period where capacity may be constrained in the given resource dimension. The performance risk of the recommended instance is calculated as the maximum performance risk score across the analyzed resource specifications.

Compute Optimizer projects the would-be CPU of your RDS DB instance had you used the recommended option, so that you can understand how your workload would have performed on the recommended options. Compute Optimizer also lists the configuration differences between the current instance and the recommended instance class, so you can understand the updates you may need to apply to migrate your workloads from the current instance to the recommended instance class.

AWS service integration

Yes, AWS Compute Optimizer integrates with AWS Organizations to allow you to see all your recommendations within your organization. In order to use this feature, your organization must have “all features” enabled, and you must log in as the primary account of your organization.