This week, Amazon announced a new addition to their AWS web service Amazon Glacier, which offers "extremely low cost archive storage" and easy setup for anyone already familiar with AWS. Though the pricing model seems convoluted, the continued expansion of Amazon's cloud computing services is good news for developers.
[caption id="" align="aligncenter" width="480" caption="diagram from All Things Distributed"][/caption]
First, the bad news: because it's designed as "cold storage," Glacier expects users to store much more data than they retrieve--on the order of "Terabytes, Petabytes, and beyond." As described on the AWS Blog, there is no setup fee for Glacier, and storage pricing starts at one cent ($0.01) per gigabyte (GB) per month. Simple enough, right? And "[y]ou can retrieve up to 5% of your average monthly storage, pro-rated daily, for free each month." But the pro-rating means that you can only actually retrieve 0.17% of your data on any given day of that month. And things get more complicated if you exceed that 5% threshold.
An analysis by Klint Finley on the Wired Enterprise blog pointed out that Amazon's Glacier FAQ says they will "calculate your fee based upon the peak hourly usage from the days in which you exceeded your allowance," but doesn't specify how Amazon calculates "peak hourly usage." An addendum to Finley's analysis quoted "an Amazon spokesperson" as saying: "For a single request the billable peak rate is the size of the archive, divided by four hours, minus the pro-rated 5% free tier." Developers should do their homework to avoid paying for more retrieval requests than necessary.
Now some good news: on his All Things Distributed blog, Amazon CTO Werner Vogels says that "Amazon S3 will [soon] introduce an option that will allow customers to seamlessly move data between Amazon S3 and Amazon Glacier based on data lifecycle policies." It's nice to see that Amazon is keeping their "storage solutions that can serve almost all scenarios" integrated under the AWS umbrella with compatible SDKs.
For more detailed technical information, see the API Reference for Amazon Glacier.