S3 的标价确实很诱人,每 GB 每月才两美分出头。但很多客户收到的账单却远超预期,看完一脸问号。S3 便宜,但这个“便宜”是有前提的。今天咱们就把 S3 的账拆开看看,钱到底花在哪,又该怎么省。
先说清楚:S3 到底怎么收费的?
S3 的账单不是简单的“存储量 × 单价”,它由好几个部分叠加而成。
存储费用是基础,就是数据躺在 S3 里的硬盘钱。但不同存储类别单价差很多:标准存储(Standard)最贵,适合高频访问的数据;低频访问(IA)便宜些,但取回时要额外掏检索费;归档存储(Glacier Deep Archive)最便宜,但取回要等 12 小时左右,还有最短存储期限(比如 Deep Archive 是 180 天),提前删要补交剩余天数的费用。
请求费用容易被忽略。你每次上传、下载、列举文件,都在产生 API 请求费。虽然单次很便宜(GET 请求约 1000 次 0.0004 美元),但架不住量大。如果你的业务有海量小文件频繁读写,月底一看请求费可能比存储费还扎眼。
数据传输费是另一个暗坑。把数据上传到 S3 是免费的,但从 S3 往外传数据到互联网或传到其他 AWS 区域,要按流量收费。每月前 100GB 出站免费,超出后按阶梯计价,每 GB 零点零几美元。几百 GB 传下来,账单就上去了。
费用坑:那些让你多花钱的“隐形操作”
最常见的是版本控制和历史版本堆积。开了版本控制后,每次上传同名文件,旧版本不会消失,而是一直存在。如果没设生命周期规则自动清理过期版本,这些非当前版本会越积越多,白白占存储空间,账单自然涨。
未完成的分段上传也会产生费用。用大文件上传时,S3 会切成多个部分分别上传。如果中途中断,那些没传完的碎片会留在存储桶里,你看不见它们,但它们确实在计费。
还有存储类别选错的问题。比如把访问频次很低的历史日志放在标准存储(Standard)里,等于用高价存冷数据。或者把需要频繁取回的数据放到了归档存储里,每次取回被收一大笔检索费。
场景建议:什么情况适合用 S3?
S3 最适合放静态资源(网站图片、视频、CSS/JS)、应用备份、系统日志、大数据湖里的原始数据,以及合规归档文件。
不适合的场景:频繁读写的小文件(API 请求费太高)、需要实时随机修改的文件(对象存储不适合频繁更新)、以及数据库数据(性能不如块存储和专用数据库)。
配置建议:怎么用才真便宜?
先摸清家底。开启 S3 Storage Lens(一个帮你分析存储使用情况的工具),它会告诉你哪些桶容量大、哪些数据长期没访问、哪些桶没设生命周期。有了数据再做决策。
给每个存储桶设好生命周期规则。比如:30 天没访问的数据自动从标准存储转到低频访问(IA),90 天后转到归档存储,180 天后自动删除非当前版本和过期删除标记。让数据自己“下沉”,不用你手动搬。
小文件可以合并或压缩后再存。S3 对小于 128KB 的对象按 128KB 计费,一堆小文件堆在一起很吃亏。
同区域内的服务(比如 EC2 读 S3)不走公网,不计流出流量费,这个便宜要占上。如果业务需要跨区域复制数据,考虑清楚是否必要,因为会产生双向的流量和存储费用。
最后,别一股脑选标准存储。根据数据访问模式选合适的存储类别,能省下一大笔钱。