これに必要なコピーを並列化するために独自のカスタムツールを作成するのに何日も費やしましたが、AWS S3 CLIの同期コマンドを使用してバケットを大規模な並列化と同期する方法に関するドキュメントに出くわしました。次のコマンドは、1,000個のスレッドを使用してジョブ(それぞれ小さなファイルまたはマルチパートコピーの一部)を実行し、100,000個のジョブを先読みするようAWS CLIに指示します。
aws configure set default.s3.max_concurrent_requests 1000
aws configure set default.s3.max_queue_size 100000
これらを実行した後、次のように単純なsyncコマンドを使用できます。
aws s3 sync s3://source-bucket/source-path s3://destination-bucket/destination-path
m4.xlargeマシン(AWS--4コア、16GB RAM)では、私の場合(3-50GBファイル)、同期/コピー速度は約9.5MiB / sから700 + MiB / sになり、速度はデフォルト構成の70倍。
更新:S3CMDは長年にわたって更新されており、これらの変更は多数の小さなファイルで作業している場合にのみ有効になることに注意してください。また、Windows上のS3CMD(Windowsのみ)は、全体的なスループットに深刻な制限があり、使用するインスタンスのサイズや設定に関係なく、プロセスあたり約3Gbpsしか達成できないことにも注意してください。S5CMDのような他のシステムにも同じ問題があります。私はこれについてS3チームに話しました、そして彼らはそれを調査しています。