evannuil/aws-snapshot-tool

EBS Snapshot Archive Support to Reduce AWS Costs

KZeni opened this issue · 0 comments

KZeni commented

Per https://aws.amazon.com/blogs/aws/new-amazon-ebs-snapshots-archive/, AWS introduced an "archive" status for snapshots in November of last year (also see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshot-archive.html for more details).

https://aws.amazon.com/ebs/pricing/ then shows the following:

  • Standard Snapshot
    • $0.05/GB-month
    • $0 per GB of data retrieved
  • Archived Snapshot
    • $0.0125/GB-month
    • $0.03 per GB of data retrieved

Having this tool offer an option to make it so snapshots are given the "archive" status could make things cost 1/4th as much as it otherwise would for situations where these snapshots are made as a precautionary measure while actually restoring from a snapshot is rare (or otherwise is infrequent enough where the archive restore cost is still cheaper than the higher ongoing cost it would otherwise incur.)

Example Scenarios

For example, one might have something like 16.76TB worth of rolling EBS snapshots for server backups via this tool. However, the need to restore from one of these snapshots is really rare. That's $838/mo when left as normal snapshots while it could otherwise be $209.50/mo with them being archived. To do a full restore of absolutely everything is then $502.80 on-demand per the restoring from archive cost which is still less than the standard snapshot cost would be for the month ($712.30 for the mo cost + on-demand restore cost). However, these are rolling backups so that's actually spread across 48 snapshots where only one of them would need to be restored so the restore cost is likely somewhere around $10.48 (then $219.98 for mo cost + restore cost) which is then muuuch less than the standard monthly pricing (potentially saving around $618.02 to $125.70 per month [or even $628.50/mo if no snapshots needed to be restored that month.])

For an additional example, even when there's less data in snapshots like 3.132TB... that's $156.60/mo for standard snapshots that could otherwise be $38.84/mo with archived snapshots that would then cost $93.96 to restore everything (while just restoring 1 of 48 snapshots would be $1.96.) That's a potential savings of $117.76 (no snapshots needed to be restored during that period) to $23.80 (if every snapshot was restored once during that period) per month.

Recap

It just rarely, if ever, crosses that threshold in these use cases where the cost of constantly restoring from backups would make it so standard snapshots would be more cost-effective than archived snapshots.

I'm kinda surprised this hasn't been brought up sooner since it's just not as cost-effective as it could be (potentially leaving hundreds of dollars per month on the table) considering the new (as of late last year, anyway) for many rolling backup scenarios where restoring is often infrequent (or even none at all for months at a time.)

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-snapshot-archiving.html does appear to outline how one could go about having snapshots be converted to archive once they're created which I'm hopeful this can utilize.

Otherwise, I'm definitely curious what alternatives other people use/recommend for creating rolling snapshots like this does that then supports archived snapshots.