If you use a lot of AWS EC2 instances, then there is now a very quick hassle free way to save up to 20% on storage costs with higher performance. AWS has launched gp3 EBS volumes.
After the initial launch of the gp3 volume type in AWS during the 2020 re:invent, there were a lot of issues.
But right now, it seems that almost of those issues have been fixed. I shall talk about that at the end.
What is gp3?
As per AWS blog by Harunobu Kameda, gp3 is the 7th variation of EBS volume type. Unlike gp2 which offered 100 IOPS baseline with 3 IOPS per GB added for any storage above 33GB, gp3 provides 3000IOPS as standard for free with 125MB/s throughput. This IOPS can also be provisioned independent of the storage which was not an option with gp2. What this means is that you only pay for the IOPS if you need more IOPS and not the storage.
What is the cost of such a huge performance jump?
Nothing! In-fact, you'll save money on the upgrade from gp2 to gp3.
I shall give you a price comparison - Mumbai region
gp2 cost : Storage = 0.114$ per GB month
gp3 cost : Storage = 0.0912$ per GB month
Will the upgrade have an impact on my environment?
Absolutely no downtime! The upgrade is very simple and it's as easy as modifying the EBS volume. The modification happens in the background and you don't have to care about anything. There is also no performance impact on the instance while the modification occurs, so you can just sit back and relax.
But, there is a very small performance issue after the upgrade in read and write latency. I am discussing it towards the end.
How to do it?
Login to AWS
Login to the AWS console with the credentials.
Go to AWS EC2 Dashboard
After logging in to the AWS console, navigate to the EC2 dashboard and scroll down the left panel with the EC2 sub services.
Open volumes tab
On the left side panel, open the Volumes tab to show the EBS volumes used by the instances.
Click on the volume to be modified
Click on the volume that needs to be modified and click on Actions.
Click modify volume from the actions and modify the volume
After selecting the volume that has to be modified, click Actions and click on Modify volume.
This will open up the volume modification dialogue box which will show the current volume settings
Click on the Volume Type dropdown and select General Purpose SSD (gp3)
This will show additional settings such as Iops and Throughput. Leave them as is and click on Modify.
This will show a warning, since we are not modifying the storage size, this can be ignored and click Yes.
This will show that the Modify volume request has succeeded and we can Close that dialogue box.
Confirm that the volume is modified
Once that is done, we can move on to the next step but make sure to return back to the volume dashboard to ensure that the modification is completed successfully. The volumes that are being modified will be shown with a yellow dot and the ones that have been modified to gp3 successfully will be shown with a green dot.
Repeat the above steps for all the volumes
These steps have to be repeated for all the EBS volumes.
Further discussion on performance
Some people had boot issue but that was fixed after a few days as per this forum.
There have been multiple people reporting higher read and write latency and I have been able to see it in my server volumes after the gp2 to gp3 update.
A blog also mentioned about the read and write latency and that is why I checked after my upgrade and I too am seeing it as the below image shows.
My update was done at 05:55 UTC and that is exactly when there is a spike and from there, there is an average increase in the latency of around 200ms/op.
They will likely fix this in the future just like they fixed the rest of the issue so if you are ok with this 200ms/op increase in latency, then there is no problem.
I also saw a very minute increase in the Average queue length as shown in the image below
From a small test that I did with copying files, following are my results
gp2: 1GB file copied in ~950 ms
gp3: 1GB file copied in ~750 ms
This test is not exclusive and does not show an entire picture but it seems that the read/write latency and average queue count increase does not have problems for copying speeds at least.
Since some people reported boot up issues, I also rebooted the instance it booted up without any problems.
If for some reason, you are unsatisfied with the gp3 performance, you can always switch it back to gp2 but only after 6 hours.
The gp3 EBS volume is a really good addition to the volume types after gp2 release in 2014. There will be a lot of AWS customers who can use this and reduce their costs and increase their IOPS and throughput performance in their EC2 instance but do remember this slight increase in read and write latency, and average queue length.
Now you can make an informed decision.