Understanding gp3 IOPS – EBS Volumes

Last Updated on January 13, 2021

In my goal to understand when the gp3 is cheaper than gp2 volumes, I need to know what each of the performance settings of each Elastic Block Store (EBS) Volume Types are.

I have already discussed the Throughput of gp3 and gp2 in different posts. If you do not know what Throughput is then I suggest going to the post about EBS Volumes Throughput.

Let’s go straight to dicussing about gp3 type IOPS.


What is the IOPS of gp3 Volumes?

From the AWS documentation the IOPS of gp3 Volumes has a minimum of 3,000 IOPS and a maximum of 16,000 IOPS.

Minimum IOPS3,000 IOPS
Maximum IOPS16,000 IOPS

The advantage of gp3 Volumes to gp2 is that you can set their IOPS regardless of the volume size. This is very unlike the gp2 where the IOPS and Throughput is highly dependent on the volume size.

We also no longer have to think about bursting IOPS in gp3 Volume types or having high IOPS operation for an extended period of time as long as you set your gp3 IOPS properly.

Maximum IOPS per Volume Size

You may think that whatever the volume size from 1 GiB (minimum) to 16 TiB (maximum), you can assign any IOPS as long as its between 3000 IOPS and 16,000 IOPS.

As always, AWS has a way of scattering the details of each service in different documentation pages and burying the tiny important phrases in paragraphs.

From the EBS Volume Type documentation, it says The maximum ratio of provisioned IOPS to provisioned volume size is 500 IOPS per GiB.

What the above statement means is that we cannot create a gp3 Volume with a size of 10 GiB and a provisioned IOPS of 16,000 IOPS, because the maximum IOPS it can have is only 5,000 IOPS.

Maximum IOPS @ 10 GiB = 10 GiB * 500 IOPS/GiB

Maximum IOPS @ 10 GiB = 5,000 IOPS

Here is the error in AWS Console when we try to create a 10GiB gp3 Volume with an IOPS of 16,000.

Also, since the minimum IOPS of a gp3 EBS Volume is 3,000 IOPS, you cannot create a 5 GiB gp3 Volume with a provisioned IOPS of 2,500 IOPS. The 5 GiB volume will have an IOPS of 3,000.

Maximum IOPS @ 5 GiB = 5 GiB * 500 IOPS/GiB

Maximum IOPS @ 5 GiB = 2,500 IOPS

Since absolute minimum gp3 IOPS = 3,000 IOPS, therefore

Maximum IOPS @ 5 GiB = 3,000 IOPS

Here is the warning when you try to create an 5 GiB gp3 Volume with a provisioned IOPS of 2,500.

The breakeven point of the minimum IOPS of 3000 and the size to IOPS ratio of 1:500 limitation is 6 GiB.

Maximum IOPS @ 6 GiB = 6 GiB * 500 IOPS/GiB

Maximum IOPS @ 6 GiB = 3000 IOPS 
which is also the absolute minimum IOPS of gp3 Volume types

There is also the absolute maximum IOPS of 16,000 for gp3 volumes. For example, we cannot create a 40 GiB gp3 volume with a provisioned IOPS of 20,000. This will always be limited by the maximum 16,000 IOPS.

Maximum IOPS @ 40 GiB = 40 GiB * 500 IOPS/GiB

Maximum IOPS @ 40 GiB = 20,000 IOPS

Since absolute maximum of gp3 IOPS = 16,000 IOPS, therefore

Maximum IOPS @ 40 GiB = 16,000 IOPS

The breakeven point of the size to IOPS ratio of 1:500 and the maximum IOPS of 16,000 IOPS is 32 GiB.

Maximum IOPS @ 32 GiB = 32 GiB * 500 IOPS/GiB

Maximum IOPS @ 32 GiB = 16,000 IOPS
which is also the absolume maximum IOPS of gp3 Volume types

Now that we have the minimum and maximum IOPS, and the size to IOPS ratio of 1:500 limitation, we can now create the table on what is the IOPS per size range of the gp3 Volume.

Size RangeMaximum Provisioned IOPS
1 GiB to 6 GiB3,000 IOPS
6 GiB to 32 GiBVolume Size (GiB) * 500 IOPS/GiB
32 GiB to 16 TiB16,000 IOPS

We can also show the Maximum Provisioned IOPS vs Size using the chart below.


gp3 Provisioned IOPS Pricing

If we look at the EBS Volume Pricing page, we will see that there are 3 types of pricing for gp3 Volume types.

gp3 Storage$0.08/GB-month
gp3 IOPS3,000 IOPS free and $0.005/provisioned IOPS-month over 3,000
gp3 Throughput125 MB/s free and $0.04/provisioned MB/s-month over 125
Prices are based in N. Virginia Region

We will be focusing on the gp3 IOPS part of the EBS Volume pricing.

The minimum cost for the gp3 IOPS is free ($0/month) if you provision the IOPS of the gp3 volume to 3,000 IOPS.

gp3 IOPS Cost @ 3000 IOPS = ($0/month for 3000 IOPS) * $0.005/IOPS-month * (Provisioned IOPS - 3000 IOPS)

gp3 IOPS Cost @ 3000 IOPS = $0/month + $0.005/IOPS-month * (3000 IOPS - 3000 IOPS)

gp3 IOPS Cost @ 3000 IOPS = $0/month + $0.005/IOPS-month * (0 IOPS)

gp3 IOPS Cost @ 3000 IOPS = $0/month + $0/month

gp3 IOPS Cost @ 3000 IOPS = $0/month

The maximum cost for the gp3 IOPS is $65/month if you set the gp3 Volume IOPS to 16,000.

gp3 IOPS Cost @ 16000 IOPS = ($0/month for 3000 IOPS) * $0.005/IOPS-month * (Provisioned IOPS - 3000 IOPS)

gp3 IOPS Cost @ 16000 IOPS = $0/month * $0.005/IOPS-month * (16000 IOPS - 3000 IOPS)

gp3 IOPS Cost @ 16000 IOPS = $0/month * $0.005/IOPS-month * (13000 IOPS)

gp3 IOPS Cost @ 16000 IOPS = $0/month * $65/month

gp3 IOPS Cost @ 16000 IOPS = $65/month

Here is the table of the minimum and maximum cost for gp3 IOPS.

Minimum Cost for gp3 IOPS$0/month (Free)3000 IOPS
Maximum Cost for gp3 IOPS$65/month16000 IOPS

If you want to know more about gp3 performance then I suggest reading my post about gp3 Throughput.

I hope this helps you understand gp3 Performance and Cost more.

Leave a Reply

Your email address will not be published. Required fields are marked *