EBS io2 vs gp3: paying for guaranteed IOPS
io2 and io2 Block Express are the high-end EBS volume types built for demanding databases, with high durability and very high provisioned IOPS. gp3 covers most needs far more cheaply. Here is when io2's premium is worth it.
Quick answer
gp3 is the general-purpose SSD volume with a cheap baseline of about 3,000 IOPS and optional provisioned performance, while io2 and io2 Block Express are premium volumes offering very high provisioned IOPS, higher durability, and sustained low latency for demanding databases. For most workloads gp3 is far cheaper; io2 is worth its premium only when you need IOPS beyond gp3's ceiling, higher durability guarantees, or consistent latency for mission-critical transactional databases. io2 charges more per GB and per provisioned IOPS, so pricing both at your target IOPS is essential before committing.
gp3 and io2 sit at opposite ends of the EBS SSD spectrum. gp3 is the cost-efficient general-purpose default; io2 (and io2 Block Express) is the premium tier for the most demanding databases. Choosing io2 when gp3 would do is one of the more expensive EBS mistakes, so it pays to understand exactly what the premium buys.
What io2 adds over gp3
| Aspect | gp3 | io2 / Block Express |
|---|---|---|
| Max IOPS | Up to about 16,000 | Much higher (Block Express far higher) |
| Durability | Standard EBS durability | Higher durability guarantee |
| Latency | Low, general-purpose | Consistent sub-millisecond target |
| Per-GB price | Lower | Higher |
| Per-IOPS price | Cheaper, with free baseline | Higher, no free baseline |
io2 gives you IOPS beyond what gp3 can provision, a stronger durability guarantee, and more consistent low latency, which matter for large transactional databases where an IO stall or data loss is costly. But every one of those benefits is priced in: io2 costs more per GB, and its provisioned IOPS carry a higher per-IOPS charge with no free baseline like gp3's 3,000.
Why gp3 wins for most workloads
The great majority of volumes never approach gp3's limits. gp3's free baseline of about 3,000 IOPS and 125 MB/s covers typical application and mid-size database needs, and its cheaper provisioned IOPS handle moderate bursts. Paying io2 rates for a volume that runs at a few thousand IOPS is pure overspend. Start from gp3 and only step up if measured demand exceeds what gp3 can deliver, the same disciplined default as picking gp3 over gp2.
When io2 earns its premium
io2 is justified when you need sustained IOPS above gp3's ceiling (large, high-throughput transactional databases), when the higher durability guarantee is required for a mission-critical dataset, or when consistent sub-millisecond latency directly affects revenue or SLAs. For those workloads the premium buys real value that gp3 cannot provide. Block Express extends io2 to the very highest IOPS and capacity for the largest single-volume databases, where consolidating onto fewer, faster volumes can even reduce total cost.
How to price the comparison
Never compare on per-GB rate alone, because io2's cost is dominated by provisioned IOPS. Take your target IOPS, price it on gp3 (baseline free, extra provisioned above 3,000) and on io2 (all IOPS charged at the higher rate), and add the per-GB storage for each. At low-to-moderate IOPS gp3 wins easily; only at high sustained IOPS or where durability and latency guarantees are mandatory does io2 make sense. Model this per volume, since a big database fleet magnifies the difference. For running databases on AWS more broadly, see how much a Postgres database costs on AWS, and keep an eye on the storage line items in hidden AWS costs to watch.
FAQ
Is io2 more expensive than gp3?
Yes, generally significantly. io2 costs more per GB and charges a higher rate per provisioned IOPS with no free baseline, whereas gp3 includes about 3,000 IOPS free and charges less for additional provisioned IOPS. For workloads that fit within gp3's performance envelope, gp3 is far cheaper. io2 is worth its premium only when you need its higher IOPS, durability, or latency guarantees.
When should I use io2 instead of gp3?
Use io2 when you need sustained IOPS beyond gp3's ceiling (large high-throughput transactional databases), when a mission-critical dataset requires io2's higher durability guarantee, or when consistent sub-millisecond latency directly affects SLAs or revenue. For everything else, gp3's cheaper baseline and provisioned performance are sufficient, so start from gp3 and step up only if measured demand requires it.
What is io2 Block Express?
io2 Block Express is the highest-performance variant of io2, supporting far higher provisioned IOPS and larger capacities than standard io2. It targets the largest single-volume databases needing extreme throughput. In some cases consolidating onto fewer Block Express volumes can reduce total cost versus striping many smaller volumes, but the per-unit rates remain premium, so price it against your actual IOPS target.
How do I compare io2 and gp3 cost correctly?
Do not compare per-GB rate alone, since io2's cost is dominated by provisioned IOPS. Take your target IOPS and price it on gp3 (baseline of about 3,000 free, extra provisioned above that) and on io2 (all IOPS charged at the higher rate), then add per-GB storage for each. At low-to-moderate IOPS gp3 wins; only at high sustained IOPS or with mandatory guarantees does io2 make sense.
Can gp3 replace io1 or io2 volumes?
Often yes, for the many io1 and io2 volumes that were provisioned for moderate IOPS that gp3 can now deliver more cheaply. Check each volume's actual sustained IOPS and latency requirements: if they fall within gp3's provisionable range and it does not need io2's durability or latency guarantees, migrating to gp3 lowers cost. Keep io2 only for volumes that genuinely need its premium features.
Does io2 have higher durability than gp3?
Yes. io2 offers a higher durability guarantee than standard EBS volume types like gp3, which is one reason it targets mission-critical databases where data loss is unacceptable. If your workload requires that stronger guarantee, io2 provides it; if standard EBS durability is sufficient (as it is for most workloads), gp3 delivers that at much lower cost.
What to do next
Price high-performance EBS volumes before you provision them. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.