EBS gp2 vs gp3 Calculator
Find out how much moving EBS volumes from gp2 to gp3 saves, including the extra performance large volumes must buy.
Each one fills in the fields below for a typical workload of that kind. You can change any of them.
Group volumes of the same size. The IOPS toggle matters only above 1,000 GiB.
- On gp2 today
- $1,000.00/mo
- On gp3
- $840.00/mo
- Volume groups that cost more
- 0 of 2
$1,920.00 a year across 14 volumes.
Per volume group
| Group | Size | gp2 IOPS | Throughput | gp2 | gp3 | Saving |
|---|---|---|---|---|---|---|
| app-data x12 | 500 GiB | 1,500 | 125 MiB/s | $600.00 | $480.00 | $120.00 |
| db-primary x2 | 2,000 GiB | 6,000 | 250 MiB/s | $400.00 | $360.00 | $40.00 |
Make the change
gp2 to gp3 is an online change: no snapshot, no detach, no downtime. The one thing to get right is which volumes need their IOPS bought back.
Modify one volume, watch it finish, and list the rest. The volume stays attached and usable throughout. Do not pass --iops or --throughput unless the volume genuinely needs more than the 3,000 IOPS and 125 MiB/s gp3 includes; that is what turns a saving into a regression.
# gp2 to gp3 is an online modification: no snapshot, no detach, no
# downtime. The volume enters "optimizing" and stays fully usable.
#
# The default gp3 volume includes 3,000 IOPS and 125 MiB/s. Passing --iops
# or --throughput buys MORE than that and is charged for, so only pass them
# where the volume was genuinely relying on the IOPS gp2 gave it for free.
aws ec2 modify-volume --volume-id vol-xxxxxxxx --volume-type gp3
# Watch it complete before touching the next one.
aws ec2 describe-volumes-modifications --volume-ids vol-xxxxxxxx \
--query 'VolumesModifications[0].[ModificationState,Progress]' --output text
# Every gp2 volume in the region, with its size, so you can work down the list.
aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 \
--query 'Volumes[].[VolumeId,Size,Iops,Attachments[0].InstanceId]' \
--output tableWhat this model assumes
Show
- gp2 IOPS are a function of size. 3 IOPS per GiB, floored at 100 and capped at 16,000. A volume over 1,000 GiB therefore carries more than gp3’s included 3,000, and matching that on gp3 costs $0.005 per IOPS-month. This is the entire reason the answer is not always “save 20%”.
- Matching IOPS is off by default because most volumes do not need it. Turning it on is the conservative choice for a database and an expensive one for a filesystem.
- Throughput is matched up to gp2’s ceiling. gp2 delivers at most 250 MiB/s, and a volume of 170 GiB or less at most 128, so matching it on gp3 never needs more; anything above gp3’s included 125 MiB/s is charged at $0.04 per MiB/s-month and shown per group.
- Snapshots are not included. They cost the same ($0.05/GB-month) on both volume types, so including them would add an identical number to both sides and change no decision.
- Burst credits are not modeled. gp2 volumes under 1,000 GiB burst to 3,000 IOPS on a credit balance. A volume that relies on burst rather than its baseline will behave differently on gp3’s flat 3,000, usually better, since gp3 does not run out.
Rates used and their sourcesShow
- EBS volumes and snapshots, source, read 13 Oct 2026
Prices verified 13 Oct 2026. Public list prices in USD for US East (N. Virginia), before any discount you have negotiated.
Hundreds of volumes to move?
Cloud Cost Audit: We find every gp2 volume across your accounts, check what each one really uses, and plan the move. From $1,500, fixed. Nothing paid upfront.
Questions
How much cheaper is gp3 than gp2?
gp3 storage costs $0.08 per GB-month against gp2 at $0.10, 20% less. For most volumes under 1,000 GiB that is the whole story. Above that, gp2 provisions more than 3,000 IOPS for free (3 per GiB), and matching that performance on gp3 costs $0.005 per IOPS-month, which eats into the storage saving. Matching gp2 throughput above the included 125 MiB/s adds $0.04 per MiB/s-month, and on a volume of 171 to 249 GiB bursting to gp2's 250 MiB/s that can tip gp3 into costing more. A gp2 volume of 170 GiB or less never delivers more than 128 MiB/s, so it has nothing to buy back.
Should I migrate from gp2 to gp3?
For most volumes, yes; it is a 20% saving with no downtime and no snapshot. The exception is a large volume that genuinely uses the IOPS its size gives it on gp2. Check actual IOPS consumption before assuming you need to match provisioned IOPS: most volumes sized for capacity never approach their gp2 ceiling.
Does changing EBS volume type cause downtime?
No. A volume type change is an online modification; the volume stays attached and the instance keeps running. The volume enters an optimizing state during which performance is somewhere between the two types. Since January 2026 you can start the next modification as soon as one completes, up to four in any 24 hours.
How many IOPS does a gp2 volume have?
Three per GiB, with a floor of 100 and a ceiling of 16,000. A 100 GiB volume gets 300 IOPS; a 1,000 GiB volume gets 3,000; from 5,334 GiB up it is capped at 16,000. Volumes under 1,000 GiB can also burst to 3,000 IOPS on a credit balance, which gp3 replaces with a flat, non-depleting 3,000.
Is gp3 faster than gp2?
For small volumes, considerably, gp3 gives every volume 3,000 IOPS and 125 MiB/s regardless of size, where a 100 GiB gp2 volume has 300 IOPS once its burst credits run out. For very large volumes gp2 provides more baseline IOPS, and matching it on gp3 is a paid option.
Related tools
EC2 Idle & Rightsizing Calculator
What idle instances cost, and what stopping them actually saves.
OpenS3 Storage Class Calculator
Find the cheapest S3 class once retrieval fees and minimums are counted.
OpenAmazon RDS Cost & Rightsizing Calculator
See the Multi-AZ premium in compute and in storage, then price a cheaper setup.
OpenMore tools for: Storage and lifecycle
Finding the volumes is the hard part, not the arithmetic.
Finitizer inventories every EBS volume across every account, checks actual IOPS consumption rather than provisioned, flags the volumes where matching would cost money, and ships the migration as a Terraform PR.
See how Finitizer works