通过 S3 Intelligent-Tiering 优化存储成本 - 基于访问模式的自动分层

介绍根据访问模式自动迁移存储层的机制、与生命周期策略的选型对比,以及归档层的活用。

自动分层机制

S3 Intelligent-Tiering 自动监控对象的访问模式,并将对象移动到最具成本效益的访问层。自动启用的是 3 个层:从默认的频繁访问层开始,30 天未访问的对象迁移到低频访问层,90 天未访问的对象再迁移到归档即时访问层。这 3 个层均为低延迟、高吞吐量,可在毫秒级取回对象。此外,还可以选择启用归档访问层(最少 90 天未访问后迁移)和深度归档访问层(最少 180 天未访问后迁移)。这两个层分别以相当于 Glacier Flexible Retrieval 和 Glacier Deep Archive 的存储费率保存数据。低频访问层和归档即时访问层的对象在通过 GetObject 等请求访问时会自动返回频繁访问层,但可选启用的 2 个层以异步访问为前提,需要通过 RestoreObject 请求进行显式恢复。

与生命周期策略的选型对比

生命周期策略基于经过天数的固定规则迁移存储类,因此适合访问模式可以明确预测的数据。而 Intelligent-Tiering 根据实际的访问模式动态分层,因此最适合访问频率变动或难以预测的数据。Intelligent-Tiering 会按对象每月产生监控和自动分层费用,但小于 128 KB 的对象不收取该费用。不过,作为免收费用的代价,这些对象也不参与自动分层,始终保留在频繁访问层并按该层的费率计费,因此在小对象占大多数的存储桶中几乎得不到削减效果。在对象较大且访问模式不规则的工作负载中,成本效益最高。

归档层与监控

启用 S3 Intelligent-Tiering 可选的归档访问层和深度归档访问层后,长期未被访问的对象会自动迁移到相当于 Glacier 的存储。迁移前的未访问天数为:归档访问层最少 90 天,深度归档访问层最少 180 天,两者都可以延长设置到最长 730 天。如果以 90 天启用归档访问层,对象会绕过自动层中的归档即时访问层,直接迁移到归档访问层,因此这是放弃毫秒级访问以降低存储费用的选择。这 2 个层的对象无法仅通过 GET 取得,需要通过 RestoreObject 请求启动恢复的异步步骤。标准取回所需时间为:归档访问层 3~5 小时,深度归档访问层 12 小时以内。从 S3 Batch Operations 启动恢复时,恢复处理分别在数分钟以内和 9 小时以内开始。恢复请求在每 1 个账户的每 1 个区域中每秒最多可执行 1,000 个。需通过 CloudWatch 指标监控各层的对象数和存储量,定量评估分层的效果。需使用 S3 Storage Lens 在整个账户范围内可视化 Intelligent-Tiering 的应用状况。

Intelligent-Tiering 费用

(截至 2026 年 8 月,美国东部(弗吉尼亚北部)/ 亚太地区(东京))Intelligent-Tiering 的频繁访问层与 S3 Standard 费率相同,每 1 GB 月费 0.023 美元(弗吉尼亚北部,前 50 TB)/ 0.025 美元(东京)。低频访问层为 0.0125 美元 / 0.0138 美元,自动层中的归档即时访问层为 0.004 美元 / 0.005 美元,可选启用的归档访问层为 0.0036 美元 / 0.0045 美元,深度归档访问层为 0.00099 美元 / 0.002 美元(均为每 1 GB 月费)。层级每下降一级,单价也随之降低。此外还会产生监控和自动分层费用,每 1,000 个对象月费 0.0025 美元(两个区域相同)。小于 128 KB 的对象不收取该费用,但也不会被自动分层,始终保留在频繁访问层。在对象数量多、单个对象尺寸小的存储桶中,分层带来的削减难以发挥作用,因此需事先确认对象大小的分布。

适合与不适合的数据

Intelligent-Tiering 最能发挥效果的是访问频率难以预测的数据。对于无法预判使用模式、难以手动设计生命周期规则的数据,Intelligent-Tiering 会自动分配到最适合的层。另一方面,对于访问模式明确已知的数据,用固定的生命周期规则指定层更简单,也没有浪费。此外,存在大量小于 128 KB 的极小对象时,这些对象不产生监控费用,但也不参与自动分层,始终按频繁访问层的费率计费,因此需看清这些特性后再使用。重要的是根据数据的性质,判断自动化与手动设计哪一种更划算。

归档访问层的活用

Intelligent-Tiering 具有将长期未访问的数据自动移到面向归档的低成本层的功能。启用后,经常使用的数据保留在可即时访问的层,而长时间未被触及的数据会被移到便宜得多的层。但是,迁移到归档层的数据无法仅通过 GET 取得,需要经过 RestoreObject 恢复并等待数小时,因此不适合需要即时访问的数据。需结合以恢复为前提构建应用侧的工作量,根据能否容忍等待时间,判断是否启用归档层。需根据数据的用途,设计访问的即时性与存储成本之间的平衡。

导入与迁移

Intelligent-Tiering 可以按存储桶或前缀为单位应用,并指定为新保存对象的存储类。现有数据也可以通过生命周期规则迁移到 Intelligent-Tiering。导入后,需了解每个 128 KB 以上的对象的监控会产生少量费用。小于 128 KB 的对象不收取该费用,但也不会被分层,因此在几乎全是小文件的数据中难以产生效果,需看准作为对象的数据。从访问模式不明的大容量数据开始应用,一边确认效果一边扩大范围,是稳步推进导入的方式。

与其他优化方法的组合

Intelligent-Tiering 与其他成本优化方法组合使用,效果会进一步提升。在自动化访问层迁移的同时,需另行设置在一定期间后删除不再需要的数据的生命周期规则,加入停止保存本身的判断。通过可视化存储使用状况的工具,掌握哪些数据位于哪个层、产生了多少成本,从而找出优化的余地。不完全交给自动分层,而是与整体的数据保留方针结合运维,就能持续将存储成本保持在较低水平。关键在于组合多种方法的设计。

总结

S3 Intelligent-Tiering 是通过基于访问模式的自动分层来优化存储成本的服务,层间迁移和取回均不收取额外费用。频繁访问、低频访问和归档即时访问 3 个层自动运作,加上可选启用的归档访问和深度归档访问后的 5 层构成,可实现最高 95% 的成本削减。自动的 3 个层在被访问时会自动回到频繁访问层,因此无需运维工作,但可选启用的 2 个层需要通过 RestoreObject 进行显式恢复。最适合访问模式难以预测的数据,与生命周期规则的区分使用很重要。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享