Viewing EC2 instance recommendations - AWS Compute Optimizer

Viewing EC2 instance recommendations

AWS Compute Optimizer generates instance type recommendations for Amazon Elastic Compute Cloud (Amazon EC2) instances. Recommendations for your Amazon EC2 instances are displayed on the following pages of the Compute Optimizer console:

  • The EC2 instances recommendations page lists each of your current instances, their finding classifications, finding reasons, platform differences, current instance type, and current hourly price for the selected purchasing option. The top recommendation from Compute Optimizer is listed next to each of your instances, and it includes the recommended instance type, the hourly price for the selected purchasing option, and the price difference between your current instance and the recommendation. Use the recommendations page to compare your current instances with their top recommendation, which can help you to decide if you should up-size or down-size your instances.

  • The EC2 instance details page, which you can access from the EC2 instances recommendations page, lists up to three optimization recommendations for a specific instance. It lists the specifications for each recommendation, their performance risk, and their hourly prices for the selected purchasing option. The details page also displays utilization metric graphs for the current instance, overlaid with the projected utilization metrics for the recommendation options.

The recommendations are refreshed daily. They're generated by analyzing the specifications and utilization metrics of the current instance over a period of the last 14 days. For more information, see Metrics analyzed by AWS Compute Optimizer.

Keep in mind that Compute Optimizer generates recommendations for EC2 instances that meet a specific set of requirements, recommendations could take up to 12 hours to be generated, and sufficient metric data must be accumulated. For more information, see Supported resources and requirements.

Finding classifications

The Finding column on the EC2 instances recommendations page provides a summary of how each of your instances performed during the analyzed period.

The following findings classifications apply to EC2 instances.

Classification Description

Under-provisioned

An EC2 instance is considered under-provisioned when at least one specification of your instance, such as CPU, memory, or network, does not meet the performance requirements of your workload. Under-provisioned EC2 instances might lead to poor application performance.

Over-provisioned

An EC2 instance is considered over-provisioned when at least one specification of your instance, such as CPU, memory, or network, can be sized down while still meeting the performance requirements of your workload, and when no specification is under-provisioned. Over-provisioned EC2 instances might lead to unnecessary infrastructure cost.

Optimized

An EC2 instance is considered optimized when all specifications of your instance, such as CPU, memory, and network, meet the performance requirements of your workload, and the instance is not over-provisioned. For optimized instances, Compute Optimizer might sometimes recommend a new generation instance type.

Finding reasons

The Finding reasons column on the EC2 instances recommendations and EC2 instance details pages shows which specification of an instance is under-provisioned or over-provisioned.

The following finding reasons apply to instances:

Finding reason Description

CPU over-provisioned

The instance’s CPU configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the CPUUtilization metric of the current instance during the look-back period.

CPU under-provisioned

The instance’s CPU configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better CPU performance. This is identified by analyzing the CPUUtilization metric of the current instance during the look-back period.

Memory over-provisioned

The instance’s memory configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the memory utilization metric of the current instance during the look-back period.

Note

Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling memory utilization with the Amazon CloudWatch Agent in the AWS Compute Optimizer User Guide. On Linux instances, Compute Optimizer analyzes the mem_used_percent metric in the CWAgent namespace, or the legacy MemoryUtilization metric in the System/Linux namespace. On Windows instances, Compute Optimizer analyzes the Memory % Committed Bytes In Use metric in the CWAgent namespace.

Memory under-provisioned

The instance’s memory configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better memory performance. This is identified by analyzing the memory utilization metric of the current instance during the look-back period.

Note

Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling memory utilization with the Amazon CloudWatch Agent in the AWS Compute Optimizer User Guide. On Linux instances, Compute Optimizer analyzes the mem_used_percent metric in the CWAgent namespace, or the legacy MemoryUtilization metric in the System/Linux namespace. On Windows instances, Compute Optimizer analyzes the Memory % Committed Bytes In Use metric in the CWAgent namespace.

EBS throughput over-provisioned

The instance’s EBS throughput configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the VolumeReadOps and VolumeWriteOps metrics of EBS volumes attached to the current instance during the look-back period.

