If you’re running any kind of AWS EC2 instance, you’ll know what AWS EBS is. You’ll also know that it maintains the tradition of AWS products’ financial elements being poorly conveyed by Amazon itself.
That’s why we’re here today. In this post we’re going to lay bare all of the basics of AWS EBS pricing, from what everything costs to facts that you need to remember to not get caught out with a surprise bill.
Stop flipping between multiple landing pages just to find out what all of the different optional EBS extras will end up costing you. It’s all here.
This post is split into the following sections, so feel free to skip to the relevant section or save this post to come back to later - this information isn’t going anywhere.
- What is AWS EBS?
- AWS EBS pricing
- Simplify and reduce your AWS bills today
Let’s get started.
What is AWS EBS?
Amazon Web Services Elastic Block Store (AWS EBS) is a block-storage device designed to be used with Amazon EC2 instances to store data beyond keeping it on the instances alone. This makes it perfect for any persistent data that you need to keep and retain access to whether or not the related EC2 instances are running, as native EC2 instance data is lost as soon as the instance is shut down.
In other words, it’s the main solution you have to actually store the data that you utilize and gain from your EC2 instances.
EBS itself is a cloud service that emulates block-level storage solutions such as physical hard drives in order to provide a storage solution without the need for purchasing the physical technology and space. This is one of the many reasons that AWS EBS is extremely scalable (in a very similar way to the EC2 instances whose data you’re storing).
AWS EBS volume types
There are seven volume types of EBS storage available:
- EBS General Purpose SSD (gp2)
- EBS General Purpose SSD (gp3)
- EBS Provisioned IOPS SSD (io1)
- EBS Provisioned IOPS SSD (io2)
- EBS Provisioned IOPS SSD (io2 Block Express)
- Throughput Optimized HDD (st1)
- Cold HDD (sc1)
EBS General Purpose SSD gp2 and gp3 are extremely similar in specs, the only differences being that gp3 offers up to 4x higher mas throughput/volume (at 1,000 MB/s) and 10,000 MB/s of max throughput/instance as opposed to gp2’s 7,500 MB/s. Gp2 is designed to be the true jack-of-all-trades for general-purpose SSD volume, balancing price and performance for workloads ranging from virtual desktops, medium-sized single instance databases, apps, boot volumes, and dev/test environments. Gp3 suits the same types of workloads, but is typically the cheapest SSD option which becomes more expensive if you require high IOPS amounts and/or high levels of throughput.
If you’re looking for storage for an I/O-intensive NoSQL or relational database, you’ll instead want to set up an EBS Provisioned IOPS SSD (io1) or (io2) block. All of the IOPS SSDs are the higher-performance options, with io1 and io2 specifically targeting latency-sensitive transactional workloads. Io2 has a slightly higher durability (99.999% as opposed to io1’s 99.8-99.9%) but a lower max IOPS-and-throughput/instance.
The final SSD offering is EBS Provisioned IOPS SSD (io2 Block Express). Once again, this is designed with high performance in mind with the same high durability as io2, but is targeted towards dealing with any latency-sensitive transactional workloads that are considered to be business critical. This is because io2 Block Express is the only SSD block storage option with a latency of less than a millisecond. In Amazon’s own words, it’s great for your:
“Largest, most I/O intensive, mission critical deployments of NoSQL and relational databases”
Moving onto the two HDD offerings, both are low-cost offerings. Throughput Optimized HDD (st1) are great for any frequently accessed, throughput-heavy workloads such as data warehouses, log processing, and big data. Cold HDD (sc1) blocks are better for less frequently accessed data, hence the name “cold” (as in colder data).
AWS EBS Snapshots
AWS EBS Snapshots is a feature that lets you take a snapshot of your EBS blocks to then get that data stored as a long-term backup on Amazon S3. These backups can then be restored if something goes wrong, data is lost, or a mistake is made and the changes need to be reverted.
All snapshots only record data that has been changed or added since the last snapshot, meaning that your backups are as small as possible. This makes it cheaper and easier to store more snapshots before hitting your storage limits, and makes it easier to restore a snapshot if something goes wrong (since you can roll back the changes to your data instead of having to re-import your entire dataset).
There is an option to store the entirety of your dataset by choosing to have a Snapshot Archive. This is generally a better option for data backups that need to be more thorough, but are also rarely accessed, as they have a cheaper base storage volume cost but do incur extra charges when restoring data from them.
AWS Data Lifecycle Manager
EBS Snapshots is particularly useful due to the options that you have for automating your backup setup with AWS Data Lifecycle Manager. With this you can set schedules for your snapshots to be automatically taken, stored, and even replaced with newer snapshots.
For example, you could set it to take a snapshot of your data once per day and have a limit of 7 snapshots so that you’re only recording the last week of data edits in your backups. Any new snapshot will automatically replace the one taken 7 days before (the oldest one you have), thus drastically reducing the amount of S3 storage you need to utilize for your backups.
AWS EBS pricing
Okay, let’s dive into the specifics of AWS EBS pricing. Thankfully, the pricing points here aren’t as nightmarishly variable as something like AWS WorkSpaces or the wealth of options available for EC2 instances, but there are still a couple of core details that you need to bear in mind when factoring them into your budget.
Please note that the following prices are based on the AWS Region of US East (Ohio).
The base AWS EBS pricing is split by the volume type of the EBS block that you’re using. This is as follows:
- EBS General Purpose SSD (gp2) - Volumes - $0.10 per GB-month of provisioned storage
- EBS General Purpose SSD (gp3) - Storage - $0.08/GB-month
- EBS General Purpose SSD (gp3) - IOPS - 3,000 IOPS free and $0.005/provisioned IOPS-month over 3,000
- EBS General Purpose SSD (gp3) - Throughput - 125 MB/s free and $0.040/provisioned MB/s-month over 125
- EBS Provisioned IOPS SSD (io1) - Volumes - $0.125 per GB-month of provisioned storage AND $0.065 per provisioned IOPS-month
- EBS Provisioned IOPS SSD (io2) - Storage - $0.125/GB-month
- EBS Provisioned IOPS SSD (io2) - IOPS - $0.065/provisioned IOPS-month up to 32,000 IOPS, $0.046/provisioned IOPS-month from 32,001 to 64,000 IOPS
- EBS Provisioned IOPS SSD (io2 Block Express) - IOPS - $0.065/provisioned IOPS-month up to 32,000 IOPS, $0.046/provisioned IOPS-month from 32,001 to 64,000 IOPS and $0.032/provisioned IOPS-month for greater than 64,000 IOPS
- Throughput Optimized HDD (st1) - $0.045 per GB-month of provisioned storage
- Cold HDD (sc1) - $0.015 per GB-month of provisioned storage
As you can see, gp3 and io2 blocks have multiple charges associated with them that all apply to any block of that type. However, you should also know that many /GB-month charges as billed by the second, with a 60-second minimum charge per month. This makes it a little more complicated than simply adding together your charges, as you need to work out So, if you wanted to run a gp3 block with 3,000 GB of data for 24 hours each month in total, you would have a base volume cost of:
((3,000 GB x $0.08 per GB month charge) x 86,400 seconds in 24 hours of provisioned usage)
(86,400 seconds/day x 30-day month)
That’s just the storage volume cost though remember, so you’ll also need to add your IOPS and throughput charges, assuming that they reach beyond the free limits of their respective plans.
There are also extra charges for both storing and restoring EBS Snapshots. As mentioned above, these will not charge you for the full scope of your data, but instead for the amount of data that has been edited or added since your last snapshot.
AWS EBS Snapshots pricing:
- Standard - $0.05/GB-month
- Archive - $0.0125/GB-month
AWS EBS Snapshots Restore pricing:
- Standard - Free
- Archive - $0.03 per GB of data retrieved
As you can see, it’s clear that Archive is worth considering if you are confident that you won’t need to restore data from them often, if at all, as the per-GB-per-month cost is much lower. However, bear in mind that snapshots in Archive are of your entire dataset, which can make their costs quickly rack up should you ever need to use them to restore your data.
You should also know that there is a 90-day storage minimum for any Snapshot Archives, which will be charged even if you restore your data within that time limit. For example, if you archive a snapshot and then restore the entire thing 15 days later, you’ll be charged the restoration cost per GB of data restored, and also for the remaining 55 days of mandatory storage. It’s not a common pitfall, but it’s worth knowing.
EBS Snapshots also comes with a recycle bin feature to prevent the loss of snapshots via accidental deletion. Any snapshots stored in or restored from the recycle bin are billed at the same rates as your regular snapshots.
Fast Snapshot Restore is an optional feature that can be enabled at will, and lets you quickly restore fully provisioned EBS volumes from your snapshots regardless of their size. This is billed per Data Services Unit-Hours (DSU-Hours) per snapshot and per Availability Zone that snapshot is enabled in, you are billed per minute, and there is a one-hour minimum charge.
Fast Snapshot Restore pricing:
- $0.75 per 1 DSU-Hour on each snapshot and in each AZ it is enabled
To cap things off, we’ve got the API-related costs for the Snapshot tool. These are as follows:
- ListChangedBlocks and ListSnapshotBlocks - $0.0006 per thousand requests
- GetSnapshotBlock - $0.003 per thousand SnapshotAPIUnits
- PutSnapshotBlock - $0.006 per thousand SnapshotAPIUnits
Simplify and reduce your AWS bills today
Congratulations, you know the basics of how to calculate and predict your bills according to the AWS EBS pricing plan! Now you can plan ahead for any scaling changes that need to be made to your storage, and how that will affect any upcoming budget decisions.
However, you could forego all of the heavy lifting.
We here at Aimably specialize in helping you understand and reduce your AWS bills, whether that’s for EBS, S3, EC2 instances, or any and all other AWS services! Instead of spending hours upon hours totaling up your bills or trying to understand the nightmare that is your AWS Cost and Usage Report, we take care of everything for you.
From consolidating your bills into one easy-to-understand dashboard to recommending the best ways to reduce your bill via a prioritized list that takes your business needs into account, we’ve got your back. Let us help you get the most out of your AWS account while keeping your bills as low as possible.