EBS gp2 vs gp3 — same 100 GiB, where the IOPS ceilings diverge

EBS gp2 vs gp3 — same 100 GiB, where the IOPS ceilings diverge An architecture diagram generated by Archify. fio benchmark pod · alpine · direct=1 · 4k qd32 · m5.xlarge node — instance EBS limit 6,000 IOPS / 1,150 Mbps fio benchmark pod alpine · direct=1 · 4k qd32 Block device /dev/nvme* · attached · mounted by EBS CSI driver · m5.xlarge node — instance EBS limit 6,000 IOPS / 1,150 Mbps Block device /dev/nvme* attached · mounted by EBS CSI driver EBS gp3 100 GiB · 3,000 IOPS · 125 MiB/s, fixed · Amazon EBS (ap-northeast-2a) EBS gp3 100 GiB 3,000 IOPS · 125 MiB/s, fixed EBS gp2 100 GiB · baseline 300 IOPS (3 per GiB) · Amazon EBS (ap-northeast-2a) EBS gp2 100 GiB baseline 300 IOPS (3 per GiB) I/O credit bucket · 5.4M credits · refills +300/s · Amazon EBS (ap-northeast-2a) I/O credit bucket 5.4M credits · refills +300/s CloudWatch BurstBalance · credits remaining % — alarm on it · Amazon EBS (ap-northeast-2a) CloudWatch BurstBalance credits remaining % — alarm on it 4k random I/O /mnt/gp3 · flat 3,001 IOPS /mnt/gp2 · 3,001 → 300 IOPS −2,700 credits/s while bursting balance % every minute m5.xlarge node — instance EBS limit 6,000 IOPS / 1,150 Mbps Amazon EBS (ap-northeast-2a) Legend Backend Database Cloud Security External

Measured IOPS

  • • gp3: 3,001 IOPS average over 600 s, no jitter
  • • gp2: cliff from 3,001 to 300 IOPS at 1,999 s (AWS formula: 2,000 s)

Measured latency (qd1)

  • • gp3 avg 0.56 ms · p99 0.87 ms
  • • gp2 while throttled: p50 0.60 ms · p95 3.39 ms — bimodal

Cost (Seoul region)

  • • 100 GiB·month: gp2 $11.40 vs gp3 $9.12 (−20%)
  • • 3,000 baseline IOPS on gp2 = 1 TiB = $114/month