gp2 vs gp3: Cut EBS Costs ~20% With Zero Downtime
If your EBS volumes are still on gp2, you're almost certainly overpaying. Moving to gp3 cuts storage cost by roughly 20%, often improves performance, and the change is an in-place modification with no downtime and no data migration. It's one of the cleanest wins in all of AWS cost optimization.
Why gp2 costs more
With gp2, performance is tied to size: you get 3 IOPS per GB. So to get more IOPS, teams over-provision capacity they don't need just to buy performance. You pay for gigabytes to get IOPS.
What changed with gp3
gp3 decouples capacity from performance. Every gp3 volume includes a baseline of 3,000 IOPS and 125 MB/s throughput for free, regardless of size — and you can provision more independently if you need it. Combined with a lower per-GB price (about 20% less than gp2), most workloads get the same or better performance for less money.
| gp2 | gp3 | |
|---|---|---|
| Per-GB price | Baseline | ~20% lower |
| IOPS model | 3 IOPS/GB (size-linked) | 3,000 baseline, then provisioned |
| Throughput | Scales with size | 125 MB/s baseline, then provisioned |
| Migration | — | In-place, no downtime |
When gp2 might still win
Rarely. Very large gp2 volumes (e.g., 10+ TB) already get high baseline IOPS from their size, so check the math on those. And if you need very high IOPS/throughput, compare gp3's provisioned rates against io2. But for typical 8 GB–4 TB volumes, gp3 wins on cost and usually on performance.
How to migrate (safely, with no downtime)
- Inventory your gp2 volumes. In the EC2 console, filter volumes by type
gp2, or runaws ec2 describe-volumes --filters Name=volume-type,Values=gp2. - Modify the volume type. Select the volume → Actions → Modify Volume → change type to gp3. Via CLI:
aws ec2 modify-volume --volume-id vol-xxxx --volume-type gp3. - Keep the defaults to start. The free 3,000 IOPS / 125 MB/s baseline matches or beats what most gp2 volumes delivered. Only provision extra if monitoring shows you need it.
- No downtime. The modification happens online while the volume stays attached and in use. The volume briefly shows "optimizing" but remains fully available.
- Verify, then move on. Confirm IOPS/throughput in CloudWatch over a normal load cycle.
A quick caution on right-sizing IOPS
The one way to overpay on gp3 is to blindly provision high IOPS/throughput you don't use. Start at baseline and add only what monitoring justifies. Most volumes never need more.
Find your gp2 volumes automatically
Our free AWS Cost Checkup flags gp2-to-gp3 opportunities (and other storage waste) from your cost data. Or book a free call and we'll walk your environment together.
Pricing and limits change; confirm current EBS pricing in the AWS console for your region.
Want these numbers for your account?
Run the free AWS Cost Checkup, or book a free 20-minute consultation — no obligation.