AWS EBS Volumes gp2 vs gp3, io1 vs io2 which one to choose

What is the problem with gp2?

To get the most out of your gp2 volume, you must increase your disk size, which is sometimes not cost-effective. In gp2, AWS will default give you 3 Input Output operations(IOPS) per GB(minimum 100IOPS). So if you have 100GB gp2 volume, you will get 300IOPS. They can burst up to 3000IOPS, but you can easily exhaust that limit. On top of that, AWS gives you credit if you are not using these burstable credits over time. So if you have a busy server, you should use all 3000IOPS, leading to your query lag. So to get rid of this issue, you need to increase the disk size, e.g., 1TB, and then you will get 3000IOPS by default.

  • gp3 is 20% cheaper as compared to gp2. gp2 will cost you ($0.10/GiB-month) vs. gp3 ($0.08/GiB-month) and can scale up to 16000.
  • 3,000 IOPS free, and after that, $0.005/provisioned IOPS/month.
  • gp3 can provide a throughput of up to 1000 MiB/s.
Ref: https://aws.amazon.com/blogs/storage/migrate-your-amazon-ebs-volumes-from-gp2-to-gp3-and-save-up-to-20-on-costs/

Switching from gp2 to gp3

Switching from gp2 to gp3 is pretty straightforward

aws ec2 describe-volume-status --volume-ids  <volume id>
aws ec2 modify-volume --volume-type gp3 -volume-id <vol id>
aws ec2 modify-volume -volume-type gp3 -iops 10000 -size 500 - volume-id <vol-id>

  • It might take up to 24 hours for a new configuration to take effect and, in some cases, more, such as when the volume has not been fully initialized. Typically, a fully used 1-TiB volume takes about 6 hours to migrate to a new performance configuration. Transitional volume performance will be no less than the source volume performance. If you are downgrading IOPS, transitional volume performance is no less than the target volume performance.
  • The overall performance of the volume is also linked to the instance type it is attached to. So you need more than just increasing the volume to boost your performance. Check the following doc to know more about EBS optimized volume https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html

Switching from io1 to io2

  • io2 will give you 500 IOPS per GB as 50 IOPS per GB in io1
  • io2 volume is more durable 99.999% as compared to io1 99.9%
  • There is no difference in cost between io2 and io1, but you will see the saving when performing the IOPS calculation
$aws ec2 modify-volume --volume-id <vol-id> --volume-type io2

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Prashant Lakhera

Prashant Lakhera

4.9K Followers

AWS Community Builder, Ex-Redhat, Author, Blogger, YouTuber, RHCA, RHCDS, RHCE, Docker Certified,4XAWS, CCNA, MCP, Certified Jenkins, Terraform Certified, 1XGCP