AWS S3存储类型费用解析

AWS S3 是AWS最早发布的服务,已稳定运营多年,提供的功能也越来越多,费用也变得越来越复杂,本文主要针对不同的Storage Class来进行说明,从不同的角度观察在不同Storage Class带来的成本收益。(本文文中出现的价格按照美国西部(加利福尼亚北部)为参考)


AWS S3现在有多种存储类型,让人非常之眼花缭乱,主要分为以下几种:

• S3 标准

• S3 智能分层

• S3 标准 - IA

• S3 单区 - IA

• S3 Glacier

• S3 Glacier 深度存档

01、存储类型简述

除了“S3 标准”外,所有其他的类型都属于低频存储,故名思议,就是不经常访问的数据,那么这个不经常访问,要多不经常呢,aws对低频通常要求至少存储30天,这里我建议如果不是存储半年都不会被访问,那么就不要用低频存储了,老老实实用标准即可,至于原因,可以参看费用陷阱来看。


使用低频存储可以大大降低存储费用,适用于长期不被访问到的数据。


当使用低频访问存储时,对用户来讲,仅仅是对象的StorageClass属性发生变化,通过S3 API的list-objects/list-objects-v2,还是可以显示出来你的对象,并按照定价文档中的请求付费进行收费。


当一个web请求命中了低频访问存储,这个时候会先转换成“S3标准”,然后对外提供服务,通常“S3标准”->“S3 低频”的生命周期是免费的,但是反过来则收费。


也就是低频存储适合真真正正的冷数据,当你不能分辨的时候,使用标准存储。


02、费用计算陷阱

AWS著名的安全原则是“deny by default”,那么其实在费用方面,我认为是"cost by default"。


我们来看个栗子:


假设我现在想使用智能分层存储来优化我的成本,是不是很美好呢?


INTELLIGENT_TIERING 存储类将对象存储在两个访问层中:一个是针对频繁访问进行了优化的层,另一个是针对不频繁访问的数据进行了优化的更低成本的层。对于每个对象的小额月度监控和自动化费用,Amazon S3 监控 INTELLIGENT_TIERING 存储类中对象的访问模式,然后将连续 30 天未访问的对象移至不频繁访问层。


使用 INTELLIGENT_TIERING 存储类时没有检索费用。如果不频繁访问层中的对象被访问,则对象将自动移回频繁访问层。在 INTELLIGENT_TIERING 存储类中的访问层之间移动对象时,不会产生额外的分层费用。


看起来很省钱对吧,其实不然,首先,连续30天未访问的对象移至不频繁访问层,这个根据S3 定价文档 ,看起来是免费的。当你想访问不频繁访问层时候,问题就来了,S3会首先将其转换到频繁访问层,也就是这个按照文档收取每1000个对象生命周期转换0.01美元,同时按照 存储上面定义,所有的容量,要收取0.0025 USD/1,000 个对象。


也就是说,当我有1万个对象的时候,我需要支付0.0025*10,000/1,000=0.025USD+每个月从标准层转换到低频访问层的对象数量*0.01/1,000,才是我真正的费用。


03、总结

AWS S3所有除标准外的存储,当对外提供服务时,或者是需要被访问到的时候,他们是首先被转换成S3标准,然后对外服务,转换过程不免费。


分享到:


相關文章: