Last Updated on January 13, 2021

In order for me to understand when a gp3 volume becomes cheaper than a gp2 volume, I need to understand the difference between the two EBS Volume types.

We have discussed before what is Throughput and how it affects performance of EBS Volumes. In this post we will be discussing the Throughput of gp3 volumes.

- What is the Throughput of gp3 Volumes?
- gp3 Throughput Cost
- Maximum Throughput of gp3 Volumes
- Computing for the maximum Throughput of 1 GiB sized gp3 volume
- Computing for the size when gp3 Volume is able to reach the maximum Throughput of 1,000 MiB/s
- IOPS vs Maximum Throughput Graph

## What is the Throughput of gp3 Volumes?

gp3 volumes has the following details.

Minimum Size | 1 GiB |

Maximum Size | 16 TiB |

Price of Size* | $ 0.08/GiB-month |

Minimum IOPS | 3000 IOPS |

Maximum IOPS | 16000 IOPS |

Price of IOPS* | 3000 IOPS free $0.05/provisioned IOPS-month over 3000 IOPS |

Minimum Throughput | 125 MiB/s |

Maximum Throughput | 1000 MiB/s |

Price of Throughput* | 125 MiB/s $0.04/provisioned MiB/s-month over 125 MiB/s |

* price is based on N. Virginia Amazon Web Services (AWS) Region.

For gp3 EBS Volumes, the throughput you set is sustained throughout its life unless you modify it.

Unlike the gp2 which has a Throughput that is dependent on the size of the volume and its burst credits, gp3’s Throughput is dependent on what you set, and how much are you willing to pay for the Throughput.

**Example 3.1:** Let’s say that I provisioned a gp3 Volume with a size of 10 GiB, with the minimum IOPS of 3000 and minimum Throughput of 125 MiB/s.

Then as long as I do not go above the 125 MiB/s throughput, my I/O throughput will not be limited.

What if I try to write a 250 MiB file? Since my throughput is only 125 MiB/s, this will be written in 2 seconds because the write speed will be limited to 125 MiB/s.

```
Duration = (250 MiB) / (125 MiB/s)
Duration = 2 seconds
```

The cost of having this 10 GiB gp3 volume with 3000 IOPS and 125 MiB/s Throughput is $0.8 per month.

```
Size Cost = (10 GiB * $0.08/GiB-month)
Size Cost = $0.8/month
IOPS Cost = Free since IOPS is 3000 IOPS (minimum)
Throughput Cost = Free since Throughput is 125 MiB/s (minimum)
Total Cost = Size Cost + IOPS Cost + Throughput Cost
Total Cost = $0.8 + $0 + $0
Total Cost = $0.8
```

**Example 3.2:** If I created a gp3 Volume with a size of 100 GiB, with a minimum of 3000 IOPS, and throughput of 500 MiB/s.

Then as long as I am accessing the data in the volume below the Throughput of 500 MiB/s I should not be throttled.

But if I try to access a 1500 MiB data, then this will take around 3 seconds to access, since I will be limited only 500 MiB/s.

```
Duration = (1500 MiB) / (500 MiB/s)
Duration = 3 seconds
```

The cost of having the 100 GiB gp3 volume with 3000 IOPS and 500 MiB/s Throughput is $23 per month.

```
Size Cost = (100 GiB * $0.08/GiB-month)
Size Cost = $8/month
IOPS Cost = Free since IOPS is 3000 IOPS (minimum)
Throughput Cost = (500 MiB/s - 125 MiB/s) * $0.04 / MiB/s-month
Throughput Cost = (375 MiB/s) * $0.04 / MiB/s-month
Throughput Cost = $15/month
Total Cost = Size Cost + IOPS Cost + Throughput Cost
Total Cost = $8 + $0 + $15
Total Cost = $23
```

## gp3 Throughput Cost

Since the Throughput of gp3 Volumes above 125 MiB/s has a cost of $0.04/MiB/s-month then we can show its relationship with the graph below.

We can also show the pricing in the table below.

Minimum Throughput of 125 MiB/s | Free |

Excess of 125 MiB/s | $0.04 / MiB/s-month |

## Maximum Throughput of gp3 Volumes

