Amazon glacier冰川的收费模式

发表于2012 年 09 月 04 日 | 标签: , ,

Amazon glacier冰川服务,纸面上的收费,是超便宜的。实际上的收费,也是很便宜的。但其收费模式中,依然有值得注意的地方,要拿出来仔细分析。如果做一个简单的结论,我会告诉大家,Glacier冰川服务并不适合家庭用户的使用,而比较适合数字媒体企业、有大量平时不使用但未来也许有价值且必须保留数据的金融机构和信息服务机构、以及有大量存档需求的政务服务系统。Glacier在发布之初便宣称,它的这种数据服务,是为不怎么常用的归档数据而提供的存储服务而设计,因此才顾名思义作冰川纪服务,意即封存的数据云云。下文将以案例介绍亚马逊Glacier冰川服务的收费详情。

Glacier 的收费模式,和大部分的AWS服务一样,分开了上传数据量、下载数据量、操作、存储等各种计算量的单价进行收费

以收费最便宜的美国东海岸为例:

存储: $0.01 / per GB 每月
上传/取回请求: $0.05 / per 1000个请求
DELETE请求: 数据存储3个月后再删除,免费;
数据在上传后的3个月内被删除,将按比例收费

  • 上传后一个月内就删除,$0.03/per GB;
  • 一个月后删除,$0.02/per GB
  • 两个月后删除,$0.01/per GB
LISTVAULTS/
GETJOBOUTPUT
以及其他的请求:
免费
数据取回费用: 这部分是最让人晕的。Glacier的服务前文已经介绍过,是为了不常用的归档数据而设计,原则上这些数据不会被经常访问。而且,结合glacier系统宣称的“提出取回数据请求后,需要3~5小时系统处理后,数据才能开始下载”,我们有理由认为,Glacier服务的背后,是由磁带机器在工作的,因此调度才如此的缓慢。而这部分的数据取回收费,也进一步显示了它的这些特质:

  • 按月进行最终统计
  • 每月总取回数据如果在月平均存储量的5%以下,免费。
  • 但是5%需要按平均进行计算,因此,如果每日的取回量大于0.17%(5% / 30)的存储量,则会激活收费模式。超出的部分的算法很复杂,简单来说将会按取回数据时的每小时数据量差进行单价计费,”数据量差”收费 $0.01/per GB,但是要乘上720小时(24*30)。
数据上传: 免费
数据下载: 每月的首个1GB数据,免费;
每月10TB以内的数据,$0.12 per GB;
接下来的40TB数据, $0.09 per GB;
接下来的100TB,$0.07 per GB;
接下来的350TB,$0.05 per GB。

 

下面我们再以案例进行说明:

假设我在今年8月1日往Glacier冰川服务上扔了几百个归档的压缩文件,这些数据是企业内集群中不同应用服务的日志运行记录,因为服务量很大,压缩后仍有1TB的数据。一个月后,假设9月10日,我删除了100G由于某系统下线不再需要的glacier数据,接着又继续扔了几百个新的archive文件,这次共上传1.1TB。现在Glacier上共有2TB的数据。2013年的春节前(1月),公司进行年末系统检查,需要把其中的5GB数据下载回来做检测使用。这个case里,涉及的收费情况是怎样的呢?我们一个一个来看。

1. 上传。8月份上传的1TB和9月份上传的1.1TB数据,免费;上传时要发起upload请求,这个case里每月的请求次数没有超过额定的1000个,因此费用分别是$0.05。

2. 删除。9月10日上传前,曾经删除了100GB数据。这批被删除的数据在glacier服务下存储的时间大于1个月而小于2个月,因此要按照 $0.02/GB进行收费,一共是 $2元(100 * 0.02)。如果这些数据放到11月份才删除,那么届时删除就是免费的。不过这100GB因此也多放了2个月,还是得收$2元的费用,只不过是转到了存储费用的头上而已。

3. 回取。2013年1月份我们要回取数据,当进行下载操作前,我得向glacier系统发出回取数据请求。glacier收到请求后进行处理,在大约4小时后数据才准备好。接下来系统会通过你设定的SNS方式来提醒你,提醒的方式可以是你集成了AWS API的任意客户端,或者是你设定的email。准备好的数据会在Glacier服务中存放24小时,24小时内你可以使用任意方式(api/http)来下载数据。这里,涉及的数据回取费用有以下几种算法:

一次请求取回5G数据

案例中,在回取数据时库中一共有2TB的数据,假设我们想一次性取回5GB的数据。此case中,算出来每天可免费回取的数据量只有3.41GB,那我们肯定要为多出的数据量付额外费用的了。如果当天我们没有其他的数据要再下载,那最终的账单将大概是这样的:

每小时回取数据量 = 5GB / 4Hr = 1.20GB

每日的免费回取数据量 = 2TB * 0.05 /30 = 3.41GB

每小时可以免费回取的数据量 = 3.41 /4 = 0.853GB

因此要付费的峰值数据差是 = 1.20GB – 0.853GB = 0.347GB

回取数据总共要付的费用是: 0.347GB * 720Hr * $0.01 = $2.49

5G数据分开两天取回

每天要回取的数据是5G / 2 = 2.5G,低于每天可免费回取的数据量3.41GB,因此这种方案下,我们不需要为回取数据付额外费用。

5G数据在一天内分多次请求取回

在这个case下,我们要回取的数据是5GB,大于3.41GB的每天免费回取量,所以肯定得付额外费用。不过我们可以让这个回取过程尽量平顺,而不是在某个时间内制造出峰值差,因为计算回取数据费用时要参考的参数,正是每月中最大峰值差。考虑了这个因素后,我们经过设计,让这个回取过程平分在20小时内,因此账单看起来如下:

每小时回取数据量 = 5GB / 20Hr = 0,25GB

每日的免费回取数据量 = 2TB * 0.05 /30 = 3.41GB

每小时可以免费回取的数据量 = 3.41 /20Hr = 0.171GB

因此要付费的峰值数据差是 = 0.25GB – 0.171GB = 0.079GB

回取数据总共要付的费用是: 0.079GB * 720Hr * $0.01 = $0.572

4. 下载。方案中,数据准备好后,我们要下载5G数据。头1GB免费,后面4GB共 $0.48 ( $0.12 * 4GB)。

5. 存储。8月份时,我们的存储量是1TB,因此8月份的存储费用是 0.01 * 1000 = $10。 9月份后,存储量是2TB,因此往后的存储费用是$20 / per month。

总结

在这个企业日志存档案例里,我们的操作基本只有上传,很少进行回取和其他操作。2TB数据在4、5个月的总消费为 $90 多元。合人民币¥590多元。应用amazon aws glacier服务,要注意几点:

  • 要使用glacier服务的数据必须是不常用的,甚至应该是基本不使用的“有价值数据”。
  • 数据文件不要太大,否则影响数据回取时的分割;
  • 分割文件的同时注意也别太零散,否则要发出很多的RETRIEVAL请求,而请求是收费的;
  • 合理规划存储和回取比例,不要超过每天的免费峰值,否则这可是一个陷阱。
  • 回取数据需要等待约4小时,设置一个aws SNS通知是个好的建议。

 

 

发表评论

*

  

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif