【问题标题】:How to migrate millions of files in aws s3 bucket from one account to another really fast如何快速将 aws s3 存储桶中的数百万个文件从一个帐户迁移到另一个帐户
【发布时间】:2017-05-22 12:58:01
【问题描述】:

我在账户 A 中有一个 s3 存储桶,其中包含数百万个占用许多 GB 的文件

我想将所有这些数据迁移到账户 B 中的新存储桶中

到目前为止,我已授予账户 B 对账户 A 中的存储桶运行 s3 命​​令的权限。

我能够得到一些结果 aws s3 sync 命令,设置为aws configure set default.s3.max_concurrent_requests 100

它的速度很快,但它的速度仅为每分钟 20,000 个零件。

有没有一种方法可以真正快速地在不同帐户的 aws 存储桶之间同步/移动数据?

我尝试进行 aws 传输加速,但似乎这对于从存储桶上传和下载很有用,我认为它可以在 aws 帐户中使用。

【问题讨论】:

标签: amazon-web-services amazon-s3


【解决方案1】:

每分钟 20,000 个零件。

这是 > 300/秒,所以,嗯...这相当快。也是每小时120万,也是相当可观的。

S3 Request Rate and Performance Considerations 表示 300 PUT req/sec 是默认性能阈值。

在某些时候,太快地发出太多请求,您将不堪重负索引分区,并且您将开始遇到503 Slow Down 错误——尽管希望 aws-cli 能够优雅地处理该问题。

不过,这个想法似乎是 S3 将向上扩展以适应提供的工作负载,因此如果您让该进程继续运行,您可能会发现它实际上确实会随着时间的推移而变得更快。

或者……

如果您预计存储桶的请求率会快速增加到每秒 300 多个 PUT/LIST/DELETE 请求或每秒 800 多个 GET 请求,我们建议您打开支持案例以准备工作负载并避免对您的请求率进行任何临时限制。

http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html

另外请注意,它说的是“临时限制”。这就是我得出结论的地方,即 S3 将在某个时候提供更多的索引容量(大概这意味着分区拆分)以适应增加的工作负载。

如果您运行多个单独的作业,每个作业处理不同的对象前缀(例如,asset/1、asset/2、asset/3 等,具体取决于如何使用键是在您的存储桶中设计的,因为您没有在对象索引中创建这样的热点。


此处进行的复制操作是内部 S3 到 S3 复制。不是下载+上传。传输加速仅用于实际下载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2017-07-21
    相关资源
    最近更新 更多