The answer is YES! Read on to find out how you can potentially save 50% on your AWS EBS IO1 volumes, without losing any performance.
If you are not familiar with various types of EBS volumes, please check this page on an AWS blog for a good comparison of various EBS types.
A table from the above mentioned blog that shows differences between IO1 and GP2 is below.
You will notice that while there are minor differences, both IO1 and GP2 offer high performance storage. You will also notice the (significant) difference in price.
It should be noted that AWS imposes minimum capacity restrictions on both GP2 and IO1 storage on a per GB basis. IO1 storage can support 50 IOPS per GB. GP2 only supports 3 IOPS per GB. Does this mean that same level of performance can be achieved if sufficiently large gp2 volumes are used? Is it possible to reduce cost with this approach? Let’s analyze.
The table below shows minimum capacity needed for GP2 and IO1 volumes to achieve the same level IOPS and the cost difference.
You will see that the same level of performance can be achieved using GP2 (by allocating additional storage space) at only 50% of IO1 cost. (Table above uses minimum capacity for IO1. In cases where higher capacity is needed for IO1 the cost savings will be even greater)
Now, why would one not want to take advantage of this? There are a few factors to consider:
- With IO1, AWS guarantees within 10% of your provisioned performance 99.9% of the time, whereas GP2 guarantees within 10% of your expected performance 99% of the the time (a difference of about 80 hours a year).
- There is a limit of 10,000 IOPS per volume with GP2, So, if you are trying to achieve more than 10,000 IOPS, you will need to create multiple GP2 volumes and RAID them together.
If you are happy with 99% guarantee instead of 99.9%, and you are willing to RAID them together if you need more than 10,000 IOPS (FittedCloud can help here as well), there is are no reasons why you cannot take advantage of this. .
Optimization in new environments
From the above description, it is quite clear that one could fairly easily do the math and create GP2 volumes instead of IO1 to achieve same performance levels as save 50% on cost! This is easy to do when new volumes are created. If you want to avoid the side effects of extra space on GP2 (apps will obviously try to write to the extra space available), you may even create dummy space holder files so that available space is limited to expected capacity you would have received with IO1. No other software tools or tricks are needed!
Only downside is that user will have to manually monitor the IOPS utilization and make any further changes manually, as described in a previous blog.
Optimization in existing environments
If you already have an environment that has IO1 EBS volumes configured, what should you do? As described in a previous blog manual optimization can be done by allocating new volumes and moving the data. But this will be very time consuming, error prone and will require application down time. Scaling when there are multiple EBS volumes attached to an instance and there are large number of instances will make this approach almost impractical.
Transparent/Automated IO1 to GP2 Optimization with no user action or application disruption
In this approach a software solution monitors customer environment and makes a determination that an IO1 volume could be switched with a higher capacity GP2 volume for significant (50%) cost reduction. It does this in a completely transparent and automated way such that no user action is needed. It also does this in such a manner that no application downtime is needed. It should scale easily and effortlessly to support large scale deployments. It needs to be completely lights out.
Other Related Blogs
- A Simple Open Source Tool for EC2 RightSizing Analysis
- Simple AWS EC2 scheduler vs Machine Learning driven EC2 scheduler
- Machine learning CPU Utilization for AWS EC2 scheduling
- A Simple script to implement AWS EC2 TTL (Time to Live)
- AWS EC2 Cost Optimization
- Using Efficiency Metrics to Monitor Public Cloud Costs
- How to reduce the size of EBS Windows boot volume in AWS?
- How to shrink EBS root volumes in AWS – with just one click
- How to reduce AWS costs using machine learning driven EBS IOPS provisioning
- AWS Elastic Volumes and FittedCloud EBS Optimizer
- FittedCloud AWS EBS Optimizer for Docker Containers
- An Open Source AWS EBS Cost Analyzer
- How to optimize AWS EBS using LVM and reduce cost
- How to create thin provisioned AWS EBS volumes and save a ton!
- AWS EBS Performance – Confused?
FittedCloud Cloud Cost Optimization Solutions
FittedCloud offers machine learning based cloud cost optimization solutions that help customers reduce AWS spend significantly. Our current solutions include machine learning driven actionable advisories with click through actions for EC2, EBS, RDS, DynamoDB, ElastiCache, ElasticSearch, AutoScale, Lambda, etc. and full/lights out automation for EC2, EBS, DynamoDB and RDS. Our solution typically can save customers up to 50% of their cost on AWS. For more details, please visit https://www.fittedcloud.com/.