If you are interested in making point-in-time backups for your EBS volumes and RDS databases, you need to make sure you understand AWS snapshot pricing so there are no surprises on your bill.
Overview of AWS Snapshots
First, let’s take a look at what AWS snapshots actually are. When you take these point in time backups, you can snapshot data from Amazon EBS Volumes and Amazon RDS Databases. These will be available as incremental backups, which allow you to restore data from the moment the snapshot was taken.
EBS Volumes and Snapshots
Amazon Elastic Block Store (EBS) is a high-performance block storage service that is designed to use with Amazon EC2 for throughput and transaction-intensive workloads at any scale. Workloads such as relational and non-relational databases, containerized applications, enterprise applications, big data analytics engines, media workflows and file systems are widely deployed on Amazon EBS.
Amazon offers 4 different options of EBS volume types for you to select from:
- Provisioned IOPS SSD (io1)
- General Purpose SSD (gp2)
- Throughput Optimized HDD (st1)
- Cold HDD (sc1)
These volume types differ in performance characteristics and price, allowing you to tailor your storage performance and cost to the needs of your applications.
You can change volume types, tune performance, or increase volume size without disrupting your critical applications, so you have cost-effective storage when you need it.
As discussed, you can back up these volumes to Amazon S3, allowing you to save the blocks on the device that have changed since your most recent backup – and deletion will only delete the data unique to the snapshot.
You can also use EBS Snapshots with automated lifecycle policies to back up your volumes, while ensuring geographic protection of your data and business continuity.
RDS and RDS Snapshots
Meanwhile, Amazon Relational Database Service (Amazon RDS), a separate service from EC2, offers several database instance types, including Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, and SQL Server.
Amazon RDS automatically creates backups of your DB instance, and creates a storage volume snapshot of your DB instance, backing up the entire DB instance and not just individual databases. While these are created automatically, you also have the option to back up your DB instance manually. Like EBS, RDS snapshots are incremental, and only the data has changed since after your most recent snapshot is saved.
How is AWS Snapshot Pricing Calculated?
EBS Snapshot Pricing
EBS snapshot costs are calculated by the gigabyte/month – you are billed for how long you keep the snapshot and how large it is.
As with all AWS services, pricing will vary a bit by region. As of this writing, the prices for US East (N. Virginia) for EBS volumes are as follows:
|Provisioned IOPS SSD (io1)||$0.125 per GB/month of provisioned storage AND $0.065 per provisioned IOPS-month|
|General Purpose SSD (gp2)||$0.10 per GB/month of provisioned storage|
|Throughput Optimized HDD (st1)||$0.045 per GB/month of provisioned storage|
|Cold HDD (sc1)||$0.025 per GB/month of provisioned storage|
EBS Snapshot pricing:
|EBS Snapshot||$0.05 per GB/month of data stored|
There’s also the option of an EBS Fast Snapshot Restore – they are billed per minute with a 1-hour minimum. The fast snapshot restore allows you to create a volume from a snapshot that is fully initialized when created.
|Fast Snapshot Restore||$0.75 per 1 DSU hour in each AZ it is enabled|
Amazon EBS direct APIs for Snapshots. These APIs provide read access to EBS snapshots, giving backup providers an easy way to track incremental changes on EBS volumes via EBS snapshots and streamline their workflows to reduce backup times. Here’s what pricing for these APIs looks like:
|ListChangedBlocks and ListSnapshotBlocks||$0.0006 per thousand requests|
|GetSnapshotBlock||$0.003 per thousand SnapshotAPIUnits|
EBS Snapshots Free Tier
If you’re using the AWS Free Tier, you will get 1 GB of free snapshot storage with EBS, as well as 30 GB storage and 2 million I/Os.
RDS Snapshot Pricing
RDS backup storage costs are made up of the following, for both automated database backups and DB cluster snapshots.
- Backup Storage
- Allocated by region
- For Amazon Aurora, as of this writing for US East (N. Virginia) backup storage costs $0.021 per GB-month. There is no additional charge for backup storage of up to 100% of your total Aurora database storage for each Aurora DB cluster, and no additional charge if your backup retention period is 1 day and you don’t have any snapshots beyond the retention period.
- For the other RDS options (Amazon RDS for MySQL, Amazon RDS for PostgreSQL, Amazon RDS for MariaDB, Amazon RDS for Oracle, and Amazon RDS for SQL Server):
- As there is no additional charge for backup storage, up to 100% of total database storage for a region, and most databases require less raw storage for a backup than for the primary dataset, most customers will never pay for backup storage.
- If you do go over 100% of the database storage, you will pay $0.095 per GiB-month.
- After the DB instance is terminated, backup storage is billed at $0.095 per GiB-month – herein lies the cost of orphaned snapshots. More on this below.
- Backtrack – available for Amazon Aurora. This allows you to move an Aurora database to a prior point in time without needing to restore data from a backup, useful for recovering from user errors. You pay an hourly rate for storing logs called Change Records, currently priced at $0.012 per 1 million change records.
- Snapshot Export – to export data to Amazon S3 in Parquet format, you will pay per GB of snapshot size, currently at $0.010 for US East (N. Virginia)
- There are also costs for data transferred out of RDS. Depending on destination, the costs range from $0.00-$0.09 per GB.
RDS Snapshots Free Tier
Note that on the AWS free tier, you will get 20 GB of backup storage for your automated database backups and DB Snapshots.
The Issue: Wasted Spend on Orphaned Snapshots
Wasted cloud spend is projected to hit $21,000,000,000 by 2021. That’s $21 billion dollars a year – or put another way, almost $2,400,000 an hour – that companies could be putting toward their own growth and development, instead of wasting it on orphaned volumes or old snapshots.
Where do these come from? When you shut down or terminate an instance or VM, you’re left with orphaned volumes and snapshots of those, or other, volumes that are unattached to servers – causing you to incur monthly $/GB charges.
For example, while EC2 instances only accrue charges while they’re running, EBS volumes attached to those instances retain information and continue charging you even after an instance has been stopped. This happens because even though you didn’t leave your instances running, you’re still getting charged for EBS storage in GB per month for the amount provisioned to your account.
There’s no need for this amount of waste, that’s why it’s important to implement an automated cost management tool into your business practices. This will allow employees to focus on their primary job tasks instead of worrying about other tedious, time-consuming tasks.
The Solution: Automated Snapshot Management
How can you cut waste from these orphaned volumes? To save data without paying for monthly storage volume, you can take a snapshot of the volume as a backup and delete the original volume. While you’ll still be charged for EBS snapshots, they’re billed at a lower rate and you still have the option to restore the volume from the snapshot if you need it later.
It’s important to note that the initial snapshot is of the entire volume, and depending on how frequently you take incremental snapshots, your total could end up taking as much space as the first snapshot.
Now to fix the next problem of unused cloud resources – old snapshots – these are old EBS volumes on AWS. Deleting/cleaning these up will help save on storage costs. There are a number of free and paid-for tools to help support this process.
Don’t forget to also delete old machine images. A Machine Image provides the information required to launch an instance, which is a virtual server in the cloud – in AWS these are called AMIs. When you no longer need these images, you can deregister them.
However, depending on your configuration you are likely to continue to incur costs, as typically the snapshot that was created when the image was first created will continue to incur storage costs. Therefore, if you are finished with an AMI, be sure to ensure that you also delete its accompanying snapshot.
The Best Way to Automate Snapshot Management
In order to save time from manual efforts, and to optimize costs, you’ll want to automate snapshot management.
ParkMyCloud’s cloud cost optimization platform can help.
With it, you can discover:
- Orphaned volumes that have been unattached for a designated length of time, so you can delete them
- Orphaned snapshots that are also eligible for deletion
- Old snapshots that are ready to be deleted, because you have more recent and relevant snapshots.
Additionally, you’ll be able to optimize your cloud costs in other prominent ways:
- Solve instance sizing discrepancies, so you only pay for the capacity you actually need
- Automatically schedule idle resources to turn off when not needed
… All based on your actual cloud usage, saving you 65% or more on cloud spend.
Try it out today with a 14-day free trial. You can try ParkMyCloud for free in your own environment.
Snapshot and volume management coming soon. Interested in these features? Let us know.