Loading...


Updated 26 Oct 2026 • 4 mins read

Amazon EBS pricing is per GB-month of provisioned capacity by volume type, plus provisioned IOPS and throughput where you buy them, plus snapshots, and it bills whether or not a volume is attached. This 2026 breakdown gives every volume type's rate in US East, gp3 against gp2 and io2 with worked examples, snapshot tiers, and the five levers that cut it.
Amazon EBS pricing is simple to read and easy to overpay, for two reasons that sit in the rate card itself. First, EBS bills provisioned capacity, not used capacity, and bills it whether or not the volume is attached to anything, so a 500 GB volume that is 30 percent full and was detached from an instance terminated in March costs exactly what it did in production. The second is that gp2, the default volume type for a decade, still costs $0.10 per gigabyte-month while gp3 costs $0.08 and performs better at every size, and a large share of estates have never migrated. Between orphans and gp2, most AWS bills carry an EBS line 30 to 50 percent larger than it needs to be.
This guide gives every EBS volume type's rate in US East as of October 2026, explains how IOPS and throughput are charged, compares gp3, gp2, and io2 with worked examples, covers snapshot pricing and the archive tier, and lists the five changes that cut the bill. Rates are from the official EBS pricing page; for the file-storage alternative, see our comparison of EFS and EBS.
The short answer: Amazon EBS charges per GB-month of provisioned capacity by volume type, in US East: gp3 $0.08 with 3,000 IOPS and 125 MB/s included (extra IOPS $0.005 per IOPS-month, extra throughput $0.04 per MB/s-month); gp2 $0.10 with performance tied to size; io2 Block Express $0.125 plus $0.065 per provisioned IOPS-month for the first 32,000 (cheaper above); io1 the same without the Block Express performance; st1 throughput-optimized HDD $0.045; sc1 cold HDD $0.015. Snapshots cost $0.05 per GB-month standard, billed on changed blocks, and $0.0125 in the archive tier for 90-day-plus retention. Volumes bill on provisioned size whether attached or not, and io2 bills its IOPS whether used or not. The five cuts: migrate gp2 to gp3 (20 percent on capacity, in place, no downtime); delete unattached volumes and old snapshots; right-size provisioned capacity; buy IOPS only where measured demand exceeds 3,000; and use st1 or sc1 for sequential and cold data.
US East (N. Virginia), October 2026.
| Volume type | Per GB-month | Performance included | Extra performance | 500 GB volume per month | Best for |
|---|---|---|---|---|---|
| gp3 (general-purpose SSD) | $0.08 | 3,000 IOPS, 125 MB/s at any size | $0.005 per IOPS-month above 3,000 (max 16,000); $0.04 per MB/s-month above 125 (max 1,000) | $40 | Almost everything: boot volumes, applications, most databases |
| gp2 (previous general-purpose SSD) | $0.10 | 3 IOPS per GB, burst to 3,000; max 16,000 at 5.3 TB | None; buy size for performance | $50 | Legacy; migrate to gp3 |
| io2 Block Express (provisioned IOPS SSD) | $0.125 | Whatever you provision, up to 256,000 IOPS, 4,000 MB/s | $0.065 per IOPS-month to 32,000; $0.046 to 64,000; $0.032 above | $62.50 plus IOPS (16,000 IOPS: $1,040) | Very high-transaction databases; sub-millisecond latency; 99.999% durability |
| io1 (provisioned IOPS SSD) | $0.125 | Up to 64,000 IOPS | $0.065 per IOPS-month | $62.50 plus IOPS | Legacy; io2 is the same price with better performance |
| st1 (throughput-optimized HDD) | $0.045 | Up to 500 MB/s, throughput scales with size | None | $22.50 | Sequential workloads: logs, big data, data warehouses |
| sc1 (cold HDD) | $0.015 | Up to 250 MB/s | None | $7.50 | Infrequently accessed sequential data |
| Magnetic (standard, legacy) | $0.05 plus $0.05 per million I/O | Low | None | $25 plus I/O | Legacy; migrate |
Snapshots: $0.05 per GB-month in the standard tier, billed on the blocks changed since the previous snapshot rather than on the full volume, so a chain of daily snapshots of a lightly changing volume costs a fraction of the volume size; $0.0125 per GB-month in the archive tier, which stores a full snapshot for a minimum of 90 days, with a $0.03 per GB restore charge and up to 72 hours to restore. Fast snapshot restore, which removes the first-read latency after a restore, bills per volume per Availability Zone-hour. Data transfer for EBS within an Availability Zone is free.
gp2 was designed when performance had to be bought by size: 3 IOPS per gigabyte, so a 100 GB volume got 300 IOPS and burst to 3,000 from a credit bucket, and a volume that needed 10,000 IOPS had to be provisioned at 3.3 TB whether or not the data filled it. gp3 decoupled them. Every gp3 volume gets 3,000 IOPS and 125 MB/s regardless of size, and more can be provisioned independently for $0.005 per IOPS-month and $0.04 per MB/s-month. The capacity rate is 20 percent lower.
| Scenario | gp2 | gp3 | Saving |
|---|---|---|---|
| 100 GB boot volume | $10; 300 IOPS baseline, burst to 3,000 | $8; 3,000 IOPS always | 20%, and faster |
| 1 TB application volume | $100; 3,000 IOPS | $80; 3,000 IOPS | 20% |
| Database needing 10,000 IOPS | $333 (3.3 TB bought for the IOPS) | $80 for 1 TB + $35 for 7,000 extra IOPS = $115 | 65% |
| 4 TB data volume needing 12,000 IOPS | $400 | $320 + $45 = $365 | 9% |
The migration is an in-place volume modification: no downtime, no data copy, no instance change. There is no workload for which gp2 is the better choice, and an estate that has not migrated is paying 20 percent for nothing on every volume. Volumes that need performance bought through size on gp2 save far more.
io2 costs 56 percent more per gigabyte than gp3 and charges $0.065 per provisioned IOPS-month against gp3's $0.005, thirteen times as much. What it buys is a ceiling of 256,000 IOPS and 4,000 MB/s against gp3's 16,000 and 1,000, consistent sub-millisecond latency, and 99.999 percent durability against 99.8 to 99.9 percent. A database that needs 50,000 IOPS has no choice; a database that needs 8,000 and is on io2 because the template said so is paying about $700 a month for 1 TB that gp3 would serve for about $105. The decision is a measured one: look at the volume's actual IOPS and latency over a month before paying io2 rates for them.
Each of these is invisible on the invoice, which shows EBS as one line, and visible only in an inventory of every volume and snapshot with its size, its attachment state, its age, and its owner, the pattern our guide to where cloud waste hides describes for every service.
A company runs 2,400 EBS volumes totaling 480 TB, 70 percent on gp2, plus 90 TB of snapshots with no lifecycle policy and 40 io2 volumes for databases. The EBS line is about $56,000 a month: gp2 $33,600, gp3 $11,500, io2 capacity and IOPS $6,400, snapshots $4,500.
Migrating gp2 to gp3 in place saves $6,700 a month. An inventory finds 310 unattached volumes totaling 41 TB, mostly gp2 from terminated instances, worth $3,900 a month once deleted, and 55 TB of snapshots whose source volumes no longer exist, $2,750. Right-sizing the 200 largest volumes, averaging 30 percent utilization, from 1 TB to 500 GB saves $8,000. Of the 40 io2 volumes, 28 are in non-production and average 900 IOPS; moving them to gp3 saves about $4,200. Moving the remaining snapshots older than 90 days to the archive tier saves $1,100. The line falls from about $56,000 to about $29,000, 48 percent, with no change to any application, and the single largest item was a migration that took no downtime.
Modify every gp2 volume in place. Twenty percent on capacity, better performance, no downtime. Update the templates and AMIs so new volumes are gp3.
List volumes with no attachment across every account and region, snapshot the ones anyone might need, delete the rest, and set delete-on-termination on non-root volumes that should not outlive their instance.
Data Lifecycle Manager policies that keep a defined number of snapshots and expire the rest; delete snapshots and AMIs for resources that no longer exist; move compliance snapshots to the archive tier at a quarter of the price.
EBS bills provisioned size, so a volume should be sized to what it holds plus reasonable headroom. Volumes can be grown in place at any time, which removes the reason to over-provision.
gp3's included 3,000 IOPS serve most workloads; provision more on gp3 at $0.005 per IOPS where CloudWatch shows sustained demand above it; reserve io2 for workloads whose measured IOPS, latency, or durability requirements exceed what gp3 can provision, and move non-production io2 volumes to gp3.
st1 at $0.045 for sequential, throughput-heavy data and sc1 at $0.015 for cold sequential data cost a fraction of SSD. For shared file access across instances, EFS prices per GB used rather than provisioned, which our EFS versus EBS comparison works through.
Every item above depends on seeing each volume and snapshot with its type, size, attachment state, age, and owner, across every account, which the EBS line on the invoice does not show and the console shows one region at a time. Opslyft's inventory lists them with a cost and an owner on each, flags the unattached, the orphaned, and the io2 in non-production, and routes the cleanup to the team responsible; the broader pattern is in our guide to where cloud waste hides.
Amazon EBS pricing is a per-gigabyte rate on what you provisioned, charged whether it is attached, full, or on the right volume type, which is why the EBS line is so often 30 to 50 percent larger than the storage actually in use. Migrate gp2 to gp3, delete what is unattached, expire and archive snapshots, right-size capacity, buy IOPS on evidence, and match the volume type to the workload. None of it touches a running application, and the first step alone returns 20 percent of the gp2 estate. For how the block, file, and object options compare, see our EFS versus EBS guide and our S3 pricing breakdown; for the IOPS behind every number here, our guide to IOPS.
In US East, gp3 general-purpose SSD costs $0.08 per GB-month with 3,000 IOPS and 125 MB/s included; gp2 costs $0.10 per GB-month with performance tied to size; io2 Block Express costs $0.125 per GB-month plus $0.065 per provisioned IOPS-month (less above 32,000 IOPS); st1 throughput-optimized HDD $0.045 and sc1 cold HDD $0.015 per GB-month. Snapshots cost $0.05 per GB-month in the standard tier and $0.0125 in the archive tier. Volumes bill on provisioned size, attached or not.
gp3 is 20 percent cheaper per GB ($0.08 against $0.10), includes 3,000 IOPS and 125 MB/s at any size, and lets you provision more IOPS and throughput independently of capacity. gp2 ties performance to size at 3 IOPS per GB with burst, so a small gp2 volume is slow and a large one is bought for performance it may not need. For almost every workload gp3 is cheaper and faster; migration is an in-place modification with no downtime.
The same as an attached one: EBS bills provisioned size whether or not the volume is attached to an instance. A 500 GB gp3 volume left behind by a terminated instance costs $40 a month indefinitely, and io2 volumes keep billing their provisioned IOPS as well. Unattached volumes and old snapshots are among the commonest items in any AWS waste audit.
When a workload needs more than the 16,000 IOPS or 1,000 MB/s that gp3 can provision, needs sub-millisecond latency consistently, or needs io2's 99.999 percent durability. Databases with very high transaction rates qualify; most do not. A gp3 volume provisioned to 16,000 IOPS costs about $65 a month in extra IOPS; the same 16,000 IOPS on io2 costs $1,040, so io2 should be a measured decision.
$0.05 per GB-month in the standard tier, billed on the changed blocks since the previous snapshot rather than on the full volume, and $0.0125 per GB-month in the archive tier for snapshots kept 90 days or more, with a $0.03 per GB restore charge and up to 72 hours to restore. Snapshots persist after their volumes are deleted and accumulate without a lifecycle policy.
Legacy free-tier accounts receive 30 GB of gp2 or gp3 storage, 2 million I/O operations, and 1 GB of snapshot storage a month for 12 months. Accounts created since July 2025 receive credits instead of the resource-based free tier.