gpt4 book ai didi

amazon-web-services - 同步两个 Amazon S3 存储桶的最快方法

转载 作者:行者123 更新时间:2023-12-03 14:45:19 24 4
gpt4 key购买 nike

我有一个包含大约 400 万个文件的 S3 存储桶,总共占用了大约 500GB。我需要将文件同步到一个新的存储桶(实际上更改存储桶的名称就足够了,但由于这是不可能的,我需要创建一个新的存储桶,将文件移到那里,然后删除旧的)。

我正在使用 AWS CLI 的 s3 sync命令,它可以完成工作,但需要很多时间。我想减少时间,以便依赖系统停机时间最短 .

我试图从我的本地机器和 EC2 c4.xlarge 运行同步。例如,所用的时间没有太大差异。

我注意到,当我使用 --exclude 将作业分成多个批次时,所花费的时间会有所减少。和 --include选项并从单独的终端窗口并行运行它们,即

aws s3 sync s3://source-bucket s3://destination-bucket --exclude "*" --include "1?/*" 
aws s3 sync s3://source-bucket s3://destination-bucket --exclude "*" --include "2?/*"
aws s3 sync s3://source-bucket s3://destination-bucket --exclude "*" --include "3?/*"
aws s3 sync s3://source-bucket s3://destination-bucket --exclude "*" --include "4?/*"
aws s3 sync s3://source-bucket s3://destination-bucket --exclude "1?/*" --exclude "2?/*" --exclude "3?/*" --exclude "4?/*"

还有什么我可以做的更快的同步吗?是另一种 EC2实例更适合这份工作?将工作分成多个批次是一个好主意,是否有类似“最佳”数量的 sync可以在同一个存储桶上并行运行的进程?

更新

我倾向于在关闭系统之前同步存储桶的策略,进行迁移,然后再次同步存储桶以仅复制同时更改的少量文件。但是运行相同的 sync即使在没有差异的存储桶上执行命令也需要花费大量时间。

最佳答案

您可以使用 EMR 和 S3-distcp。我不得不在两个存储桶之间同步 153 TB,这大约需要 9 天。还要确保存储桶位于同一区域,因为您还会受到数据传输成本的影响。

aws emr add-steps --cluster-id <value> --steps Name="Command Runner",Jar="command-runner.jar",[{"Args":["s3-dist-cp","--s3Endpoint","s3.amazonaws.com","--src","s3://BUCKETNAME","--dest","s3://BUCKETNAME"]}]

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html

http://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-commandrunner.html

关于amazon-web-services - 同步两个 Amazon S3 存储桶的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39149171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com