Master AWS EBS Pricing & Reduce Your Bill

What are EBS volumes and why do customers select these?

Amazon Elastic Block Storage (EBS) is an easy to use, high-performance block storage service designed to work with Amazon Elastic Compute Cloud (EC2) for both throughput and transaction-intensive workloads at any scale. Volumes actively attached to an instance can be used just like a physical hard drive.

There are different EBS volume types to balance optimal price and performance which can be used as cost-effective storage. You can change volume types, tune performance, dynamically increase volume size and modify the provisioned IOPS capacity on live production environments, without disrupting your critical applications running on it.

EBS volumes can be used to store data that requires frequent updates, such as system drives or storage for database applications. It also can be used for throughput-intensive applications that perform continuous disk scans.

Multiple EBS volumes can be attached to a single instance if all resources are in the same Availability Zone. You can also use Multi-Attach to mount a volume to multiple instances at the same time. An AWS account has a limit on the number of EBS volumes that can be used and the total storage available.

EBS volumes are in high demand among real-time, modern, mission-critical applications since they provide the following benefits: 

  1. Performance for any workload
  2. High availability and durability
  3. Cost-effective
  4. Easy to use
  5. Virtually unlimited scale
  6. High security
  7. Data persistence
  8. Data encryption
  9. Backup with Snapshots
  10. High flexibility

 

Types of EBS Volumes

Volume Type
EBS Provisioned IOPS SSD (io2)
EBS Provisioned IOPS SSD (io1)
EBS General Purpose SSD (gp2)
Throughput Optimized HDD (st1)
Cold HDD (sc1)
Description
Highest performance and highest durability SSD volume designed for latency-sensitive transactional workloads
Highest performance SSD volume designed for latency-sensitive transactional workloads
General Purpose SSD volume that balances price performance for a wide variety of transactional workloads
Low cost HDD volume designed for frequently accessed, throughput intensive workloads
Lowest cost HDD volume designed for less frequently accessed workloads
Durability
100.00%
99.8% – 99.9% durability
99.8% – 99.9% durability
99.8% – 99.9% durability
99.8% – 99.9% durability
Use Cases
I/O-intensive NoSQL and relational databases
I/O-intensive NoSQL and relational databases
Boot volumes, low-latency interactive apps, dev and test
Big data, data warehouses, log processing
Colder data requiring fewer scans per day
API Name
io2
io1
gp2
st1
sc1
Volume Size
4 GB – 16 TB
4 GB – 16 TB
1 GB – 16 TB
500 GB – 16 TB
500 GB – 16 TB
Max IOPS/Volume
64,000
64,000
16,000
500
250
Max Throughput/Volume
1,000 MB/s
1,000 MB/s
250 MB/s
500 MB/s
250 MB/s
Max IOPS/Instance
160,000
160,000
160,000
160,000
160,000
Max Throughput/Instance
4,750 MB/s
4,750 MB/s
4,750 MB/s
4,750 MB/s
4,750 MB/s
Price
$0.125/GB-month $0.065/provisioned IOPS
$0.125/GB-month $0.065/provisioned IOPS
$0.10/GB-month
$0.045/GB-month
$0.025/GB-month
Dominant Performance Attribute
IOPS and volume durability
IOPS
IOPS
MB/s
MB/s

How EBS pricing works

See the following table for a thorough breakdown of pricing for different EBS products.