EBS throughput under-provisioned

The instance’s EBS throughput configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better EBS throughput performance. This is identified by analyzing the VolumeReadOps and VolumeWriteOps metrics of EBS volumes attached to the current instance during the look-back period.

EBS IOPS over-provisioned

The instance’s EBS IOPS configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes metric of EBS volumes attached to the current instance during the look-back period.

EBS IOPS under-provisioned

The instance’s EBS IOPS configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS performance. This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes metric of EBS volumes attached to the current instance during the look-back period.

Network bandwidth over-provisioned

The instance’s network bandwidth configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the NetworkIn and NetworkOut metrics of the current instance during the look-back period.

Network bandwidth under-provisioned

The instance’s network bandwidth configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better network bandwidth performance. This is identified by analyzing the NetworkIn and NetworkOut metrics of the current instance during the look-back period. This finding reason happens when the NetworkIn or NetworkOut performance of an instance is impacted.

Network PPS over-provisioned

The instance’s network PPS (packets per second) configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the NetworkPacketsIn and NetworkPacketsOut metrics of the current instance during the look-back period.

Network PPS under-provisioned

The instance’s network PPS (packets per second) configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn and NetworkPacketsOut metrics of the current instance during the look-back period.

Disk IOPS over-provisioned

The instance’s disk IOPS configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the DiskReadOps and DiskWriteOps metrics of the current instance during the look-back period.

Disk IOPS under-provisioned

The instance’s disk IOPS configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better disk IOPS performance. This is identified by analyzing the DiskReadOps and DiskWriteOps metrics of the current instance during the look-back period.

Disk throughput over-provisioned

The instance’s disk throughput configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of the current instance during the look-back period.

Disk throughput under-provisioned

The instance’s disk throughput configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better disk throughput performance. This is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of the current instance during the look-back period.

Note

For more information about instance metrics, see List the available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For more information about EBS volume metrics, see Amazon CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide.

You can change an instance's CPU, local disk, memory, or network specifications by changing the type of the instance. For example, you can change the instance type from C5 to C5n to help improve network performance. For more information, see Change the instance type guide for Linux and Change the instance type guide for Windows in the EC2 User Guides.

You can change an EBS volume's IOPS or throughput specifications by using Amazon EBS Elastic Volumes. For more information, see Amazon EBS Elastic Volumes in the Amazon Elastic Compute Cloud User Guide.

AWS Graviton-based instance recommendations

When viewing Amazon EC2 instance recommendations, you can view the price and performance impact of running your workload on AWS Graviton-based instances. To do so, choose Graviton (aws-arm64) in the CPU architecture preference dropdown. Otherwise, choose Current to view recommendations that are based on the same CPU vendor and architecture as the current instance.

Note

The Current price, Recommended price, Price difference, Price difference (%), and Estimated monthly savings columns are updated to provide a price comparison between the current instance type and the instance type of the selected CPU architecture preference. For example, if you choose Graviton (aws-arm64), prices are compared between the current instance type and the recommended Graviton-based instance type.

Platform differences

The Platform differences column on the EC2 instance details page describes the differences between the current instance and the recommended instance type. You should consider the configuration differences before migrating your workloads from the current instance to the recommended instance type.

The following platform differences apply to EC2 instances:

Platform difference Description

Architecture

The CPU architecture of the recommended instance type is different than that of the current instance type. For example, the recommended instance type might use an Arm CPU architecture and the current instance type might use a different one, such as x86. Before migrating, you should consider recompiling the software on your instance for the new architecture. Alternatively, you might switch to an Amazon Machine Image (AMI) that supports the new architecture. For more information about the CPU architecture for each instance type, see Amazon EC2 Instance Types.

Hypervisor

The hypervisor of the recommended instance type is different than that of the current instance. For example, the recommended instance type might use a Nitro hypervisor and the current instance might use a Xen hypervisor. For information about the differences that you should consider between these hypervisors, see Nitro Hypervisor section of the Amazon EC2 FAQs. For more information, see Instances built on the Nitro System in the Amazon EC2 User Guide for Linux, or Instances built on the Nitro System in the Amazon EC2 User Guide for Windows.

