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

최종 업데이트 날짜: 2019년 12월 17일

Amazon Simple Storage Service(Amazon S3)에 대용량 파일을 업로드하려고 합니다. 이 업로드의 성능을 최적화하려면 어떻게 해야 합니까? 

간략한 설명

Amazon S3에 대용량 파일을 업로드할 경우에는 멀티파트 업로드를 활용하는 것이 가장 좋습니다. AWS 명령줄 인터페이스(AWS CLI)를 사용하는 경우에는 객체가 크다면 상위 수준 aws s3 명령이 모두 자동으로 멀티파트 업로드를 수행합니다. 이러한 상위 수준 명령에는 aws s3 cpaws s3 sync가 포함됩니다.

업로드 성능을 개선하고 멀티파트 업로드를 최적화하려면 다음 옵션을 고려하십시오.

  • AWS CLI를 사용하는 경우 업로드 구성을 사용자 지정하십시오.
  • Amazon S3 Transfer Acceleration을 활성화하십시오.

​해결 방법

AWS CLI를 사용하는 경우 업로드 구성을 사용자 지정

다음과 같이 Amazon S3에 대해 AWS CLI 구성을 사용자 지정할 수 있습니다.

  • max_concurrent_requests: 이 값은 한 번에 Amazon S3에 전송할 수 있는 요청 수를 설정합니다. 기본값은 10입니다.
    참고: 스레드를 더 많이 실행하면 시스템에서 더 많은 리소스가 소비됩니다. 원하는 최대 동시 요청 수를 지원하기에 충분한 리소스가 시스템에 있는지 확인해야 합니다.
  • max_queue_size: 이 값은 대기열의 최대 태스크 수를 설정합니다.
  • multipart_threshold: 이 값은 개별 파일의 멀티파트 업로드에 대한 크기 임계값을 설정합니다.
  • multipart_chunksize: 이 값은 AWS CLI가 개별 파일에 대한 멀티파트 업로드에서 업로드하는 각 파트의 크기를 설정합니다. 이 설정을 사용하면 더 빠른 업로드 속도를 위해 큰 파일(예: 300MB)을 더 작은 파트로 나눌 수 있습니다.
    참고: 멀티파트 업로드를 수행하려면 단일 파일을 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은 CopyObject를 사용하는 교차 리전 사본을 지원하지 않습니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?