In the AWS Documentation, the maximum Throughput of gp3 Volumes is 1,000 MiB/s. But because of the statement below in another section of the same documentation, not all gp3 volume configuration can be set to a maximum Throughput of 1,000 MiB/s.

The maximum ratio of provisioned IOPS to provisioned volume size is 500 IOPS per GiB.

The maximum ratio of provisioned throughput to provisioned IOPS is .25 MiB/s per IOPS.

Since I find it difficult to understand the statement above, let’s do some computation by checking the maximum Throughput of a 1 GiB size gp3 volume (minimum size) and finding out the size when we are be able to reach the maximum Throughput of 1,000 MiB/s.

### Computing for the maximum Throughput of 1 GiB sized gp3 volume

First, let’s find out the maximum IOPS we can assign a 1 GiB sized gp3 volume.

Since the minimum IOPS of a gp3 Volume is 3000 IOPS, the maximum ratio of 500 IOPS per GiB is not applicable to a 1 GiB gp3 volume. Therefore, the IOPS of a 1 GiB gp3 volume is **3000 IOPS**.

We can now compute for the maximum Throughput. Since we know that the maximum ratio of a provisioned throughput to a provisioned IOPS is 0.25 MiB/s per IOPS, then doing the computation.

```
Maximum Throughput = 3000 IOPS * 0.25 MiB/s / IOPS
Maximum Throughput = 750 MiB/s
```

Now we see that the maximum Throughput we can assign a 1GiB gp3 Volume is only 750 MiB/s.

This actually holds true to all gp3 Volumes from 1 GiB to 6 GiB.

```
Maximum IOPS = 6 GiB * 500 IOPS / GiB
Maximum IOPS = 3000 IOPS
Maximum Throughput = 3000 IOPS * 0.25 MiB/s / IOPS
Maximum Throughput = 750 MiB/s
```

### Computing for the size when gp3 Volume is able to reach the maximum Throughput of 1,000 MiB/s

```
Maximum IOPS = Maximum Throughput / (0.25 MiB/s / IOPS)
Maximum IOPS = (1000 MiB/s) / (0.25 MiB/s IOPS)
Maximum IOPS = 4000 IOPS
```

So to get the maximum Throughput of 1000 MiB/s, you must assign your gp3 EBS Volume 4000 IOPS.

On the table below, we will see that we are able to reach the 4000 IOPS when we reach a volume size of 8 GiB.

Size | Maximum IOPS | Maximum Throughput |
---|---|---|

1 GiB | 3000 IOPS | 750 MiB/s |

2 GiB | 3000 IOPS | 750 MiB/s |

3 GiB | 3000 IOPS | 750 MiB/s |

4 GiB | 3000 IOPS | 750 MiB/s |

5 GiB | 3000 IOPS | 750 MiB/s |

6 GiB | 3000 IOPS | 750 MiB/s |

7 GiB | 3500 IOPS | 875 MiB/s |

8 GiB | 4000 IOPS | 1000 MiB/s |

9 GiB | 4500 IOPS | 1000 MiB/s |

10 GiB | 5000 IOPS | 1000 MiB/s |

## IOPS vs Maximum Throughput Graph

Since we can assign IOPS from 3000 IOPS to 16000 IOPS, maybe it is best to show a graph of IOPS to Maximum Throughput.

From the graph above, if you want to reach the 1000 MiB/s Throughput, then you’ll also have to set your IOPS to at least 4000 IOPS.

The minimum cost of having the maximum Throughput, without considering the size cost of the gp3 volume will be **$40/month**.

```
IOPS Cost = (4000 IOPS - 3000 IOPS) * $0.005/IOPS-month
IOPS Cost = (1000 IOPS) * $0.005/IOPS-month
IOPS Cost = $5/month
Throughput Cost = (1000 MiB/s - 125 MiB/s) * ($0.04 / MiB/s-month)
Throughput Cost = (875 MiB/s) * ($0.04 / MiB/s-month)
Throughput Cost = $35/month
Additional Cost = IOPS Cost + Throughput Cost
Additional Cost = $5/month + $35/month
Additional Cost = $40/month
```

That is enough going down the rabbit hole of gp3 EBS Volumes Throughput for me.

I hope this helped you understand more about the Throughput characteristics of gp3.