Instance store availability

The recommended instance type does not support instance store volumes, but the current instance does. Before migrating, you might need to back up the data on your instance store volumes if you want to preserve them. For more information, see How do I back up an instance store volume on my Amazon EC2 instance to Amazon EBS? in the AWS Premium Support Knowledge Base. For more information, see Networking and storage features and Amazon EC2 instance store in the Amazon EC2 User Guide for Linux, or see Networking and storage features and Amazon EC2 instance store in the Amazon EC2 User Guide for Windows.

Network interface

The network interface of the recommended instance type is different than that of the current instance. For example, the recommended instance type might use enhanced networking and the current instance might not. To enable enhanced networking for the recommended instance type, you need to install the Elastic Network Adapter (ENA) driver or the Intel 82599 Virtual Function driver. For more information, see Networking and storage features and Enhanced networking on Linux in the Amazon EC2 User Guide for Linux, or Networking and storage features and Enhanced networking on Windows in the Amazon EC2 User Guide for Windows.

Storage interface

The storage interface of the recommended instance type is different than that of the current instance. For example, the recommended instance type uses an NVMe storage interface and the current instance does not. To access NVMe volumes for the recommended instance type, you will need to install or upgrade the NVMe driver. For more information, see Networking and storage features and Amazon EBS and NVMe on Linux instances in the Amazon EC2 User Guide for Linux, or Networking and storage features and Amazon EBS and NVMe on Windows instances in the Amazon EC2 User Guide for Windows.

Virtualization type

The recommended instance type uses the hardware virtual machine (HVM) virtualization type and the current instance uses the paravirtual (PV) virtualization type. For more information about the differences between these virtualization types, see Linux AMI virtualization types in the Amazon EC2 User Guide for Linux, or Windows AMI virtualization types in the Amazon EC2 User Guide for Windows.

Prices and purchasing options

On the EC2 instances recommendations and EC2 instance details pages, you can choose to view the hourly prices for your current instances and the recommended instances under different Amazon EC2 purchasing options. For example, you can view the price of your current instance and the recommended instance under the Reserve Instances, standard one-year no upfront purchasing option. Use the pricing information to get an idea of the price difference between your current instance and the recommended instance.


    Purchasing options for EC2 instances
Important

The prices listed on the recommendations page might not reflect the actual prices you pay for your instances. For more information about finding the actual price of your current instances, see Amazon EC2 Usage Reports in the Amazon Elastic Compute Cloud User Guide.

The following purchasing options can be selected on the recommendations page:

  • On-Demand Instances - An On-Demand Instance is an instance that you use on demand. You have full control over its lifecycle—you decide when to launch, stop, hibernate, start, reboot, and terminate it. No longer-term commitments or upfront payments are needed. For more information about On-Demand Instances, see On-Demand Instances in the Amazon Elastic Compute Cloud User Guide. For more information about pricing, see Amazon EC2 On-Demand Instance Pricing.

  • Reserved Instances (standard one-year or three-year commitment, no upfront) - Reserved Instances provide you with significant savings on your Amazon EC2 costs compared to On-Demand Instance pricing. Reserved Instances are not physical instances, but rather a billing discount applied to the use of On-Demand Instances in your account. For more information about Reserved Instances, see Reserved Instances in the Amazon Elastic Compute Cloud User Guide. For more information about pricing, see Amazon EC2 Reserved Instance Pricing.

For more information about purchasing options, see Instance Purchasing Options in the Amazon Elastic Compute Cloud User Guide.

Estimated monthly savings

The EC2 instances recommendations page also lists the On-Demand hours, Reserved Instance (RI) hours, and Savings Plans hours for each of your running instances. These data columns represent the subset of the total running hours that each instance was On-Demand, was covered by an AWS reservation, and was covered by Savings Plans over the look-back period (up to the last 14 days). That data is used to calculate an Estimated monthly saving for each of your recommendations, which is also displayed on the recommendations page.


    Estimated monthly savings for EC2 instances

