我在帐户A中有一个s3存储桶,其中包含数百万个占用多个GB的文件
我想将所有这些数据迁移到帐户B中的新存储区
到目前为止,我已经在帐户A的帐户中使用帐户B权限运行s3命令。
我能够得到一些结果
设置为aws s3 sync
aws configure set default.s3.max_concurrent_requests 100
命令
它的速度很快,但它的速度只有每分钟20,000件左右。
是否存在在不同帐户中跨aws桶同步/移动数据的方法真的很快?
我尝试进行传输加速,但似乎这对于从存储桶上传和下载很有用,我认为它可以在aws帐户中运行。
答案 0 :(得分:3)
每分钟20,000件。
那个> 300 /秒,所以,嗯......那很快。它每小时也有120万,这也非常值得尊敬。
S3 Request Rate and Performance Considerations表示300 PUT
req / sec是默认的性能阈值。
在某些时候,过快地发出太多请求并且你会淹没你的索引分区并且你将开始遇到503 Slow Down
错误 - 尽管希望aws-cli能够优雅地处理它。 / p>
但是,这个想法似乎是S3会扩展以适应所提供的工作负载,所以如果你让这个过程继续运行,你可能会发现它实际上随着时间的推移变得更快。
或者...
如果您希望将存储桶的请求速率快速提高到每秒超过300个PUT / LIST / DELETE请求或每秒超过800个GET请求,我们建议您打开支持案例以准备工作负载并避免对您的请求率进行任何临时限制。
http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
另请注意,它表示"临时限制。"在这里,我得出的结论是,S3本身 - 在某些时候 - 提供更多的索引容量(可能这意味着分区拆分)以适应增加的工作量。
如果您运行多个单独的作业,每个处理不同的对象前缀(例如,资产/ 1,资产/ 2,资产/ 3等,具体取决于方式),您可能还会发现您的聚合trx / sec要高得多密钥是在您的存储桶中设计的,因为您没有在对象索引中创建这样的热点。
此处进行的复制操作是内部S3到S3复制。它不能下载+上传。传输加速仅用于实际下载。