Amazon S3 的存储设计 - 存储类别的选择与生命周期策略
通过官方列出的 9 种存储类别和生命周期规则自动优化成本。介绍版本控制、复制、Object Lock 的设计方法。
S3 概述
S3 是可扩展的对象存储服务,提供 99.999999999%(11 个 9)的耐久性。被用作静态网站托管、数据湖、备份、归档等所有存储用例的基础。官方列出的存储类别共有 9 种,与生命周期规则结合,可根据访问模式实现成本优化。
存储类别与生命周期
(截至 2026 年 8 月,美国东部(弗吉尼亚北部)/ 亚太地区(东京))S3 官方列出的存储类别为 S3 Standard、S3 Intelligent-Tiering、S3 Express One Zone、S3 Standard-IA、S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive、S3 Outposts 共 9 种。Standard 最适合频繁访问的数据,提供最低延迟。Standard-IA 适合每月访问约 1 次的数据,存储单价为每 1 GB 每月 0.0125 美元(弗吉尼亚北部)/ 0.0138 美元(东京)。与 Standard 最初 50 TB 的单价(0.023 美元 / 0.025 美元)相比,约为其 54% 的水平(东京约为 55%)。Glacier Instant Retrieval 适合需要毫秒级访问的归档数据,Glacier Flexible Retrieval 适合可接受数分钟至数小时取回时间的归档数据,Glacier Deep Archive 适合每年访问 1-2 次的数据。Glacier Flexible Retrieval 的取回需从 Expedited(1~5 分钟)、Standard(3~5 小时)、Bulk(5~12 小时)3 种选项中选择。取回的数据量(GB)和取回请求数均会产生费用。加急取回的单价会上升,Expedited 取回每 1 GB 需另加 0.03 美元(弗吉尼亚北部)/ 0.033 美元(东京),因此应事先决定优先考虑恢复速度还是取回成本。通过生命周期策略定义「创建后 30 天迁移到 Standard-IA、90 天迁移到 Glacier、365 天迁移到 Deep Archive」等规则,自动优化成本。不过,Standard-IA 有 30 天、Glacier Flexible Retrieval 有 90 天等最短存储期限,在期限内删除时,剩余天数会按日计费(均为弗吉尼亚北部:Standard-IA 相当于 0.0125 美元 / GB、Glacier Flexible Retrieval 相当于 0.0036 美元 / GB)。因此,应结合存储期限设计迁移天数。
版本控制与复制
启用 S3 版本控制后,对象被覆盖或删除时会保留之前的版本。通过生命周期规则在一定期间后删除旧版本,控制存储成本的增长。S3 Replication (CRR/SRR) 在存储桶之间自动复制对象,满足灾难恢复和合规要求。S3 Object Lock 实现 WORM (Write Once Read Many),用于法规要求禁止删除对象的场景。S3 Access Points 按用途分离对存储桶的访问,简化访问控制。
S3 的成本优化
(截至 2026 年 8 月,美国东部(弗吉尼亚北部)/ 亚太地区(东京))S3 Standard 采用阶梯计价。最初 50 TB 每 1 GB 每月 0.023 美元(弗吉尼亚北部)/ 0.025 美元(东京),接下来的 450 TB 为 0.022 美元 / 0.024 美元,超过 500 TB 的部分为 0.021 美元 / 0.023 美元。归档类中,Glacier Instant Retrieval 为 0.004 美元 / 0.005 美元,Glacier Flexible Retrieval 为 0.0036 美元 / 0.0045 美元,Glacier Deep Archive 则处于更低的单价区间。但由于其取回时间和最短存储期限的条件最为严格,请勿仅凭单价选择,而应结合官方的 S3 价格表确认最新条件。通过生命周期规则设置根据访问模式自动迁移存储类别。S3 Storage Lens 可视化每个存储桶的成本明细和访问模式,识别优化机会。通过自动删除不完整的分段上传规则,防止不必要的存储消耗。请求费用方面,PUT / COPY / POST / LIST 每 1,000 次请求 0.005 美元(弗吉尼亚北部)/ 0.0047 美元(东京),GET 及其他每 10,000 次请求 0.004 美元 / 0.0037 美元,写入侧高出 1 个数量级。在大量写入小对象的工作负载中,请求费用有时会超过存储费用,因此结合考虑对象大小的设计与存储类别的选择很重要。
通过 Intelligent-Tiering 自动优化
(截至 2026 年 8 月,美国东部(弗吉尼亚北部)/ 亚太地区(东京))对于访问频率难以预测的数据,Intelligent-Tiering 很有帮助。该功能会监控每个对象的访问情况,将一段时间未被使用的对象自动移至低成本层,再次被访问时则移回可快速取回的层。其优点是无需手动设计生命周期规则,成本也会根据实际使用情况得到优化。适合作为访问模式多样且难以预测的数据湖,以及长期保存但偶尔参考的数据的存储位置。监控和自动分层的费用为每 1,000 个对象每月 0.0025 美元(弗吉尼亚北部、东京均为同一金额),作为省去迁移工作的代价并不高。但对象数量庞大时,就会成为不可忽视的金额。此外,小于 128 KB 的对象不在监控和自动分层的范围内,虽然不产生这项费用,但也不会迁移到低频访问层,始终按频繁访问层的单价计费。在小文件占大多数的数据中难以见到效果,因此需缩小适用范围,或考虑将其合并为 1 个对象的设计。
安全与访问控制
S3 的安全首先从防止意外公开开始。需在账户和存储桶两个层面都启用阻止公共访问,仅对确需公开的情况谨慎设置例外。访问控制需通过存储桶策略和 IAM 限制在最小权限,加密则默认启用服务器端加密。法规要求严格时,需通过 KMS 的密钥管理精细控制解密权限。如果将访问限定为经由 VPC 终端节点,就能不经过互联网与 S3 通信,使数据路径封闭在内部网络中。
性能设计
S3 按前缀自动扩展,因此在预计会有大量请求时,通过键的设计将访问分散到多个前缀,即可获得高吞吐量。大对象的上传需使用分段上传进行拆分,提高并行传输和重试的效率。来自远程地点的传输较多时,应考虑通过 Transfer Acceleration 经由边缘站点加速。只需要大文件的一部分时,通过字节范围获取仅下载所需范围,减少传输量和时间。
数据保护与运维可视化
对于重要数据,除了版本控制之外,还需通过复制到其他区域来确保地理冗余。想防止误删除时,要求对版本的永久删除进行额外认证的设置也很有效。对于因法规合规而需禁止修改和删除的数据,应通过 Object Lock 应用 WORM。在运维方面,通过 Storage Lens 可视化存储的使用情况和成本结构,找出优化的空间。如果将对象的创建和删除作为事件通知,即可自动启动后续处理,构建数据处理管道。
总结
S3 是对象存储的基础,通过官方列出的 9 种存储类别和生命周期规则优化成本。版本控制保留对象的变更历史,复制满足灾难恢复和合规要求。Object Lock 实现 WORM,Access Points 按用途分离对存储桶的访问,提升安全性和运维效率。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。