To calculate the estimated monthly savings, we first examine the instance running in the look-back period to identify if it was partially or fully covered by an RI or running On-Demand. Another factor is whether the RI is size-flexible. The cost to run the instance is calculated based on the On-Demand hours and the rate of the instance type.

For each recommendation, we calculate the cost to operate a new instance. We assume that a size-flexible RI will cover the new instance in the same way as the previous instance. Savings are calculated based on the number of On-Demand running hours and the difference in On-Demand rates. If the RI isn't size-flexible, the savings calculation is based on if the instance hours during the look-back period are operated as On-Demand.

Recommendations are provided regardless of estimated monthly savings. Even if the estimated savings is less than zero, you might be able to convert your existing Convertible RIs to cover the recommended instance types.

Note

Recommendations don't capture second-order effects of rightsizing, such as the resulting RI hour’s availability and how they will apply to other instances. Potential savings based on reallocation of the RI hours aren't included in the calculation.

Performance risk

The Performance risk column on the EC2 instance details page defines the likelihood of each recommended instance type not meeting the resource needs of your workload. Compute Optimizer calculates an individual performance risk score for each specification of the recommended instance, including CPU, memory, EBS throughput, EBS IOPS, disk throughput, disk IOPS, network throughput, and network PPS. The performance risk of the recommended instance is calculated as the maximum performance risk score across the analyzed resource specifications.

The values range from very low, low, medium, high, and very high. A very low performance risk means that the instance type recommendation is predicted to always provide enough capability. The higher the performance risk is, the more likely you should validate whether the recommendation will meet the performance requirements of your workload before migrating your resource. Decide whether to optimize for performance improvement, for cost reduction, or for a combination of these two. For more information, see Changing the Instance Type in the Amazon Elastic Compute Cloud User Guide.

Note

In the Compute Optimizer API, the AWS Command Line Interface (AWS CLI), and the AWS SDKs, performance risk is measured on a scale of 0 (very low) to 4 (very high).


    Performance risk for EC2 instance recommendations

Utilization graphs

The EC2 instance details page displays utilization metric graphs for your current instance. The graphs display data for the analyzed period (up to 14 days). You can change the graphs to display data for the last 24 hours, three days, one week, or two weeks. You can also change the statistic of the graphs between average and maximum.

The following utilization graphs are displayed on the details page:

Graph name Description

CPU utilization (percent)

The percentage of allocated EC2 compute units used by the instance.

The CPU utilization graph includes a comparison of the CPU utilization data of your current instance type against that of the selected recommended instance type. The comparison shows you what the CPU utilization would have been if you had used the selected recommended instance type during the analyzed period. This comparison can help you to identify if the recommended instance type is within your workload's performance threshold.

Memory utilization (percent)

The percentage of memory allocated by applications and the operating system as used.

The memory utilization graph includes a comparison of the memory utilization data of your current instance type against that of the selected recommended instance type. The comparison shows you what the memory utilization would have been if you had used the selected recommended instance type during the analyzed period. This comparison can help you to identify if the recommended instance type is within your workload's performance threshold.

Note

The memory utilization graph is populated only for instances that have the unified CloudWatch agent installed on them. For more information, see Collecting Metrics and Logs from Amazon EC2 Instances and On-Premises Servers with the CloudWatch Agent in the Amazon CloudWatch User Guide.

Network in (MiB/second)

The number of mebibytes (MiB) per second received on all network interfaces by the instance.

Network out (MiB/second)

The number of mebibytes (MiB) per second sent out on all network interfaces by the instance.

Network packets in (per second)

The number of packets received by the instance on all network interfaces.

Network packets out (per second)

The number of packets sent out by the instance on all network interfaces.

Disk read operations (per second)

The completed read operations per second from the instance store volumes of the instance.

Disk write operations (per second)

The completed write operations per second from the instance store volumes of the instance.

Disk read bandwidth (MiB/second)

The read mebibytes (MiB) per second from the instance store volumes of the instance.

Disk write bandwidth (MiB/second)

