Do Larger EBS Volumes Require more IOPS?

Viewed 458

I recently resized the root EBS volume on an EC2 instance.

I changed it from: gp2 120GB and 360 IOPS to: io2 512GB and 1000 IOPS

I was reading documentation about gp2 and they say that they give you 3 IOPS per GB which is why when I had 120 GB it had 360 IOPS. But this made me think that IOPS per GB mattered, and now that I have 512 GB and 1000 IOPS I actually have fewer IOPS per GB than I did before. (~2 IOPS per GB as compard to 3 IOPS per GB).

So my question is, does a larger volume require more IOPS to maintain the IOPS/GB ratio? Did I actually make my EBS volume slower with these changes?

1 Answers

You switched from General Purpose (gp2) to provisioned IOPS (io2).

With gp2 you get a baseline of 100 IOPS and then 3 IOPS per GiB after the first 33.33GiB, with a max of 16,000 IOPS. Pricing is based on volume size.

Pricing: $0.10 per GB-month of provisioned storage

With io2 you provision the number of IOPS you need, independent of the volume size. io2 has a max of 64,000 IOPS. Pricing is based on volume size and the number of provisioned IOPS.

Pricing: $0.125/GB-month + $0.065/provisioned IOPS-month

See EBS Volume Types and EBS Pricing for all of the details.

Unless you specifically need provisioned IOPS you probably want general purpose as it is significantly cheaper.

Provisioned IOPS SSD (io1 and io2) volumes are designed to meet the needs of I/O-intensive workloads, particularly database workloads, that are sensitive to storage performance and consistency.

gp3 was recently released and it has a baseline of 3,000 IOPS, higher max IOPS, and is cheaper than gp2 so you may want to go with that option. It also allows you to provision additional IOPS and throughput.

As @jordanm noted in the comments, gp3 may have higher latency than gp2 (both latencies are described as "single digit millisecond" in the documentation).

Related