AWS S3 cp成本优化:两种S3文件上传操作方案哪种更便宜?
两种操作方案回顾
- 方案1:两次本地到S3上传
aws s3 cp local-data s3://same-backet/latest aws s3 cp local-data s3://same-backet/some-date
- 方案2:一次本地上传+一次同桶复制
aws s3 cp local-data s3://same-backet/latest aws s3 cp s3://same-backet/latest s3://same-backet/some-date
结论
第二种操作方式成本更低。
成本对比分析
我们从实际产生的费用项逐一对比两种方案:
- 公网流量成本
第一种方案需要执行2次本地到S3的上传,本地侧需要承担2次对应文件大小的公网出站带宽成本,若本地环境是按带宽/流量计费的IDC、云服务器,这部分成本会直接翻倍。
第二种方案仅需要1次本地到S3的上传,第二次同桶复制完全走AWS内部链路,无额外公网流量消耗。 - S3请求成本
第一种方案产生2次S3 PUT请求,第二种方案产生1次S3 PUT请求+1次S3 COPY请求,S3 COPY请求的定价和PUT请求完全一致,这块两种方案成本相同。 - 存储成本
两种方案最终都会在S3存储桶内留存2份相同的对象,存储容量费用完全一致。
同桶复制链路原理
你关心的链路问题答案非常明确:同存储桶内的S3 COPY操作不会走“桶-本地-桶”的链路。
aws cli执行同桶S3到S3的cp命令时,会直接调用S3原生的服务端COPY接口,整个复制过程完全在AWS S3集群内部完成,不会把对象数据下载到运行cli命令的本地设备,也不会产生任何公网流量。
注意:你示例代码中的存储桶名存在拼写笔误,
same-backet应为same-bucket。
内容的提问来源于stack exchange,提问作者Coll
相关产品推荐
相关产品推荐

