存储类别选择
| 存储类别 | 取回延迟 | 最短存储期 | 适用数据 |
|---|---|---|---|
| S3 Standard | 毫秒 | 无 | 高频访问的热数据、网站静态资源 |
| S3 Intelligent-Tiering | 毫秒 | 无 | 访问模式不确定的数据,自动分层最省心 |
| S3 Standard-IA | 毫秒 | 30 天 | 月访问几次的备份、日志归档 |
| S3 One Zone-IA | 毫秒 | 30 天 | 可再生的副本数据,容忍单可用区风险 |
| S3 Glacier Instant Retrieval | 毫秒 | 90 天 | 季度访问一次的医疗影像、媒资 |
| S3 Glacier Flexible Retrieval | 分钟-小时 | 90 天 | 年度访问的合规归档 |
| S3 Glacier Deep Archive | 12 小时 | 180 天 | 法规要求长期保存、几乎不取回 |
注意最短存储期:提前删除会按最短期收费,频繁写删的桶不适合直接上 IA 或 Glacier。
生命周期规则示例
{
"Rules": [
{
"ID": "app-logs-tiering",
"Status": "Enabled",
"Filter": { "Prefix": "logs/" },
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER_IR" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
],
"Expiration": { "Days": 2555 }
},
{
"ID": "unknown-access-pattern",
"Status": "Enabled",
"Filter": { "Prefix": "user-uploads/" },
"Transitions": [
{ "Days": 0, "StorageClass": "INTELLIGENT_TIERING" }
]
},
{
"ID": "cleanup-incomplete-uploads",
"Status": "Enabled",
"Filter": {},
"AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 }
},
{
"ID": "expire-old-versions",
"Status": "Enabled",
"Filter": {},
"NoncurrentVersionTransitions": [
{ "NoncurrentDays": 30, "StorageClass": "GLACIER_IR" }
],
"NoncurrentVersionExpiration": { "NoncurrentDays": 365 }
}
]
}
第三条规则最容易被忽略:未完成的分段上传会一直计费,很多桶里躺着几 TB 的僵尸分片。
落地流程
-
01
开启 Storage Lens 与清单报告
先看清桶里有什么:对象数量、大小分布、前缀分布、最近访问时间。没有数据就没法做决策。
交付物:Storage Lens 看板、S3 Inventory 清单、冷热数据分布报告
1-2 天(数据积累需等待)
-
02
识别访问模式
结合 CloudTrail 数据事件或服务端访问日志,统计前缀级别的读取频率与最后访问时间。
交付物:前缀级访问热度表、可分层数据量清单
3-5 天
-
03
小范围验证
先在一个非核心前缀上应用规则,观察一周,确认没有意外的取回费用和业务报错。
交付物:验证报告、取回成本实测数据
7 天
-
04
全量推广与监控
IaC 化生命周期规则,纳入版本管理,配置存储成本异动告警。
交付物:Terraform 模块、成本告警规则、月度节省报表
2-3 天
小对象要小心
Glacier 类别每个对象有 8-40KB 的元数据开销。如果桶里是几百万个 2KB 的小文件,转 Glacier 可能不省钱甚至更贵。这种情况应该先做打包合并,或者用 Intelligent-Tiering。