EBS is one of those AWS services where the bill surprises you — not because the per-GB rate is high, but because costs accumulate silently. Old snapshots, over-provisioned IOPS, and forgotten volumes add up fast. A typical 500GB gp3 volume costs $40/month, but the snapshots from that volume can cost more than the volume itself if nobody cleans them up.
The biggest pricing change: gp3 decoupled IOPS and throughput from volume size. You no longer need to over-provision storage just to get more IOPS — saving 20-30% for most workloads compared to the older gp2.
TL;DR: gp3 is the default and costs $0.08/GB/month with 3,000 IOPS and 125 MB/s included free. io2 Block Express costs $0.125/GB/month plus $0.065/IOPS/month but delivers up to 256,000 IOPS. Snapshots cost $0.05/GB/month (incremental). The silent cost killer: orphaned snapshots and unattached volumes.
EBS Volume Types and Pricing
SSD Volumes (General Purpose)
| Feature | gp3 | gp2 |
|---|---|---|
| $/GB/month | $0.08 | $0.10 |
| Baseline IOPS | 3,000 (free) | 3 per GB (min 100) |
| Max IOPS | 16,000 | 16,000 |
| Baseline throughput | 125 MB/s (free) | 128-250 MB/s |
| Max throughput | 1,000 MB/s | 250 MB/s |
| Extra IOPS | $0.005/IOPS/month | Tied to volume size |
| Extra throughput | $0.040/MB/s/month | N/A |
Why gp3 is almost always better than gp2:
- 20% cheaper per GB
- 3,000 baseline IOPS regardless of volume size (gp2 needs 1TB for 3,000 IOPS)
- Independent IOPS and throughput scaling
SSD Volumes (Provisioned IOPS)
| Feature | io2 Block Express | io1 |
|---|---|---|
| $/GB/month | $0.125 | $0.125 |
| $/IOPS/month | $0.065 | $0.065 |
| Max IOPS | 256,000 | 64,000 |
| Max throughput | 4,000 MB/s | 1,000 MB/s |
| Multi-Attach | Yes | Yes |
| Durability | 99.999% | 99.8-99.9% |
Use io2 only when you need guaranteed IOPS above 16,000 or sub-millisecond latency. At 10,000 IOPS on a 100GB volume, io2 costs $663/month — versus $88 for gp3 with the same IOPS.
HDD Volumes
| Feature | st1 (Throughput Optimized) | sc1 (Cold) |
|---|---|---|
| $/GB/month | $0.045 | $0.015 |
| Max IOPS | 500 | 250 |
| Max throughput | 500 MB/s | 250 MB/s |
| Min size | 125 GB | 125 GB |
| Best for | Big data, logs, streaming | Infrequent access archives |
Snapshot Pricing
EBS snapshots are incremental — each snapshot only stores blocks that changed since the last snapshot. See the EBS user guide for snapshot management details.
| Component | Price |
|---|---|
| Standard snapshots | $0.05/GB/month |
| Archive tier | $0.0125/GB/month (75% cheaper) |
| Restore from archive | $0.03/GB |
| Fast snapshot restore (FSR) | $0.75/hour per AZ per snapshot |
The Snapshot Cost Trap
Snapshots accumulate silently. A 500GB volume with daily snapshots and 5% daily change rate generates ~25GB of new snapshot data per day. After one year, that's ~9TB of snapshot storage costing $450/month — more than 11x the volume cost ($40/month). Set lifecycle policies or use AWS Backup with retention rules.
Snapshot Archive
For snapshots you need to keep for compliance but rarely restore:
| Feature | Standard | Archive |
|---|---|---|
| Storage cost | $0.05/GB/month | $0.0125/GB/month |
| Retrieval time | Instant | 24-72 hours |
| Retrieval cost | Free | $0.03/GB |
| Best for | Frequent restores | Compliance, DR |
Hidden Costs to Watch
1. Unattached Volumes
Detached EBS volumes still incur charges. A 1TB gp3 volume sitting unattached costs $80/month doing nothing. Check for unattached volumes monthly.
2. Over-Provisioned IOPS
io2 volumes provisioned at 50,000 IOPS but averaging 2,000 IOPS waste $3,120/month in unused IOPS charges. Switch to gp3 with 3,000 baseline IOPS for most workloads.
3. gp2 Volumes Not Migrated to gp3
Every gp2 volume is paying a 20% premium with no benefit. Migration from gp2 to gp3 is live (no downtime, no detach) and saves money immediately.
4. Fast Snapshot Restore
FSR charges $0.75/hour per AZ per snapshot. One snapshot with FSR enabled across 3 AZs costs $1,620/month. Only enable FSR for volumes that need instant restore times.
Volume Type Decision Guide
| Workload | Recommended | Why |
|---|---|---|
| General purpose (web, app, DB) | gp3 | Cheapest SSD, 3K free IOPS |
| Small databases (under 16K IOPS) | gp3 + extra IOPS | $0.005/IOPS cheaper than io2 |
| High-perf databases (over 16K IOPS) | io2 Block Express | Only option for 16K-256K IOPS |
| Big data, Hadoop, Kafka | st1 | Throughput-optimized, 56% cheaper than gp3 |
| Archive, cold logs | sc1 | Cheapest at $0.015/GB |
| Boot volumes | gp3 | Always gp3 for OS drives |
Real-World Cost Examples
Web Application Server
| Component | Specification | Monthly Cost |
|---|---|---|
| Root volume | 30GB gp3 | $2.40 |
| Data volume | 200GB gp3 | $16.00 |
| Daily snapshots (30-day retention) | ~50GB incremental | $2.50 |
| Total | $20.90 |
Production Database (PostgreSQL)
| Component | Specification | Monthly Cost |
|---|---|---|
| Data volume | 500GB gp3, 10,000 IOPS | $75.00 |
| WAL volume | 100GB gp3 | $8.00 |
| Snapshots (hourly, 7-day retention) | ~200GB incremental | $10.00 |
| Total | $93.00 |
With io2 at same IOPS: $713/month (7.7x more expensive).
Cost Optimization Strategies
1. Migrate All gp2 to gp3
Zero downtime, instant savings. Every gp2 volume should be gp3 — there's no reason to stay on gp2.
2. Audit Unattached Volumes
Run a monthly check for EBS volumes with no EC2 attachment. Snapshot them and delete the volumes.
3. Implement Snapshot Lifecycle Policies
Use Amazon Data Lifecycle Manager (DLM) to automatically create and delete snapshots. Set retention periods that match your actual recovery needs.
4. Right-Size IOPS on gp3
Monitor actual IOPS usage with CloudWatch. Many volumes provisioned at 10,000 IOPS consistently use less than 3,000 — meaning the extra IOPS charges are wasted.
5. Archive Old Snapshots
Move snapshots older than 90 days to archive tier. 75% cheaper storage for compliance-only snapshots.
Related Guides
- AWS EBS Cost Optimization: Cut Storage Costs
- AWS EC2 Pricing: Every Model and Discount
- AWS EFS Pricing Guide
- AWS S3 Pricing Guide
Frequently Asked Questions
How much does EBS cost per month?
A typical gp3 volume costs $0.08/GB/month. A 100GB gp3 volume is $8/month with 3,000 IOPS and 125 MB/s included. Snapshots add $0.05/GB/month for stored data.
Which EBS volume type should I use?
gp3 for 95% of workloads. It's the cheapest SSD option with 3,000 free IOPS. Only use io2 if you need more than 16,000 IOPS or sub-millisecond latency. Use st1/sc1 for large sequential workloads (big data, logs).
Is gp3 better than gp2?
Yes, always. gp3 is 20% cheaper per GB, provides 3,000 baseline IOPS regardless of size, and lets you scale IOPS independently of storage. Migration is live with no downtime.
Do I pay for unattached EBS volumes?
Yes. EBS volumes incur charges whether attached to an instance or not. Unattached volumes are one of the most common sources of cloud waste.
How do I reduce EBS snapshot costs?
Set retention policies with DLM, archive old snapshots to the Archive tier (75% cheaper), and delete snapshots for terminated volumes. Also delete AMIs you no longer use — each AMI has associated EBS snapshots.
Stop Overpaying for Block Storage
EBS pricing is simple per-GB, but the total bill includes IOPS charges, snapshot accumulation, and idle resource waste. The biggest wins:
- Migrate gp2 → gp3 — instant 20% savings, zero downtime
- Delete unattached volumes — stop paying for storage nobody uses
- Set snapshot lifecycle rules — prevent unlimited snapshot accumulation
- Right-size IOPS — use gp3 baseline (3K free) before provisioning more
- Archive old snapshots — 75% off for compliance-only retention
Lower Your EBS Costs with Wring
Wring helps you access AWS credits and volume discounts to lower your EBS costs. Through group buying power, Wring negotiates better rates so you pay less per GB.
