Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 Amazon Simple Storage Service(Amazon S3) 버킷으로 데이터를 전송하는 경우 속도를 개선하려고 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
Amazon EC2 인스턴스에서 향상된 네트워킹 사용
전제 조건: 향상된 네트워크 어댑터(ENA)를 사용하는 경우 향상된 네트워킹의 인스턴스 사전 요구 사항을 완료하십시오. Intel 82599 VF 인터페이스를 사용하는 경우 향상된 네트워킹을 위해 인스턴스를 준비하십시오.
Amazon CloudWatch를 사용하여 인스턴스의 지표를 검토합니다. 인스턴스의 NetworkPacketsOut 값이 예상한 값보다 큰 경우 향상된 네트워킹을 활성화하십시오.
데이터 전송에 병렬 워크로드 사용
데이터 전송을 완료하는 데 걸리는 시간을 줄이려면 전송을 여러 개의 상호 배타적인 작업으로 분할하십시오. 예를 들어, AWS CLI를 사용하는 경우 여러 cp, mv 또는 sync AWS CLI 명령을 동시에 실행합니다.
데이터를 여러 접두사에 분산하는 경우, 동시에 개별 동기화를 수행하는 여러 AWS CLI 작업을 실행합니다. 설명은 Amazon S3용 AWS CLI 동기화 명령을 사용할 경우 데이터 전송 성능을 개선하려면 어떻게 해야 합니까?의 여러 AWS CLI 작업 실행 섹션을 참조하십시오.
AWS CLI에서 업로드 구성 사용자 지정
데이터 전송 속도를 높이려면 Amazon S3에 대한 다음 AWS CLI 구성 값을 사용자 지정하십시오.
- multipart_chunksize 값은 AWS CLI가 개별 파일의 멀티파트 업로드에서 업로드하는 각 파트의 크기를 설정합니다. 이 값을 최적화하여 더 빠른 업로드 속도를 위해 큰 파일을 작은 파트로 분리합니다.
참고: 멀티파트 업로드의 경우 단일 파일을 10,000개 이하의 개별 파트로 업로드해야 합니다. 설정한 청크 크기에 따라 파트 파일 크기와 파트 수가 균형을 이루는지 확인하십시오.
- max_concurrent_requests 값을 변경하여 한 번에 Amazon S3로 전송할 수 있는 요청 수를 늘립니다. 기본값은 10입니다. 이 값을 늘리면 응답이 정체될 수 있습니다. 전반적인 전송 속도가 빨라지도록 더 높은 max_concurrent_requests 값과 병렬 워크로드를 결합합니다. 기본적으로 AWS CLI는 멀티스레딩을 지원합니다.
참고: 시스템에 최대 동시 요청 수를 지원할 수 있는 충분한 리소스가 있는지 확인하십시오.
Amazon S3용 VPC 엔드포인트 사용
인스턴스가 Amazon S3 버킷과 동일한 AWS 리전에 있는 경우 Amazon Virtual Private Cloud(Amazon VPC) 게이트웨이 엔드포인트를 사용하십시오.
또한 인터넷 게이트웨이, NAT 디바이스 또는 VPN 연결 없이 VPC에 비공개로 연결할 수 있습니다. VPC의 인스턴스는 Amazon S3 버킷과 통신하는 데 퍼블릭 IP 주소가 필요하지 않습니다. Amazon VPC 엔드포인트를 사용하면 VPC와 Amazon S3 간의 데이터 트래픽이 AWS 네트워크에서 라우팅됩니다.
참고: Amazon S3용 Amazon VPC 엔드포인트는 서로 다른 AWS 리전 간의 요청을 지원하지 않습니다.
지리적으로 멀리 떨어진 리전 간 Amazon S3 Transfer Acceleration 사용
인스턴스와 Amazon S3 버킷이 지리적으로 가까운 리전에 있는 경우 데이터 전송 속도가 빨라질 수 있습니다. 인스턴스와 버킷이 지리적으로 멀리 떨어진 리전에 있는 경우 Amazon S3 Transfer Acceleration을 활성화하십시오. Amazon S3 Transfer Acceleration을 활성화하기 전에 Amazon S3 요금을 검토합니다.
Transfer Acceleration이 인스턴스의 데이터 전송 속도를 개선하는지 확인하려면 Amazon S3 Transfer Acceleration 속도 비교 도구를 사용하십시오.
참고: S3 Transfer Acceleration을 사용하는 경우 리전 전체에서 CopyObject API 호출을 사용할 수 없습니다.
Amazon EC2 인스턴스 유형 업그레이드
Amazon EC2 인스턴스 CPU 사용률이 높으면 데이터 전송 속도에 영향을 미칠 수 있습니다. 더 큰 메모리와 네트워크 성능을 제공하는 인스턴스 유형으로 인스턴스를 변경할 수 있습니다.
참고: Amazon EC2 인스턴스와 Amazon S3 간의 안정적인 네트워크 연결을 보장하려면 연결이 최소 10GiBps인 인스턴스 유형을 선택하십시오.
청크 전송 사용
대용량 파일을 전송하는 경우 멀티파트 업로드 및 범위가 지정된 HTTP 멀티파트 요청을 사용하십시오.
관련 정보
모범 사례 설계 패턴: Amazon S3 성능 최적화