Home › Decoder › EBS:VolumeUsage.gp2 - the gp2 volume line, and the cheaper gp3
EBS:VolumeUsage.gp2 - the gp2 volume line, and the cheaper gp3
EBS:VolumeUsage.gp2 is the monthly storage charge for gp2 SSD volumes, $0.10 per GB-month in US East (N. Virginia); the newer gp3 type is $0.08 per GB-month and includes 3,000 IOPS and 125 MiB/s.
In your bill the usage type reads: EBS:VolumeUsage.gp2, USE1-EBS:VolumeUsage.gp2
What it costs
| Charge | Price | Unit |
|---|---|---|
| gp2 storage (EBS:VolumeUsage.gp2) | $0.10 | per GB-month |
| gp3 storage (EBS:VolumeUsage.gp3), 3,000 IOPS and 125 MiB/s included | $0.08 | per GB-month |
| gp3 provisioned IOPS above 3,000 (EBS:VolumeP-IOPS.gp3) | $0.005 | per IOPS-month |
US East (N. Virginia); other regions differ. Checked 2026-11-04. Sources: AWS EBS pricing, AWS price list file, EC2 offer, us-east-1, EBS General Purpose SSD volumes (docs).
Example with made-up numbers
40 gp2 volumes, 250 GB each = 10,000 GB-months on the gp2 line
10,000 GB x $0.10 = $1,000.00 per month on gp2
The same 10,000 GB on gp3 = 10,000 x $0.08 = $800.00 per month, a difference of $200.00 per month
If a volume needs more than 3,000 IOPS, add $0.005 per extra IOPS-month: 1,000 extra IOPS = $5.00 per volume per month
Typical causes
Volumes created before gp3 existed
Instances, AMIs and launch templates built years ago still request gp2, and every new instance from them gets a gp2 root volume.
Infrastructure-as-code defaults
Terraform, CloudFormation and CDK modules with an explicit or inherited gp2 type keep creating gp2 volumes on every deploy.
Oversized volumes sized for gp2 performance
gp2 performance scales with size, so teams bought bigger disks for IOPS. On gp3, IOPS and throughput are set independently of size.
Forgotten volumes
Unattached volumes from terminated instances keep billing every month at the same rate until deleted.
The fix, step by step
Verify first
Check these before you change anything: the steps below are suggestions, and only you can see your own configuration.
- List your gp2 volumes and check their real IOPS and throughput use in CloudWatch (VolumeReadOps, VolumeWriteOps, VolumeReadBytes, VolumeWriteBytes) before changing type; gp2 volumes above about 1,000 GiB can have a baseline above gp3's 3,000 IOPS, so check you are not lowering performance.
- Confirm what AWS documents for modifying a volume in place: it is done live, but test on a non-production volume first and take a snapshot before changing a production one.
- Check your infrastructure-as-code: if a template still says gp2, the next deploy can create gp2 again or fight your manual change.
- Do not delete unattached volumes until you have checked they hold no data you need (snapshot first; snapshots cost $0.05 per GB-month).
In the console
- EC2 console > Volumes; filter Volume type = gp2.
- Select one non-production volume > Actions > Modify volume.
- Change Volume type to gp3; keep size; leave IOPS 3,000 and throughput 125 MiB/s unless your metrics show you need more; Modify.
- Wait for the volume state to leave optimizing, check the instance's disk metrics for a day, then repeat for the rest.
- Update the AMI, launch template and IaC module to gp3.
With the CLI
aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 --query 'Volumes[].[VolumeId,Size,Iops,State]' --output table
aws ec2 create-snapshot --volume-id vol-EXAMPLE --description 'before gp3 change'
aws ec2 modify-volume --volume-id vol-EXAMPLE --volume-type gp3
aws ec2 describe-volumes-modifications --volume-ids vol-EXAMPLE
Rollback
A volume can be modified again after the modification completes; AWS limits how often a volume can be modified (check the current limit in the EBS docs). Keep the pre-change snapshot until the volume has run a few days.
Find your gp2 line in your own bill
Drop in your Cost Explorer or CUR CSV. Billtrim reads it in your browser, finds the gp2 line and shows the monthly dollars for your volumes.
Paste your export: how to export a Cost Explorer CSV or CUR file in two minutes.
Questions people ask
Is gp3 always cheaper than gp2?
Per GB-month yes ($0.08 vs $0.10 in US East N. Virginia). Large gp2 volumes with a high baseline IOPS need extra provisioned IOPS on gp3 ($0.005 per IOPS-month), so check each volume.
Does changing the type cause downtime?
AWS documents that Elastic Volumes lets you modify type, size and performance while the volume is attached. Test on one volume first.
Do snapshots get cheaper too?
No. Snapshot storage is billed separately ($0.05 per GB-month) and does not depend on the volume type.
Related
- TimedStorage-ByteHrs: the S3 Standard storage line
- LoadBalancerUsage and LCUUsage: what an ALB costs
- PublicIPv4:InUseAddress and IdleAddress: the public IP address charge
Part of the guide: Reduce your AWS bill as a startup: a checklist for teams with no FinOps person