AWS Cloud Financial Management

How to take advantage of Rightsizing recommendation preferences in Compute Optimizer

Today, AWS has launched customizable Rightsizing recommendation preferences in AWS Compute Optimizer. The feature helps you configure rightsizing recommendations to suit your workload requirements. In 2019, AWS introduced Compute Optimizer to help you identify optimization opportunities for workloads running on EC2 instances. Since its launch, Compute Optimizer has provided millions of recommendations on a daily basis to help customers avoid extra costs due to over-provisioned resources and service disruptions caused by under-provisioned resources. Rightsizing recommendation preferences allows you to adjust both CPU headroom and thresholds, configure a new 32-day lookback period option, and set instance family preferences at the organization, account, or regional level. With this feature, Compute Optimizer provides greater transparency on how the recommendations are generated and the ability for you to configure EC2 rightsizing recommendations for higher savings and performance sensitivity, aligning recommendations with your business needs. Let’s explore what you can achieve through this new feature.

Where can I find Rightsizing recommendation preferences?

Starting today, you can find a “Preferences” section on the left side navigation bar of the Compute Optimizer console. Click on the “Rightsizing” option within the section to start customizing your Rightsizing recommendation preferences. You will first see an overall view of a list of the customized preferences settings you have for each region. For management account users or delegated administrators, you can switch between organizational view and account-level view through the “Preference level” dropdown menu. If you haven’t set up preferences yet, it will show the default values that Compute Optimizer is using for recommendations. Click “Edit” and you will be guided through a 4-step process to set up your Rightsizing recommendation preferences.

Figure 1. Landing page of Rightsizing recommendation preferences

Figure 1. Landing page of Rightsizing recommendation preferences

Lookback period

In this launch, AWS introduced a free 32-day lookback period option in Compute Optimizer. This allows you to configure Compute Optimizer to use 32 days of utilization history to generate recommendations for you, compared to the default of 14 days. Using a 32-day lookback period ensures you capture monthly patching, reboots, and maintenance activities. Compute Optimizer also offers the option of 93-day lookback period with Enhanced Infrastructure Metrics (Estimated $0.25/month per instance. See the pricing page for more details).

Figure 2. Lookback period preferences

Figure 2. Lookback period preferences

How to Receive Tailored Recommendations for Your EC2 Instance Requirements

With this release, you can specify the EC2 instance types that Compute Optimizer considers to ensure all recommendations are tailored to your specific business needs. Compute Optimizer supports 651 instance types today and, by default, evaluates all available instances to identify the top three options with the least performance risk and the most cost savings based on your utilization history.

When it comes to rightsizing, you may have organizational guidelines or requirements regarding instance types. For example, you may have purchased Amazon EC2 Instance Savings Plans and Reserved Instances and only wish to rightsize to instance families covered by those commitments. You may want to use only instances equipped with certain processors or non-burstable instances due to your application design. Additionally, the workloads you are running may require instance types certified by Independent Software Vendors (ISVs), such as SAP HANA workloads. This feature allows you to define a custom instance type list that compute optimizer will use to create its recommendations.

Start by selecting ‘Limit to specific instance types and sizes’, you can easily locate the instance types in the table using the search bar. You can limit to specific instance types, instance families, or combinations of both.

Figure 3. Preferred instance types and sizes

Figure 3. Preferred instance types and sizes

Note: Compute Optimizer will automatically include the newer generation instances from the chosen instance families when they are supported. If you wish to stick with only your chosen instance types, you can disable “Automatically consider future variations of the instance families selected” below the table.

Figure 4. Preferred instance family dropdown list

Figure 4. Preferred instance family dropdown list

Note: It is recommended that you avoid limiting instance families too much, as your savings potential will decline and less rightsizing opportunities will be found.

Introducing Utilization Threshold and Utilization Headroom

Today, Compute Optimizer uses a set of parameters to generate recommendations that are safe and have a very low risk of performance issues for your workload by default. With this launch, you now have the ability to customize these parameters to identify more savings opportunities or leave more performance headroom. The flexibility allows you to factor in your real business and application needs in the optimization preference, for instance, provisioning more utilization headroom for a fast-growing application, or setting a higher utilization target for non-production workloads. Compute Optimizer introduces the concepts of utilization threshold and utilization headroom to let you modify EC2 instance recommendations to meet your specific workload requirements. What are utilization threshold and utilization headroom, and when should you use them?

Utilization headroom

