It’s Simple
It’s simple, just go to the EBS Pricing page.
You’ll find some answers here but you might be left still wondering about a few things. It shows that Standard Snapshots are $0.05/GB/month in us-east-1 (we’ll discuss Archive Snapshots in a later post). It also states that “EBS Snapshots in the Standard tier are stored incrementally, which means you are billed only for the changed blocks stored.”
Great, so you’ll only be charged for incremental changes? Actually, not quite.
The Fine Print
Further down the pricing page, in the example section, you’ll find some more clarity. “Snapshot storage is based on the amount of space your data consumes in Amazon Simple Storage Service (Amazon S3). Because Amazon EBS does not save empty blocks, it is likely that the snapshot size will be considerably less than your volume size. For the first snapshot of a volume, Amazon EBS saves a full copy of your data to Amazon S3. For each incremental snapshot, only the changed part of your Amazon EBS volume is saved.”
Ok, so not just “changed blocks stored”, but also a “full copy”, but no “empty blocks”?
Determining Cost
It’s actually fairly simple once you break it down and understand the different pricing models for different AWS storage offerings.
Primary data is stored in EBS. EBS snapshots are stored in S3. EBS and S3 have different pricing models. With EBS, you pay for what you provision. With S3, you pay for what you use.
So what’s the full story?
- The statement “you are billed only for the changed blocks stored” isn’t entirely true. You will be billed for all used blocks because “for the first snapshot of a volume, Amazon EBS saves a full copy of your data to Amazon S3”.
- To determine the cost of your first full snapshot, use the capacity consumed on disk at the OS level, not the capacity provisioned in EBS.
- To determine the cost of your incremental snapshots, use the additional and changed capacity consumed on disk at the OS level since your first full or most recent incremental.
An Example
1 x 100GB EBS gp2 volume costs $.33/day
- The image above from Cost Explorer shows the EBS gp2 cost for a 100 GB volume for 1 day.
- The cost calculation is: GB provisioned / hours in a month * hours in a day * EBS gp2 cost.
- 100 / 730 * 24 * .1 = $.33
1 x 100GB EBS full snapshot costs $.11/day
- The image above from cost explorer shows the EBS full snapshot cost for a 100 GB volume for 1 day.
- Although 100GB has been provisioned, only 59GB was in use
Filesystem Size Used Avail Use% Mounted on
/dev/xvdf1 99G 59G 36G 63% /mnt1
- The cost calculation is: GB utilized / hours in a month * hours in a day * EBS Standard snapshot cost.
- 59 / 730 * 24 * .05 = $.10
- Cost Explorer is off by $.01 which means there’s an additional ~7% capacity utilized, likely ext4 overhead.
1 x 100GB EBS incremental snapshot costs $.02/day
- The image above from cost explorer shows the EBS incremental snapshot cost for a 100 GB volume for 1 day.
- Although 100GB has been provisioned, and 59GB was in use when the full snapshot was taken, an additional 10GB was added
Filesystem Size Used Avail Use% Mounted on
/dev/xvdf1 99G 69G 26G 73% /mnt1
- The cost calculation is: GB changed or added / hours in a month * hours in a day * EBS Standard snapshot cost.
- 10 / 730 * 24 * .05 = $.02
Need Help?
This was obviously a simple and easy-to-follow example but we also specialize in deep cost analysis, modeling, and optimization for AWS. We can also help with AWS Enterprise Discount Programs (EDP) and Private Pricing Agreements (PPA). If you’d like to learn more, please reach out to your p1 account team or contact us directly.