Pricing Option
Description
AWS EBS Type
Pricing
Free Tier
AWS Free Tier includes 30GB of Storage, 2 million I/Os, and 1GB of snapshot storage with Amazon Elastic Block Store (EBS)
For Certain volume types
Free
Pay only for what you use.
General Purpose SSD (gp2) Volumes
$0.10 per GB-month of provisioned storage
Pay only for what you use.
Provisioned IOPS SSD (io2) Volumes
$0.125 per GB-month of provisioned storage AND $0.065 per provisioned IOPS-month
Pay only for what you use.
Provisioned IOPS SSD (io1) Volumes
$0.125 per GB-month of provisioned storage AND $0.065 per provisioned IOPS-month
Pay only for what you use.
Throughput Optimized HDD (st1) Volumes
$0.045 per GB-month of provisioned storage
Pay only for what you use.
Cold HDD (sc1) Volumes
$0.025 per GB-month of provisioned storage
Amazon EBS Snapshots are a point in time copy of your block data. EBS Snapshots are stored incrementally, which means you are billed only for the changed blocks stored.
EBS Snapshots
$0.05 per GB-month of data stored
Fast Snapshot Restore (FSR) allows you to promptly restore volumes. FSR is charged in Data Services Unit-Hours (DSU-Hours) until you disable FSR on the snapshot.
Fast Snapshot Restore
$0.75 per 1 DSU hour on each snapshot and in each Availability Zone it is enabled
APIs to list and compare snapshots
ListChangedBlocks and ListSnapshotBlocks
$0.0006 per thousand requests
APIs to read snapshot blocks
GetSnapshotBlock
$0.003 per thousand SnapshotAPIUnits
APIs to write snapshot blocks
PutSnapshotBlock
$0.006 per thousand SnapshotAPIUnits

 

How to lower your EBS cost

 1. Find detached EBS Volumes in terminated EC2 instances

When EC2 instances are terminated, attached EBS volumes are not automatically deleted and will continue to charge since they are still operating. Check for volumes that have the AWS attribute named “state” set to the value “available”, which are not attached to an EC2 instance. Also look at network throughput and IOPS to see whether there was any volume activity over the past few weeks. After you detach a volume, you are still charged for volume storage if the storage amount exceeds Amazon’s Free Tier limit. You must delete a volume to avoid incurring further charges.

Note: You can set your EC2 to automatically delete the EBS root device volume upon EC2 instance termination. Simply set ‘DeleteOn Termination’ attribute for additional non-root EBS volumes to ‘true’. So, constantly check and delete any unwanted EBS volumes.

2. Find EBS volumes attached to EC2 instances stopped for too long

Amazon EC2 instances charge only while they’re running, but EBS volumes attached to instances continue to retain information and charge, even when the instance is stopped. If the EC2 instances are stopped for too long (could be hours/days/months), to lower your AWS charges, it is recommended to create an EBS snapshot and delete the volume, or move your important files to an S3 bucket and delete the volume. Amazon EBS snapshots are billed at a lower rate than active EBS volumes. 

3. Find underutilized EBS Volumes

Identify volumes that are underutilized (either unused storage space or IOPS), and downsize them, or change the volume type. You can monitor the read-write access of EBS volumes to determine if throughput is low. If you have a current-generation EBS volume attached to a current-generation EC2 instance type, you can use the elastic volumes feature to change the size or volume type, or (for an SSD io1 volume) adjust IOPS performance without detaching the volume.

4. Use RAID configuration to get higher IOPS

Redundant Array of Independent Disks (RAID) uses mirrored volumes to either increase performance through workload distribution or prevent single points of failure. RAID 0 or RAID 1 are recommended. RAID 0 is used to boost performance and distribute workloads when you are unable to gain additional performance by changing volume types. RAID 1 provides data redundancy.

You can reduce costs by combining multiple EBS volumes together to form a single logical volume, which is known as striping (or RAID 0). For example, assume you stripe four 120 GiB gp2 volumes together for a bursty workload in replacement of one 480 GiB io2 IOPS volume. Compare the following monthly bills:

  • 4 gp2 EBS volumes: 4*($0.1*120 GiB) = $48; achieves IOPS of 4*1920 (16 KiB I/O)
  • 1 io2 IOPS volume: $0.125*480 GiB + 3,840*$0.065 =  $309.6; achieves IOPS of 2*1920 (16 KiB I/O)

5. Take EBS Snapshots & Fast Snapshots Restore

EBS snapshots are typically used to create incremental backups for EBS volumes and EC2 instances. You can use EBS snapshots as part of your disaster recovery strategy and for reducing storage costs. Amazon EBS Fast Snapshot Restore enables you to create a volume from a snapshot that is fully initialized at creation. This eliminates the latency of I/O operations on a block when it is accessed for the first time. Volumes that are created using fast snapshot restore instantly deliver all their provisioned performance.

