Need to save some AWS bill quickly? Upgrade to gp3

Procedure for gp2 gp3 upgradation and performance considerations

Need to save some AWS bill quickly? Upgrade to gp3

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.

Image shows the EC2 dashboard with the Volumes link

Click on the volume to be modified

Click on the volume that needs to be modified and click on Actions.

Image shows the existing EBS volumes

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.

Image shows the Actions menu containing the Modify Volume link

This will open up the volume modification dialogue box which will show the current volume settings

Image shows the Modify volume dialogue box showing the current Volume Type, Size and IOPS

Click on the Volume Type dropdown and select General Purpose SSD (gp3)

Image shows the settings after changing the Volume Type to gp3. It shows Size, Iops and Throughput

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.

Image shows a warning screen after the Modify button is clicked

This will show that the Modify volume request has succeeded and we can Close that dialogue box.

Image shows the request succeeded 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.

Image shows an EBS volume which is being modified to gp3 with a yellow dot to the side

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.

Image shows a spike and then an average increase in read latency after 05:55 UTC
Image shows an average increase in write latency after 05:55 UTC

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

Image shows a minute increase in average queue length after 05:55 UTC

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.

Conclusion

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.