
Cloudflare R2还是AWS S3:出站流量会改写账单

大量图片、安装包或静态文件直接向公网交付时,Cloudflare R2通常更容易控制对象存储账单:R2官方价目表列出标准层每GB月0.015美元、Class A每百万次4.50美元、Class B每百万次0.36美元,直接向互联网传输不收出站带宽费。该价目表标注于2026年10月1日更新。零出站费能否转化为总成本优势,仍取决于读取次数、存储类别和交付路径。
数据若主要由同一区域的AWS服务读取,Amazon S3的公网出站费可能根本不会出现。Amazon S3价格说明将存储、请求、数据提取和传输分项计费,并规定S3桶向同区域AWS服务传输数据免费;每月前100 GB互联网出站免费额度在符合条件的AWS服务及区域之间共享,中国区域和GovCloud区域不适用。此时,现有AWS权限、复制及处理流程是否依赖S3,可能比两家的存储单价差异更重要。
月费公式:存储量只是起点
先把用量写成五个变量:S是月均存储量,按GB月计;A是写入、复制和列举等请求次数;B是读取及查询对象元数据等请求次数;E是对象存储直接送往互联网的GB数;D是从低频层实际提取的GB数。A与B只是估算时的归类,具体API必须按各平台的请求分类计费。若经过CDN,E应填回源和交付路径中真正由存储服务计收的流量,不能直接填用户下载总量。
R2标准层每月包含10 GB月存储、100万次Class A及1000万次Class B免费用量,免费额度不适用于其Infrequent Access层。标准层可粗算为:向上取整〔max(S-10,0)〕×0.015+向上取整〔max(A-100万,0)÷100万〕×4.50+向上取整〔max(B-1000万,0)÷100万〕×0.36。这里的“向上取整”对应R2按计费单位进位的规则;超出免费额度哪怕只有少量请求,也不能把百万次单价当作无限细分的单次价格。直接出站费为零,但若另接收费服务,费用仍须单列。
下文的S3示例统一采用美国东部弗吉尼亚区域的公开标价。Akal Cloud的费率对照列出S3 Standard前50 TB每GB月0.023美元、PUT等请求每千次0.005美元、GET等请求每千次0.0004美元;S3 Standard-IA对应为每GB月0.0125美元、每千次写请求0.01美元、每千次读请求0.001美元,另有每GB 0.01美元的提取费。区域、阶梯、合同折扣及账户优惠变化时,公式里的单价也要替换。
以F表示当月尚可供这项业务使用的共享免费公网出站GB数,S3 Standard的简化月费为:S×0.023+A÷1000×0.005+B÷1000×0.0004+max(E-F,0)×公网出站单价。F不是每个桶独享的额度,其他AWS业务用掉多少,就应从可用量中扣除。两个平台的公式都只覆盖列出的对象存储收费项,CDN、计算、跨区域复制、管理功能和税费需要另算。
静态资源:公网下载会把价差拉开
假设一个出海站点整月存储1000 GB静态文件,写入10万次、读取2000万次,直接从存储桶向公网发送5000 GB;这里按十进制口径,分别相当于1 TB存储和5 TB下载,并假设没有CDN。DeployHQ的成本对照把美国东部弗吉尼亚区域S3 Standard首档公网出站列为每GB 0.09美元,并用相近的存储与下载规模说明出站费可能远高于存储费。以下金额则加入了明确的请求次数,属于条件计算。
在上述条件下,R2标准层的存储费为14.85美元,10万次写入仍在免费额度内,超出免费额度的1000万次读取收3.60美元,合计约18.45美元。若S3仍有完整的100 GB共享免费出站额度,存储费为23美元,写入为0.50美元,读取为8美元,公网出站为(5000-100)×0.09=441美元,合计约472.50美元。两者约454.05美元的差额主要由公网传输产生,而不是由每GB存储价格产生。
这个结果只适用于“直接从对象存储交付”的路径。缓存命中会减少回源请求和字节数;若S3经CloudFront向用户交付,S3到CloudFront的传输免费,但CloudFront自身的请求和面向用户的出站费用要另算。因此,用户看到的下载量与S3账单上的公网出站量并不总是同一个数字。
备份:低频单价低,也可能算出更高月费
再作一个条件示例:整月保存1000 GB备份,写入10万次、读取1万次,向公网恢复50 GB,并假设对象足够大、保存时间满足最低要求。R2 Infrequent Access每GB月0.01美元,Class A及Class B分别为每百万次9美元和0.90美元,提取每GB另收0.01美元,且没有标准层免费额度。按计费单位进位后,存储为10美元,少量写入仍收9美元,少量读取收0.90美元,提取费为0.50美元,合计约20.40美元。把请求费直接按10万次和1万次线性分摊,会明显低估这笔账。
同一条件下,S3 Standard-IA的存储费为12.50美元,写入1美元,读取0.01美元,提取0.50美元,合计14.01美元;如果50 GB公网恢复流量落在共享免费额度内,就没有额外公网出站费。若额度已被其他业务耗尽,按每GB 0.09美元再增加4.50美元,合计18.51美元。这个例子里,即使R2低频层的每GB存储单价更低,其请求计费单位仍使总额高于S3 Standard-IA;R2标准层在相同用量下约为14.85美元,反而比R2低频层便宜。
低频层还会改变短期备份和小文件的计算。R2 Infrequent Access与S3 Standard-IA都有30天最低计费保存期,提前删除或改写对象不会免去剩余期间的存储费;S3 Standard-IA还对每个对象设有128 KB的最低计费大小。大量短命或极小对象不能只用实际字节数乘低频存储单价。恢复成本也要把“从低频层读出多少GB”和“读出的数据送往哪里”分开,因为提取费与公网传输费是两项收费。
AWS内部读取:同样的流量,出站项消失
第三个条件示例沿用1000 GB存储、10万次写入和2000万次读取,但5000 GB读取全部发生在同一区域的AWS服务之间。按前述单价,S3 Standard的存储与请求费用约为31.50美元,符合条件的同区域传输不增加公网出站费。R2标准层按自身存储和请求公式仍约为18.45美元;单看两个存储桶,差额只剩13.05美元,远小于直接向公网交付时的差额。
这时选择S3的理由更多来自既有架构:如果应用已经使用AWS的权限控制、桶级配置、复制或生命周期流程,迁移带来的开发与运维工作可能超过这笔月费差额。反过来,用户若直接从对象存储下载大量公开文件,出站收费才会持续放大R2的优势。所谓“读取5000 GB”本身不足以判断成本,必须同时说明读取方、区域和交付方式。
迁移成本与API依赖也属于比较范围
R2提供S3兼容API,常见对象读写可以沿用不少S3工具,但桶级能力不能假定完全相同。R2的API兼容清单将GetBucketPolicy和GetBucketReplication等操作列为未实现,并区分已实现与部分实现的功能。依赖这些调用、特定权限行为或自动复制流程的应用,需要把改造成本与月费节省放在一起比较。
从S3搬出既有对象时,原桶的读取请求和向外传输也可能产生一次性费用;迁入后的月费公式不会显示这笔支出。静态资源、备份与AWS内部负载因此可能得出不同选择:直接公网交付越多,R2免收出站费越有价值;同区域内部读取和S3专有功能依赖越重,保留原有数据路径越可能划算。正式预算还需按实际部署区域、剩余免费额度、对象大小及合同价格重算。
相关阅读:
相关文章
订阅我们的新闻通讯
将最新 Web3、AI 和加密货币新闻直接发送到您的邮箱。