6. Remove old Snapshots that are no longer needed 

Outdated Backups which have no value might still be kept in EBS snapshots. Often, recovery procedures only need the most recent snapshot for successful restoration. Although individual snapshots are not costly, the costs can add up when many are provisioned. Administrators should set up automated deletions for retained snapshots past a certain age.

7. Use Data Lifecycle Manager to manage your snapshots

You can use Amazon Data Life Cycle Manager (Amazon DLM) lifecycle policies to automate several functions for Amazon EBS snapshots. Amazon DLM eliminates the need for complicated tools and custom scripts to manage EBS snapshots. Amazon DLM enables you to manage EBS snapshots in a simple, automated way using resource tags for EBS volumes or EC2 instances. Since the operational complexity of managing EBS snapshots is reduced by Amazon DLM alone, you save money by saving your team time. Amazon DLM is free and available in all AWS Regions.

8. Moving less utilized data to lower storage tiers

Reduce the cost of less utilized data by moving to a lower grade storage like S3 or Glacier, rather than using costly EBS volumes. Since S3 pricing is a lot cheaper than the EBS or Snapshot pricing, AWS recommends using them for less utilized data.

S3 Tier

Description
Usage Category
Storage Pricing
S3 Standard
General-purpose storage for any type of data, typically frequently accessed
First 50 TB / Month
$0.023 per GB
S3 Standard
General-purpose storage for any type of data, typically frequently accessed
Next 450 TB / Month
$0.022 per GB
S3 Standard
General-purpose storage for any type of data, typically frequently accessed
Over 500 TB / Month
$0.021 per GB
S3 Intelligent 
Automatic cost savings for data with irregular access patterns
Frequent Access Tier, First 50 TB / Month
$0.023 per GB
S3 Intelligent 
Automatic cost savings for data with irregular access patterns
Frequent Access Tier, Next 450 TB / Month
$0.022 per GB
S3 Intelligent 
Automatic cost savings for data with irregular access patterns
Frequent Access Tier, Over 500 TB / Month
$0.021 per GB
S3 Intelligent 
Automatic cost savings for data with irregular access patterns
Infrequent Access Tier, All Storage / Month
$0.0125 per GB
S3 Intelligent 
Automatic cost savings for data with irregular access patterns
Monitoring and Automation, All Storage / Month
$0.0025 per 1,000 objects
S3 Standard – Infrequent Access
For long-term but rarely accessed data that needs quick access
All Storage / Month
$0.0125 per GB
S3 One Zone – Infrequent Access
For recreatable, rarely accessed data that needs quick access
All Storage / Month
$0.01 per GB
S3 Glacier
For long-term backups and archives; retrievable within 12 hours
All Storage / Month
$0.004 per GB
S3 Glacier Deep Archive 
For long-term archives accessed once or twice per year; restorable within 12 hours
All Storage / Month

$0.00099 per GB

9. Select the right mix of EBS types 

AWS provides various types of EBS volumes allowing you to select the right volume to meet your budget and application performance. You should ensure that EC2 instances use General Purpose SSD (gp2) EBS volumes instead of Provisioned IOPS SSD (io1) volumes unless the supported application requires more than 10000 IOPS or 160 MiB/s of throughput per volume.

10. Select the right sizes of EBS volumes

EBS volumes should also be right-sized with appropriate capacity, IOPS, and throughput of the application. You should monitor the read-write access for all EBS volumes periodically. If the throughput is low, then downgrade the EBS blocks in question to reduce EBS costs.

11. Select the right size provisioned IOPS

If you’re using high-performance io1 EBS volumes, capacity isn’t the only dimension you’ll need to optimize. In addition, the amount of provisioned IOPS should be adjusted to match application requirements. This could be a bigger cost factor than capacity. Io1 is the most expensive EBS volume type because it provides the highest performance and it is configurable.

12. Select the right size RDS volumes

RDS databases often use over-provisioned EBS resources since databases are sensitive to latency. Just like volumes attached to EC2 instances, these may not be the right type or size and should be adjusted based on the performance requirements of the application.