내용으로 건너뛰기

AWS CLI를 사용하여 Amazon S3에 대용량 파일을 업로드할 때 성능을 최적화하려면 어떻게 해야 합니까?

3분 분량
0

AWS Command Line Interface(AWS CLI)를 사용하여 대용량 파일(1GB 이상)을 Amazon Simple Storage Service(Amazon S3)에 업로드할 때 성능을 최적화하고 싶습니다.

간략한 설명

Amazon S3에 대용량 파일을 업로드하는 경우 멀티파트 업로드를 활용하는 것이 좋습니다. AWS CLI를 사용하는 경우 모든 상위 aws s3 명령이 객체가 클 때 자동으로 멀티파트 업로드를 수행합니다. 이러한 상위 명령에는 aws s3 cpaws s3 sync가 포함됩니다.

성능을 최적화하려면 다음 방법 중 하나를 선택하십시오.

대규모 데이터 전송이나 복잡한 워크로드가 필요한 경우 AWS CLI용 AWS CRT 기반 클라이언트를 사용하십시오.
참고: 이 방법을 사용하려면 AWS CLI 버전 2를 사용해야 합니다. AWS CLI 명령을 실행할 때 오류가 표시되면 AWS CLI 오류 문제 해결을 참조하십시오.

해결 방법

CRT 기반 클라이언트를 AWS CLI와 함께 사용

CRT 기반 클라이언트 활성화
CRT 기반 클라이언트를 활성화하려면 AWS CLI를 구성합니다. 이렇게 하려면 AWS CLI 구성 파일(~/.aws/config)에 구성을 추가하거나 AWS CLI를 사용하여 구성을 설정합니다.

AWS CLI 구성 파일에 preferred_transfer_client를 추가합니다.

[default]
s3 =
preferred_transfer_client = crt

또는 터미널에 다음 명령을 입력합니다.

aws configure set default.s3.preferred_transfer_client crt

target_bandwidth 옵션 구성(선택 사항)
이 옵션은 전송 클라이언트가 S3 업로드 및 다운로드를 위해 도달하려고 하는 대상 대역폭을 제어합니다. 기본적으로 AWS CLI는 시스템의 최대 네트워크 대역폭과 일치하는 대상 대역폭을 선택합니다.

참고: target_bandwidth 값을 구성할 때는 주의하십시오. 이 값이 로컬 클라이언트 리소스의 용량보다 크면 클라이언트에 부담을 줄 수 있습니다. 이 옵션은 null로 두는 것이 가장 좋습니다.

CRT 기반 클라이언트를 활성화하면 AWS CLI에서 파일 업로드를 비롯한 Amazon S3 작업에 자동으로 클라이언트를 사용합니다. 그러면 대용량 파일 업로드 시 특히 표준 AWS CLI보다 성능과 안정성이 개선됩니다.

업로드 구성 사용자 지정

다음과 같은 설정을 사용하여 Amazon S3용 AWS CLI 구성을 사용자 지정합니다.

  • max_concurrent_requests Amazon S3에 동시에 전송할 수 있는 요청 수를 설정하는 값입니다. 기본값은 10입니다.
    참고: 더 많은 스레드를 실행하면 머신이 더 많은 리소스를 소비합니다. 머신에 필요한 최대 동시 요청 수를 지원할 수 있는 충분한 리소스가 있어야 합니다.
  • max_queue_size 큐의 최대 작업 수를 설정하는 값입니다. 기본값은 1,000입니다.
  • multipart_threshold 개별 파일의 멀티파트 업로드에 대한 크기 임계값을 설정하는 값입니다. 기본값은 8MB입니다.
  • multipart_chunksize AWS CLI가 개별 파일의 멀티파트 업로드에서 업로드하는 각 파트의 크기를 설정하는 값입니다. 이 설정을 사용하면 큰 파일(예: 300MB)을 작은 파트로 분할하여 업로드 속도를 높일 수 있습니다. 기본값은 8MB입니다.
    참고: 멀티파트 업로드의 경우 단일 파일을 10,000개 미만의 개별 파트로 나누어 업로드해야 합니다. 설정한 청크 크기에 따라 파트 파일 크기와 파트 수가 균형을 이루어야 합니다.
  • max_bandwidth Amazon S3에 데이터를 업로드하기 위한 최대 대역폭을 설정하는 값입니다. 기본값은 없습니다.

Amazon S3 Transfer Acceleration 활성화

Amazon S3 Transfer Acceleration은 클라이언트와 Amazon S3 간에 빠르고 안전한 장거리 전송을 제공합니다. Transfer Acceleration은 전 세계에 분산된 Amazon CloudFront의 엣지 로케이션을 사용합니다.

Transfer Acceleration은 추가 요금이 발생하므로 반드시 요금을 검토하십시오. Transfer Acceleration으로 사용 사례의 전송 속도가 향상될지 확인하려면 Amazon S3 Transfer Acceleration 속도 비교 도구를 검토하십시오.

참고: Transfer Acceleration은 AWS 리전 간 CopyObject 복사를 지원하지 않습니다.

관련 정보

AWS CLI S3 구성

AWS Command Line Interface(AWS CLI)란 무엇입니까?