对象存储看似便宜(标准存储约 $0.02/GB/月),但当数据涨到 TB、PB 级别,不做治理账单会很吓人。一个 10TB 的存储桶不分层每月就要 $200+,如果 90% 的数据是冷数据,分层后可以降到 $50 以下。关键在于「冷热分层」与「生命周期自动化」。
三大云存储分层价格对比
| 存储层级 | Amazon S3 | Google Cloud Storage | Azure Blob Storage |
|---|---|---|---|
| 标准存储 ($/GB/月) | $0.023 | $0.020 | $0.018 |
| 低频访问 ($/GB/月) | $0.0125 | $0.010 | $0.010 |
| 归档 ($/GB/月) | $0.0036 (Glacier) | $0.0012 (Archive) | $0.00099 (Archive) |
| 取回费用 (GB) | 标准免费 / 归档有费 | 标准免费 / 归档有费 | 标准免费 / 归档有费 |
| 最短存储期 | 30天(IA) / 90天(Glacier) | 30天 / 0天 | 30天 |
| 取回延迟 | 即时(标准) / 1-5min(Glacier) / 12h(Deep) | 即时 / 秒级(Archive) | 即时 / 秒-小时 |
存储分层
- 热数据(频繁访问):标准存储,单价高但无取回费。适合网站资源、API 返回的文件、最近上传的内容。
- 温数据(偶尔访问):低频访问层,单价低约 50%,取回有小额费用。适合备份、日志、30天以上未访问的文件。
- 冷数据 / 归档:归档层,单价极低($0.001-0.004/GB),取回慢且有费用。适合合规存档、历史数据、灾备副本。
用生命周期规则自动迁移
无需人工搬运,配置规则即可让对象按年龄自动降级或过期删除。例如:
30 天后 → 低频访问层 (节省 ~50%) 90 天后 → 归档层 (节省 ~85%) 365 天后 → 自动删除 (节省 100%)
成本计算实例
假设你有 10TB 数据,其中 80% 在 30 天后不再被访问。不做分层 vs 做分层的月成本对比:
| 方案 | 标准层 10TB | 分层后 (2TB热 + 3TB温 + 5TB归档) | 月节省 |
|---|---|---|---|
| Amazon S3 | $230/月 | $46 + $37.5 + $18 = $101.5 | 56% |
| Google Cloud Storage | $200/月 | $40 + $30 + $6 = $76 | 62% |
| Azure Blob Storage | $180/月 | $36 + $30 + $5 = $71 | 61% |
结论:仅通过分层即可节省 55-62% 的存储成本。如果再加上自动删除(365天后),节省可达 70%+。
S3 生命周期配置示例
S3 Lifecycle Rule (JSON):
{
"Rules": [{
"ID": "auto-tier",
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_INSTANT_RETRIEVAL"},
{"Days": 180, "StorageClass": "GLACIER_DEEP_ARCHIVE"}
],
"Expiration": {"Days": 365}
}]
}其他省钱技巧
- 删除未完成的分片上传:大文件分片上传中断后残留的分片会持续计费,定期用生命周期规则清理。
- 启用版本控制时配置旧版本过期:否则每次覆盖都会保留一个旧版本,存储量翻倍。
- 使用 S3 Intelligent-Tiering:自动在热/温层间切换,适合访问模式不确定的数据(有 $0.0025/1000 对象的监控费)。
- 压缩 + 去重:上传前压缩可以减少存储量,但注意压缩格式对取回性能的影响。
- 跨区域复制需谨慎:跨区域传输有费用,只在需要灾备时启用。
💡 开启版本控制时记得给「旧版本」单独配置过期规则,否则历史版本会悄悄堆积成本。一个频繁更新的文件,一年可能产生上百个版本。
常见问题
Q: 归档层取回一次要多少钱? Glacier 取回费约 $0.03/GB(标准取回,1-5分钟)到 $0.0007/GB(批量取回,12小时)。GCS Archive 取回费约 $0.05/GB。如果频繁需要取回归档数据,说明它不应该在归档层——考虑放到低频访问层。
Q: 三个云的对象存储 API 兼容吗? S3 API 是事实标准,GCS 和 Azure 都提供某种程度的 S3 兼容。但兼容性不是 100%,部分高级功能(如版本控制、事件通知)的 API 不完全一致。跨云迁移建议使用 rsync 或专用迁移工具。