이에 필요한 복사본을 병렬화하기 위해 며칠 동안 사용자 지정 도구를 작성했지만 AWS S3 CLI sync 명령을 사용하여 버킷을 대규모 병렬화로 동기화하는 방법 에 대한 설명서를 살펴 보았습니다 . 다음 명령은 AWS CLI에 1,000 개의 스레드를 사용하여 작업 (각 작은 파일 또는 멀티 파트 복사본의 일부)을 실행하고 100,000 개의 작업을 미리 보도록 지시합니다.
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 팀과 이야기했고 그들은 그것을 조사하고 있습니다.