Utilization headroom represents the additional capacity buffer incorporated into the recommendation, ensuring you have extra capacity to handle workload growth and prevent future performance issues. You can adjust the utilization headroom when you expect your application usage to grow. Compute Optimizer provides three options for utilization headroom (30%, 20%, 0%) for CPU. By default, Compute Optimizer employs a 20% headroom in its rightsizing recommendations. If you anticipate the need for additional capacity to accommodate potential future usage increases, you can set the headroom to 30%. In cases where usage is expected to remain relatively constant with a low likelihood of future growth, reducing the headroom will result in recommendations with less added spare CPU capacity, offering greater cost savings.

Utilization threshold

Utilization threshold allows you to exclude utilization spikes from the recommendation data that may not accurately represent your normal workload.  You may otherwise know this as “percentile,” a common data normalization standard. This helps you prevent outlier peaks from driving upsize recommendations. For many workloads, transient spikes can occur, often due to activities like patching or instance restarts. These spikes typically do not impact performance, and scaling a workload based on them can lead to unnecessary over-provisioning costs. Compute Optimizer offers three utilization threshold options (P90, P95, P99.5) for CPU. By default, Compute Optimizer uses a P99.5 threshold, which means Compute Optimizer ignores the top 0.5% of the highest utilization data points from your utilization history. For example, it will not consider the top 20 highest 5-minute interval data points from a 14-day lookback period. The P99.5 threshold is well-suited for highly sensitive production workloads, where peak utilization significantly affects application performance. If you set the utilization threshold to P90, Compute Optimizer ignores the top 10% of your highest data points from your utilization history. P90 may be a suitable threshold for workloads less sensitive to peak utilization, such as non-production environments, which then leads to higher rightsizing savings.

Customizing Utilization Threshold and Utilization Headroom

Based on common use cases, Compute Optimizer provides four presets for you to choose from: Maximum savings, Balanced, Default, and Maximum performance. You can modify these preferences to extract additional savings or add a safety margin. By default, Compute Optimizer employs a 20% headroom and a P99.5 utilization threshold to generate recommendations for all EC2 instances. This means, by default, Compute Optimizer is recommending instances that stay below 80% CPU utilization for more than 99.5% of the time, keeping a very low risk of performance issues. The ‘Balanced’ preset results in recommendations targeting CPU utilization to remain below 70% for more than 95% of the time. It is suitable for most workloads and can identify more savings opportunities than the ‘Default’. It is a good alternative to ‘Default’ if your workloads are less sensitive to utilization spikes.

For even more buffer for future growth and to prevent performance issues, you can select the ‘Maximum performance’ option, which increases the utilization headroom to 30% from ‘Default’.

Figure 5. Maximum performance preset

Figure 5. Maximum performance preset

The ‘Maximum savings’ option sets the utilization threshold to P90 and the utilization headroom to 0%, assuming that you want to utilize the entire instance capacity you’ve provisioned. This setting this helps you identify options with the most savings for workloads that are not sensitive to occasional high CPU load.

Figure 6. Maximum savings preset

Figure 6. Maximum savings preset

Assessing the Potential Impact of Utilization Headroom and Utilization Threshold Preferences on Rightsizing Recommendations

When you make adjustments to your rightsizing preferences, an example graph of a fictitious EC2 instance is generated to illustrate the potential impact of changing the utilization and threshold preferences. This graph is not based on your EC2 usage data. The graph displays both the threshold and headroom you have set, along with a raw utilization line of the fictitious workload. As you adjust the headroom and threshold, the graph updates to show how Compute Optimizer generates recommendations for this workload based on your custom preferences. You will notice that the threshold and headroom move up and down as you adjust them. If the threshold value crosses above the headroom, the workload will receive an upsize recommendation. If the threshold value is significantly below the headroom, a downsize recommendation is more likely. This graph is designed to help you understand how Compute Optimizer applies your utilization preference settings.

Figure 7. CPU utilization threshold and headroom preferences

Figure 7. CPU utilization threshold and headroom preferences

Conclusion

As your workloads on AWS grow in scale and complexity, effective rightsizing becomes increasingly important and sometimes challenging. Many organizations invest resources in evaluating rightsizing recommendations from various sources to ensure recommendations align with their workload requirements. With Compute Optimizer’s Rightsizing recommendation preferences, you have the transparency of what parameters are used to generate recommendations and can easily make adjustments according to your specific workload demands, achieving higher savings and performance sensitivity. This grants you more time to focus on developing your core business while maximizing the return on your AWS investment. Try out the AWS Compute Optimizer Rightsizing recommendation preferences feature today and unlock the full potential of Compute Optimizer like never before.

Wenyen Huang

Wenyen Huang

Wenyen is a Senior Product Manager for the AWS Optimizations team. He is passionate about helping customers optimize the value of their AWS spend. Currently, he is working with AWS Compute Optimizer to support new resource types and enhance customization capabilities.