Cost-optimizing Amazon EBS volumes using AWS Compute Optimizer

January 30, 2023 Syed Muhammad Tawha

When I talk with customers about their block storage needs, I frequently get asked “How can I optimize my block storage costs?” The simple answer is through two ways. One is always using the latest storage technology available that provides the best price-performance ratio. Another is provisioning the correct storage configuration catered to your workloads. With multiple block storage configurations available, you need to be able to justify any organizational investment into upgrading storage, and you also need to determine the correct, cost-optimal configuration for your workloads.

With Amazon Elastic Block Store (EBS), you should right-size your volume performance, as under-utilized volumes mean wasted resources, and over-utilized volumes don’t leave enough room for spiky workloads. To help you right-size your EBS volumes, AWS Compute Optimizer analyzes your AWS resource utilization data collected by Amazon CloudWatch from the past 14 days (paid option available for up to three months of data) to identify the optimal resource configuration. These recommendations are available for your Amazon Elastic Compute Cloud (EC2) instances, EBS volumes, AWS Auto Scaling groups, AWS Lambda functions, and AWS Fargate.

In this post, I will cover how to use Compute Optimizer recommendations to identify the optimal volume configuration, determine the correct level of performance needed, and quantify the potential monthly cost savings. Compute Optimizer delivers intuitive and easily actionable EBS volume recommendations so that you can identify optimal provisioned IOPS settings and volume sizes for your EBS volumes based on your performance needs, without requiring specialized knowledge or investing substantial time and money. You will also obtain cost-saving estimates for upgrading general-purpose SSD-based EBS gp2 volumes to the latest gp3 volumes. These insights can help you build a stronger case to support the investment decision of modernizing infrastructure for increased performance.

Optimizing EBS volumes using recommendations in Compute Optimizer

You can opt in using the AWS Management Console or the AWS Command Line Interface (CLI) to start using Compute Optimizer. Opt in Compute Optimizer by going to the AWS Compute Optimizer console. And then enroll the account that you’re currently signed in to or all of the accounts within your organization. To see your savings opportunity in Compute Optimizer, you should also opt in to AWS Cost Explorer and enable the right sizing recommendations in the Cost Explorer preferences page. For more details, see the documentation on getting started with rightsizing recommendations.

In Compute Optimizer, you can see your Amazon EBS recommendations in two different sections: the EBS volumes recommendations page and the EBS volume details page. The EBS volumes recommendations page lists each of your current volumes, their finding classifications, their current volume type, and the current hourly price. From there, you can find the EBS volume details page, which lists up to three optimization recommendations for a specific volume. It lists the specifications for each recommendation, their performance risk, and their monthly prices. Furthermore, the details page displays utilization metric graphs for the current volume.

After I opted in for Compute Optimizer in my account, I can see the recommendations for my current EBS volumes as shown in the following screen shot:

This is the EBS Volume recommendation page in AWS Compute Optimizer console.

You can use the settings button on top to modify the columns displayed on this page. Compute Optimizer findings are classified into two categories:

Classification Description
Not optimized An EBS volume is considered not optimized when Compute Optimizer has identified a volume type, volume size, or IOPS specification that can provide better performance or cost for your workload.
Optimized An EBS volume is considered optimized when Compute Optimizer determines that the volume is correctly provisioned to run your workload, based on the chosen volume type, volume size, and IOPS specification. For optimized resources, Compute Optimizer might sometimes recommend a new generation volume type.

Next, I selected one of my volumes to view the details page. For any of the recommendations that Compute Optimizer shows, you can drill down into the metrics collected, as well as the other possible volume configurations suggested by Computer Optimizer

EBS volume details page in Compute Optimizer Console.

Here I see the monthly price difference between my current volume and the top recommendation option generated by Compute Optimizer. A negative price difference is listed because the cost is estimated to decrease if I modify my current volume with the configuration of the recommended option.

For every recommendation there is also a performance risk value. The Performance risk column on the EBS volume details page defines the likelihood of each EBS volume recommendation not meeting the resource needs of your workload. The values range from very low, low, medium, high, and very high. A performance risk of very low means that the EBS volume recommendation is predicted to always provide enough capability.

Calculating estimated monthly savings of migrating your EBS volumes from gp2 to gp3

Amazon EBS gp3 volumes are the latest generation of general-purpose SSD-based EBS volumes that enable customers to provision performance independent of storage capacity. Migrating to gp3 can provide up to 20% lower price per GB than existing gp2 volumes. If you have a large number of volumes in your account or organization, it’s hard to calculate the total estimated saving for migrating volumes from gp2 to gp3 keeping the same performance configuration. Compute Optimizer can help you find that estimate.

If you have AWS Organizations, then you can delegate a member account as an administrator for Compute Optimizer. A delegated administrator can access and manage Compute Optimizer recommendations for all member accounts. Export recommendations for all of your volumes to an existing Amazon Simple Storage Service (S3) bucket in a comma-separated values (.csv) file. Next, select the recommendation columns to include in your export job as shown in the following. Then, compare the CurrentMonthlyPrice and RecommendationOptionsMonthlyPrice to calculate the estimated monthly savings for all of the recommendations.

Select CurrentMonthlyPrice and RecommendationOptionsMonthlyPrice to calculate the estimated monthly savings for all of the recommendations.


In this post, I demonstrated how to use Compute Optimizer recommendations to select the right storage configuration and avoid over-provisioning and under-provisioning your EBS volumes. With the correct set up, you can cost-optimize your block storage by fully utilizing it to deliver the desired performance. I also demonstrated how to quantify monthly savings of migrating your EBS volumes from gp2 to gp3 for large AWS Organizations where you could have hundreds of EBS volumes. Quantifying cost savings can help you prioritize, evaluate, and justify operational investment required for this migration.

If you have any comments or questions, don’t hesitate to leave them in the comments section.

Previous Article
Monitoring Amazon EBS volume disruptions using Amazon EventBridge
Monitoring Amazon EBS volume disruptions using Amazon EventBridge

A top priority for customers is to make sure that their applications are highly resilient and durable to me...

Next Article
Synchronize Amazon EC2 instance tags and instance type with AWS Elastic Disaster Recovery source servers
Synchronize Amazon EC2 instance tags and instance type with AWS Elastic Disaster Recovery source servers

When performing disaster recovery, you recover your original systems and IT infrastructure to their origina...