The write mebibytes (MiB) per second from the instance store volumes of the instance.

EBS read operations (per second)

The completed read operations per second from all EBS volumes attached to the instance.

For Xen instances, data is reported only when there is read activity on the volume.

EBS write operations (per second)

The completed write operations per second to all EBS volumes attached to the instance.

For Xen instances, data is reported only when there is write activity on the volume.

EBS read bandwidth (MiB/second)

The read mebibytes (MiB) per second from all EBS volumes attached to the instance.

EBS write bandwidth (MiB/second)

The written mebibytes (MiB) per second to all EBS volumes attached to the instance.

Viewing EC2 instances recommendations

Use the following procedure to access the EC2 instances recommendations page, and view recommendations for your current instances.

  1. Open the Compute Optimizer console at https://console.aws.amazon.com/compute-optimizer/.

  2. Choose EC2 instances in the navigation pane.

    The recommendations page lists the specifications and finding classifications of your current instances, along with the specifications of the recommended instances. The current instances listed are from the AWS Region that is currently selected, in the selected account.

  3. You can perform the following actions on the recommendations page:

    • To view the price and performance impact of running your workload on AWS Graviton-based instances, choose Graviton (aws-arm64) in the CPU architecture preference dropdown. Otherwise, the Current (default) option displays recommendations that are based on the same CPU vendor and architecture as the current instance.

    • To filter recommendations to one or more AWS Regions, enter the name of the Region in the Filter by one or more Regions text box, or choose one or more Regions in the drop-down list that appears.

    • To view recommendations for instances in another account, choose Account, and then select a different account ID.

      Note

      The ability to view recommendations for resources in other accounts is available only if you are signed in to a management account of an organization, and trusted access with Compute Optimizer is enabled. For more information, see Accounts supported by Compute Optimizer and Compute Optimizer and AWS Organizations trusted access.

    • To clear the selected filters, choose Clear filters next to the filter.

    • To change the purchasing option that is displayed, choose Settings (the gear icon), then choose On-Demand Instances, Reserved Instances, standard 1-year no upfront, or Reserved Instances, standard 3-year no upfront.

    • To access the EC2 instance details page for a specific instance, choose the finding classification listed next to the desired instance.

Viewing EC2 instance details

Use the following procedure to access the EC2 instance details page, and view details of a specific instance and its recommendations.

  1. Open the Compute Optimizer console at https://console.aws.amazon.com/compute-optimizer/.

  2. Choose EC2 instances in the navigation pane.

  3. Choose the finding classification listed next to the instance for which you wish to view detailed information.

    The details page lists up to three optimization recommendations for the instance that you chose. It lists the specifications of your current instance, the specifications and performance risks of the recommended instances, and utilization metric graphs.

  4. You can perform the following actions on the details page:

    • To view the price and performance impact of running your workload on AWS Graviton-based instances, choose Graviton (aws-arm64) in the CPU architecture preference dropdown. Otherwise, the Current (default) option displays recommendations that are based on the same CPU vendor and architecture as the current instance.

    • Choose a recommendation option to view the utilization comparison between your current instance and a recommended instance.

      The utilization metric graphs for your current instance are displayed at the bottom of the page. The solid blue line is the utilization of your current instance. The dotted orange line, displayed in the CPU utilization and memory utilization graphs, is the projected utilization of the selected recommended instance if you had used that instance during the analyzed period.

    • To change the time range of the graphs, choose Time Range, and then choose Last 24 hours, Last 3 days, Last week, or Last 2 weeks.

      Choosing a shorter time range displays the data points at a higher granularity, which provides a higher level of detail.

    • To change the statistic value of the graphs, choose Statistics, and then choose Average or Maximum.

      You can use this option to determine the typical instance utilization of your workload over time. To view the highest value observed during the specified period, change the selection to Maximum. This allows you to determine the peak instance usage of your workload over time.

    • To change the purchasing option that is displayed, choose Settings (the gear icon), then choose On-Demand Instances, Reserved Instances, standard 1-year no upfront, or Reserved Instances, standard 3-year no upfront.