Amazon Simple Storage Service(S3) 버킷에서 다른 버킷으로 최소 1TB의 데이터를 전송하고 싶습니다.
해결 방법
Amazon S3 버킷에서 다른 버킷으로 대량의 데이터를 전송하려면 다음 방법 중 하나를 사용하십시오.
- AWS Command Line Interface(AWS CLI)
- CRR(Cross-Region Replication, 리전 간 복제) 또는 SRR(Same-Region Replication, 동일 리전 복제)
- Amazon S3 배치 작업
- S3DistCP와 Amazon EMR
- AWS DataSync
참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
AWS CLI
데이터 전송 시간을 개선하려면 전송을 상호 배타적인 여러 작업으로 분할하십시오. 예를 들어, AWS CLI를 사용해 aws s3 cp, aws s3 mv, aws s3 sync와 같은 여러 병렬 작업을 실행할 수 있습니다. --exclude 및 --include 파라미터를 사용하여 파일 이름별로 작업을 필터링하면 더 많은 업로드 스레드를 생성할 수 있습니다.
참고: --exclude 및 --include 파라미터는 클라이언트 측에서 처리되므로 로컬 시스템의 리소스가 작업 성능에 영향을 미칠 수 있습니다.
대량의 데이터를 한 버킷에서 다른 버킷으로 복사하려면 다음 명령을 실행합니다.
참고: 파일 이름은 숫자로 시작합니다.
-
다음 cp 명령을 실행하여 0~4로 시작하는 이름의 파일을 복사합니다.
aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*"
-
두 번째 AWS CLI 작업에서 다음 cp 명령을 실행하여 5~9로 시작하는 이름의 파일을 복사합니다.
aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"
다음 AWS CLI S3 구성 값을 사용자 지정하여 데이터 전송 시간을 개선할 수도 있습니다.
- multipart_chunksize를 사용하여 AWS CLI에서 개별 파일을 멀티파트 업로드할 시 업로드하는 각 부분의 크기를 설정합니다. 큰 파일을 작은 부분으로 분할하여 업로드 속도를 높일 수 있습니다.
참고: 멀티파트 업로드의 경우 최대 10,000개의 개별 부분으로 구성된 단일 파일을 업로드할 수 있습니다. 설정한 청크 크기에 따라 부품 파일 크기와 부품 수가 균형을 이루는지 확인하십시오.
- max_concurrent_requests를 사용하여 한 번에 Amazon S3에 전송할 수 있는 요청 수를 설정합니다. 기본값은 10이며 더 높은 값으로 지정할 수 있습니다. 컴퓨터에 최대 동시 요청 수를 지원할 수 있는 충분한 리소스가 있는지 확인하십시오.
CRR 또는 SSR
원본 버킷에 CRR 또는 SSR을 설정하여 Amazon S3가 소스 버킷에서 대상 버킷으로 새 객체를 자동으로 복제할 수 있도록 허용합니다. Amazon S3가 복제하는 객체를 필터링하려면 접두사 또는 태그를 사용합니다. 자세한 내용은 복제 구성 파일 요소를 참조하십시오.
복제를 구성한 후 Amazon S3는 기존 객체가 아닌 새 객체만 대상 버킷에 복제합니다. 자세한 내용은 배치 복제를 통한 기존 객체 복제 및 복제 구성으로 복제되지 않는 것은 무엇입니까?를 참조하십시오.
Amazon S3 배치 작업
Amazon S3 Batch Operations을 사용하여 단일 요청으로 여러 객체를 복사할 수 있습니다. 배치 작업을 생성할 때 Amazon S3 Inventory 보고서를 사용하여 Amazon S3가 작업을 수행할 객체를 지정할 수 있습니다. 또는 CSV 매니페스트를 사용해 배치 작업을 지정할 수 있습니다. 그러면 Amazon S3 Batch Operations가 API를 직접 호출하여 작업을 실행합니다.
배치 작업이 완료되면 알림과 선택 사항인 완료 보고서를 받게 됩니다.
S3DistCp와 Amazon EMR
Amazon EMR에서 S3DistCp 작업을 실행하면 Amazon S3 버킷 간에 객체를 대량으로 병렬 복사할 수 있습니다. S3DistCp는 먼저 원본 버킷 파일을 Amazon EMR 클러스터의 워커 노드로 복사합니다. 그 후 워커 노드 파일을 대상 버킷에 씁니다. 자세한 내용은 Amazon EMR에서 S3DistCp를 사용하여 HDFS와 Amazon S3 간에 데이터를 효율적으로 이동하는 7가지 팁을 참조하십시오.
중요: S3DistCp와 함께 Amazon EMR을 사용해야 하므로 Amazon EMR 요금을 검토하십시오.
AWS DataSync
AWS DataSync를 사용하여 한 Amazon S3 버킷에서 다른 버킷으로 대량의 데이터를 이동하려면 전송 위치를 생성해야 합니다. 범용 버킷의 경우 Amazon S3 범용 버킷의 전송 위치 생성을 참조하십시오. Outpost 버킷의 경우 Outpost 버킷의 S3 전송 위치 생성을 참조하십시오.
참고:
관련 정보
Amazon S3의 데이터 전송 비용을 식별하려면 어떻게 해야 합니까?