有没有办法在 AWS 位置之间传输 S3 数据并且不收费?

有没有办法在 AWS 位置之间传输 S3 数据并且不收费?

我们需要将圣保罗的存储桶转移到美国东部,这样我们才能利用冰川。

这些存储桶每个都超过 4Tb。我们使用 AWS API 移动了第一个存储桶,使用美国东部的一个实例发送这些请求,花费超过 800 美元。

您是否知道任何其他无需承担此费用即可传输数据的方式?

答案1

没有办法完全避免成本,因为任何形式的“出站”数据传输都需要成本。

您所在地区尚未提供导入/导出“磁盘”服务,否则您可以使用物理外部硬盘,将其运送到亚马逊,他们将数据从 S3 加载到磁盘,然后发送给您,您再将其发送回他们位于不同位置的位置,然后他们会将数据从磁盘传输到 S3。导入/导出“滚雪球”服务同样有用,但它目前不支持导出——仅支持导入。

您的数据是否经过压缩?数据压缩可能会极大地减少实际需要进行的传输量。像xz(单核)和pixz(多核/并行)这样的程序zpaq通常可以将您的数据大小减少到原始大小的十分之一甚至更多。您可以将其压缩存储,将其压缩传输,然后在传输后解压缩,或者将其保持压缩状态以节省长期存储成本。通常,压缩算法所需的文件越小,压缩所需的时间就越长,但 Spot 实例是利用廉价计算能力来处理大型压缩作业的好方法。

另一种可能性似乎是通过 CloudFront 传输内容。(怀疑论者:听我说……)从圣保罗到另一个 AWS 区域的数据传输费用为 0.160 美元/GB,但从 S3 到 CloudFront 的费用为 0.00 美元。传输成本脱离 CloudFront美国的带宽费用为 0.085 美元/GB。如果您在 us-east-1(弗吉尼亚)创建了一个 EC2 实例,然后从那里访问 CloudFront,则请求应路由到美国的 CloudFront,如果您的 CloudFront 分配配置为最低成本层,则请求应始终从美国提供。us-east-1 中的 EC2 到 S3 流量不受每 GB 带宽费用的影响。您将无法使用内置的 S3 复制机制,但您可以应该如果您编写了必要的支持代码来实现这一点,那么通过这种方法就可以将您的运输成本降低近一半。

警告:我还没有测试过这一点,以验证报价是否真的以预期的方式影响计费——我只是根据我对定价表的解释来做——但它似乎是 AWS 中为数不多的几个存在数据传输价格“套利”机会的地方之一。它基于这样一个概念,即从 S3 到 CloudFront,数据输出没有“区域”区别。

相关内容