Check whether a volume can actually deliver the IOPS you want given the 500:1 IOPS-per-GiB ratio and the type ceiling.
EBS caps provisioned IOPS two ways at once: a per-GiB ratio that grows with the disk and a hard per-volume ceiling that does not, so the binding limit flips as the volume grows. At 500:1 you need 200 GiB before io2 will accept 100,000 IOPS, and 512 GiB before the 256,000 ceiling becomes the limit instead. Converting IOPS to MB/s at your real average I/O size is what tells you whether the instance network or the volume runs out first. Provisioning a request the volume cannot legally accept fails at the API, and provisioning IOPS the workload cannot issue at its block size is money spent on headroom that never gets used.
EBS IOPS
achievable IOPS = min(requested, size x IOPS-per-GiB ratio, type ceiling); size needed = ceil(min(requested, ceiling) ÷ ratio).
achievable IOPS = min(requested, size x IOPS-per-GiB ratio, type ceiling); size needed = ceil(min(requested, ceiling) ÷ ratio). EBS caps provisioned IOPS two ways at once: a per-GiB ratio that grows with the disk and a hard per-volume ceiling that does not, so the binding limit flips as the volume grows. At 500:1 you need 200 GiB before io2 will accept 100,000 IOPS, and 512 GiB before the 256,000 ceiling becomes the limit instead. Converting IOPS to MB/s at your real average I/O size is what tells you whether the instance network or the volume runs out first.
Provisioning a request the volume cannot legally accept fails at the API, and provisioning IOPS the workload cannot issue at its block size is money spent on headroom that never gets used.
This calculator takes 5 inputs: Volume size, IOPS you want to provision, Maximum IOPS per GiB for the volume type, Volume type IOPS ceiling, Average I/O size. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
The instance is usually the limit, not the volume. Every instance type has its own EBS bandwidth and IOPS maximum, and a volume provisioned beyond that ceiling will be throttled at the instance level no matter how large it is.