使用OSS时,您可以根据业务数据的变化合理规划存储类型、利用预付费与后付费策略等方式有效降低使用成本。
注意事项
确认Bucket容量增长是否符合预期
通过Bucket存储数据时,将根据数据的存储容量以及存储类型收取对应的存储费用。您可以通过定期查询账号级别的OSS用量情况,导出CSV用量明细表,查看当前账号下各个Bucket对应的存储容量数据,以此判断存储容量增长是否符合预期。具体步骤,请参见查询账号级别的用量情况。
如果存储容量增长异常,可以考虑采用修改ACL为私有权限、配置Bucket Policy等方式,避免其他用户以未授权的方式对OSS资源进行各类操作,例如上传大量不符合预期的Object引起存储容量突增、恶意访问Object引起大额的外网流出流量费用等。更多信息,请参见降低因账号密码泄露带来的未授权访问风险。
通过转换存储类型降低存储成本
转换存储类型前
用户A在OSS某个Bucket内以标准存储-本地冗余类型存储了100 TB的数据。当访问不同比例的数据时,该用户的每月成本说明如下:
存储类型 | 数据总量 | 存储费用(0.12 元/GB/月) | 数据访问比例 | 外网流出流量费用(08:00 - 24:00(忙时)(0.50 元/GB) | 数据取回容量费用 | 总费用 |
标准存储-本地冗余 | 100 TB | 12,288 | 10% | 5,120 | 0 | 17,408 |
50% | 25,600 | 0 | 37,888 | |||
100% | 51,200 | 0 | 63,488 |
假设以上案例中Bucket内的数据平均每月的访问频率为1到2次,且要求数据可以实时访问。基于以上分析,考虑将存储类型由标准转为低频访问。
转换存储类型后
从下表可以看出:
如果每月访问10%的数据,使用低频访问存储相比标准存储可以节省约22%的费用。
如果每月访问50%的数据,使用低频访问存储相比标准存储可以节省约6%的费用。
如果每月访问100%的数据,使用低频访问存储相比标准存储节省约1%的费用
存储类型 | 数据总量 | 存储费用(0.08 元/GB/月) | 数据访问比例 | 外网流出流量费用(08:00 - 24:00(忙时))(0.50 元/GB) | 数据取回容量费用(0.0325 元/GB) | 总费用 |
低频访问-本地冗余 | 100 TB | 8,192 | 10% | 5,120 | 332 | 13,644 |
50% | 25,600 | 1,664 | 35,456 | |||
100% | 51,200 | 3,328 | 62,720 |
建议动作
参考以下生命周期规则配置,实现Bucket内的所有数据在距离其最后一次访问时间30天后,存储类型由标准转换为低频访问。具体步骤,请参见基于最后一次访问时间的生命周期规则。
假设该Bucket内存储了1,000万个文件,通过生命周期从标准转为低频访问类型时,产生的Put类请求费用为10,000,000次×0.01元/万次÷10000=10元。
通过资源包的方式降低使用成本
购买资源包前
请参考以上案例,获取未购买资源包前的使用成本。
购买资源包后
结合以上案例,可以考虑购买低频-本地冗余存储包以及下行流量包抵扣相关计费项,不支持通过资源包抵扣的计费项使用按量付费的方式。
通过低频-本地冗余存储包抵扣低频访问-本地冗余容量费用
您可以通过购买规格为100 TB,购买时长为1个月的低频-本地冗余存储包用于抵扣低频访问-本地冗余存储容量费用。
通过下行流量包抵扣外网流出流量费用
根据数据访问比例对应购买10 TB、50 TB以及100 TB的下行流量包,用于抵扣通过外网访问不同比例数据产生的外网流出流量费用。
低频访问-本地冗余数据取回容量仅支持按量付费,不支持通过资源包抵扣。
结合使用资源包后,费用汇总如下:
存储类型 | 数据总量 | 低频 - 本地冗余存储包费用 | 数据访问比例 | 下行流量包费用 | 数据取回容量费用 | 总费用 |
低频访问-本地冗余 | 100 TB | 7,370 | 10% | 4,874 | 332 | 12,576 |
50% | 24,371 | 1,664 | 33,405 | |||
100% | 43,008 | 3,328 | 53,706 |
从上表对比可以看出:
如果每月访问10%的数据,使用资源包+按量付费的模式比仅使用按量付费可以节省约8%的费用。
如果每月访问50%的数据,使用资源包+按量付费的模式比仅使用按量付费可以节省约6%的费用。
如果每月访问100%的数据,使用资源包+按量付费的模式比仅使用按量付费可以节省约14%的费用。
建议动作
购买低频-本地冗余存储包以及下行流量包。具体操作,请参见资源包购买指南。
通过删除不再需要保留的文件降低存储成本
结合以上案例得知,Bucket内存储的1,000万个文件以低频访问类型存储一段时间后,根据业务使用场景可能有40%数量的文件不再需要保留。您可以遵照以下说明删除这部分文件。
确保要删除的文件以低频访问类型存储的时间要求至少30天,原因是不足30天的低频访问数据提前删除涉及不足规定时间存储容量费用。关于如何查看Object的LastModifiedTime,请参见ls(列举账号级别下的资源)。
删除40%的低频访问文件。
如果删除的文件有一定的规律,例如需要删除的文件均满足其LastModifiedTime在某个指定日期或指定天数之前,或者拥有相同前缀。建议配置生命周期规则实现自动批量删除。具体操作,请参见基于最后一次修改时间的生命周期规则。
如果要删除的文件其LastModifiedTime时间分散,并且没有相同前缀。建议逐一调用DeleteObject手动删除文件。具体操作,请参见删除文件。
结合以上案例得知,通过生命周期自动删除或者调用DeleteObject手动删除40%数量的低频访问类型Object时,按Object被删除时的存储类型(即低频访问类型)收取Put类请求费用。产生的Put类请求费用为10,000,000次×40%×0.1元/万次÷10000=40元。
重要Object删除后无法恢复,请谨慎操作。
删除后,不再产生费用。
清理历史版本Object
Bucket开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。当Bucket累积了大量的历史版本时,您可以结合生命周期规则删除不必要的历史版本,从而减少存储成本。配置示例如下:
通过以上配置示例,OSS将自动删除距离最后一次修改时间超过200天的历史版本Object。具体步骤,请参见基于最后一次修改时间的生命周期规则。
清理过期碎片
分片上传通过将待上传的大文件(超过5 GB)分成多个较小的碎片(Part),充分利用网络带宽和服务器资源并发上传多个Part,加快上传完成时间,并在Part上传完成之后调用CompleteMultipartUpload接口将这些Part组合成一个完整的Object。如果未调用CompleteMultipartUpload接口合并这些Part,这些Part将长期存储在Bucket中,占用存储容量,并产生存储费用。建议您配置生命周期规则,达到指定天数或者指定日期时自动删除碎片。配置示例如下:
通过以上配置示例,OSS将自动删除生成时间早于2天的碎片。具体步骤,请参见基于最后一次修改时间的生命周期规则。
降低Bucket拥有者的外网流出流量和数据取回容量费用
假设Bucket拥有者授权其他用户以外网的方式访问该Bucket中的数据,并且希望通过请求者,而不是Bucket拥有者支付外网流出流量以及读取低频访问类型数据的容量费用时,可以开启请求者付费模式。具体操作,请参见开启请求者付费模式。
下行流量包不支持抵扣开启请求者付费模式后,请求者通过互联网从OSS传输到客户端产生的外网流出流量费用。通过请求者付费产生的外网流量仅支持按量付费。