대용량 데이터를 Amazon Simple Storage Service(Amazon S3)에 업로드하거나 S3버킷 간에 대용량 데이터를 복사하려고 합니다. 이 데이터 전송의 성능을 최적화하려면 어떻게 해야 합니까?

대용량 데이터를 Amazon S3버킷과 송수신하는 경우 다음과 같은 방법을 검토하십시오.

AWS 명령줄 인터페이스(AWS CLI)를 사용한 병렬 업로드

참고: 모범 사례로, AWS CLI의 최신 버전을 사용할 것을 권장합니다. 자세한 내용은 AWS 명령줄 인터페이스 설치를 참조하십시오.

전송을 완료하는 데 필요한 전체 시간을 단축하려면, 전송을 여러 개의 상호 독립적인 작업으로 분할하십시오. aws s3 cp(복사), aws s3 mv(이동) 또는 aws s3 sync(동기화)의 여러 인스턴스를 동시에 실행할 수도 있습니다.

전송을 분할하는 한 가지 방식은 --exclude 및 --include 파라미터를 사용하여 파일명을 기준으로 작업을 분리하는 것입니다. 예를 들어, 대용량 데이터를 버킷 간에 복사해야 하는데 모든 파일명이 숫자로 시작하는 경우, AWS CLI의 두 인스턴스에서 다음과 같은 명령을 실행할 수 있습니다.

참고: --exclude--include 파라미터는 클라이언트 측에서 처리됩니다. 따라서 로컬 컴퓨터의 리소스가 작업의 성능에 영향을 미칠 수 있습니다.

이 명령을 사용하여 이름이 0~4의 숫자로 시작하는 파일을 복사합니다.

aws s3 cp s3://srcbucket/ s3://destbucket/ --recursive --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*"

이 명령을 사용하여 이름이 5~9의 숫자로 시작하는 파일을 복사합니다. 

aws s3 cp s3://srcbucket/ s3://destbucket/ --recursive --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"

중요: 아주 많은 객체(수억 개)를 전송해야 하는 경우 AWS SDK를 사용하여 복사를 수행하는 사용자 지정 애플리케이션을 구축하는 방법을 검토해 보십시오. AWS CLI도 복사를 수행할 수 있지만 이 정도의 규모에는 사용자 지정 애플리케이션이 더 효율적일 수 있습니다.

AWS Snowball

특히 10TB를 초과하는 데이터를 온프레미스 데이터 센터와 Amazon S3간에 전송하는 경우 AWS Snowball 사용을 검토해 보십시오.

다음과 같은 제한 사항에 유의하십시오.

  • AWS Snowball은 버킷 간 데이터 전송을 지원하지 않습니다.
  • AWS Snowball은 AWS Key Management System(AWS KMS)이 관리하는 키를 사용하는 서버 측 암호화를 지원하지 않습니다. 자세한 내용은 AWS Snowball의 서버 측 암호화를 참조하십시오.

Amazon EMR을 이용한 S3DistCp

Amazon S3 버킷 간에 데이터를 복사할 때는 Amazon EMR을 이용한 S3DistCp 사용을 검토해 보십시오. S3DistCp는 대용량 객체의 병렬 복사를 지원합니다.

중요: 이 옵션을 사용하려면 Amazon EMR 클러스터를 시작해야 하기 때문에 먼저 Amazon EMR 요금을 검토해야 합니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2016년 1월 7일

업데이트 날짜: 2018월 11월 16일