내용으로 건너뛰기

온프레미스 클라이언트에서 Amazon S3로 데이터를 다운로드하거나 업로드할 때 느리거나 일관되지 않은 속도 문제를 해결하려면 어떻게 해야 합니까?

5분 분량
0

Amazon Simple Storage Service(Amazon S3)와 특정 네트워크 또는 온프레미스 클라이언트 간에 데이터를 다운로드하거나 업로드할 때 지연 시간이 발생합니다.

해결 방법

Amazon S3에서 다운로드하거나 업로드할 때 지연 시간을 식별하고 해결하려면 다음 구성을 검토하십시오.

요청하는 클라이언트의 위치

로컬 클라이언트와 최대한 지리적으로 가까운 Amazon S3 버킷을 사용하는 것이 좋습니다. 버킷이 요청과 지리적으로 멀리 떨어진 경우 응답 시간이 길어집니다.

클라이언트와 S3 버킷 간의 지리적 거리가 미치는 영향을 테스트하려면 다음 단계를 완료합니다.

  1. 버킷과 동일한 AWS 리전에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작합니다.
  2. 다른 리전에서 또 다른 인스턴스를 시작합니다.
  3. 두 인스턴스를 모두 사용하여 동일한 파일을 업로드하고 다운로드합니다.
  4. 두 리전 사이의 처리량을 비교합니다.

로컬 클라이언트와 S3 버킷 사이의 거리를 줄이려면 데이터를 클라이언트와 더 가까운 리전의 버킷으로 이동합니다. 교차 리전 복제(CRR)를 구성하여 소스 버킷 데이터를 새 리전에 있는 대상 버킷에 복제할 수 있습니다. 또는 클라이언트를 S3 버킷에 더 가깝게 마이그레이션합니다.

로컬 클라이언트의 ISP

네트워크 경로에 패킷 손실, 많은 홉 수 및 기타 인터넷 서비스 제공업체(ISP) 관련 문제가 있는지 검토하십시오. TCP 재전송, SSL 핸드셰이크 실패, DNS 확인 지연 또는 네트워크 프록시도 검토하십시오.

잠재적 패킷 손실과 원격 호스트로 보내는 패킷의 지연 시간을 확인하려면 mtrtraceroute와 같은 도구를 사용하십시오. 도구를 활용하면 네트워크 홉이 지연 시간을 늘리는지 여부도 확인할 수 있습니다. 예를 들어, 다음 Linux traceroute 명령은 TCP 포트 80을 사용하여 us-west-2(오레곤) 리전 엔드포인트에 대한 연결을 테스트합니다.

sudo traceroute -P TCP -p 80 s3.us-west-2.amazonaws.com

Windows 운영 체제(OS)의 경우 다음 tracert 명령을 실행합니다.

tracert -d -4 s3.amazonaws.com

참고: 많은 네트워크 디바이스가 Internet Control Message Protocol(ICMP)에 응답하지 않습니다. Amazon S3 요청과 유사한 테스트의 경우 버킷의 리전 엔드포인트에 TCP traceroute 또는 mtr을 실행합니다.

클라이언트에서 Amazon S3로 이동하는 인터넷 경로가 최적이 아닌 경우 Amazon CloudFront의 엣지 로케이션에 Amazon S3 Transfer Acceleration을 사용합니다. Amazon S3 Transfer Acceleration 속도 비교 도구를 사용하여 Transfer Acceleration이 성능을 개선할 수 있는지 확인합니다.

참고: Transfer Acceleration을 활성화하면 추가 데이터 전송 요금이 부과될 수 있습니다. 데이터 전송에 대한 Amazon S3 요금을 검토하십시오.

로컬 클라이언트의 네트워크

로컬 클라이언트 네트워크가 정상인지 확인하려면 내부 패킷 검사, 바이러스 백신 검사, 네트워크 액세스 관리를 검토합니다. 또한 클라이언트나 애플리케이션이 DNS 확인 및 캐싱을 처리하는 방법을 검토합니다. 장시간 동안 DNS 확인을 캐시하지 않는 것이 좋습니다.

Amazon S3 동기화 전송 속도가 느린 온프레미스 클라이언트의 지연 시간 및 성능 문제를 식별하려면 네트워크 진단 테스트를 사용합니다. 정기적으로 성능을 분석하여 잠재적 문제가 전송 속도에 영향을 미치기 전에 이를 탐지하는 것이 좋습니다.

참고: 보안 개선과 더 안정적인 데이터 전송을 위해 Amazon S3용 AWS PrivateLink를 사용하는 것이 좋습니다.

클라이언트의 리소스

요청을 보내는 호스트가 요청과 응답을 처리하는 방식 때문에 애플리케이션에서 지연 시간이 발생할 수 있습니다. 호스트 내에서 리소스 경합을 일으키지 않는 것이 좋습니다. 예를 들어 CPU, 메모리, 네트워크 대역폭과 관련된 리소스 경합이 있을 수 있습니다.

데이터를 전송하는 동안 리소스 사용량을 확인하려면 리소스 모니터나 top 명령과 같은 도구를 사용합니다. 자세한 내용은 Microsoft Learn 웹 사이트에서 리소스 모니터를 참조하십시오.

참고: 도구 사용 가능 여부는 운영 체제에 따라 다릅니다.

지연 시간이 발생하는 클라이언트 스토리지 디바이스에 대한 읽기 또는 쓰기 작업이 Amazon S3의 다운로드 또는 업로드 성능에 영향을 미칠 수 있습니다. 클라이언트 측에서 스토리지 디바이스의 IOPS 문제를 해결하려면 FirstByteLatency Amazon CloudWatch 지표를 사용하여 Amazon S3 성능을 분석하십시오.

참고: AWS는 Amazon S3 요청 지표를 사용자 지정 CloudWatch 지표와 동일한 요금으로 청구합니다. CloudWatch 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참조하십시오.

Amazon S3에 대한 요청 속도

기본적으로 S3 버킷에서는 파티셔닝된 접두사 당 1초에 수천 개의 요청을 지원할 수 있습니다. 클라이언트가 Amazon S3에서 HTTP 5xx 오류 응답을 받는 경우 접두사당 지원되는 요청 속도가 초과된 것입니다. 5xx 오류를 해결하려면 Amazon S3에서 발생하는 HTTP 500 또는 503 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

전역으로 분산된 AWS의 CloudFront 엣지 로케이션을 사용하여 전송 시간을 단축하려면 Amazon S3 Transfer Acceleration을 사용합니다.

네트워크 구성을 개선하고 전송 성능을 향상하려면 AWS Direct Connect를 사용합니다. 자세한 내용은 AWS 및 하이브리드 네트워크에서 성능 개선을 참조하십시오.

성능을 향상하는 설계 패턴은 Amazon S3의 성능 설계 패턴을 참조하십시오. AWS DataSync, AWS Snowball, AWS SnowconeAWS Transfer Family를 사용하여 대규모 데이터세트를 Amazon S3로 마이그레이션할 수 있습니다. 또는 AWS SDK 및 AWS Command Line Interface(AWS CLI)를 사용하여 효율적인 병렬 및 배치 전송 프로세스를 만들 수 있습니다. 대용량 파일에 멀티파트 업로드를 사용하려면 AWS CLI를 사용하여 Amazon S3에 대용량 파일을 업로드할 때 성능을 최적화하려면 어떻게 해야 합니까?를 참조하십시오.

반환 시간을 확인하는 Amazon S3 서버 액세스 로그

반환 시간 지표를 검토하려면 Amazon S3 서버 액세스 로깅을 활성화합니다. 반환 시간 지표에 대한 자세한 내용은 Amazon S3 서버 액세스 로그 형식반환 시간을 참조하십시오. 반환 시간 지표를 사용하여 작업에 걸리는 시간을 확인합니다. 그런 다음, Amazon S3 외부에서 다운로드 또는 업로드 속도를 느리게 할 수 있는 다른 지연 시간을 평가할 수 있습니다.

지연 시간이 예상보다 긴 경우 요청이 완료될 때까지 기다리지 말고 요청을 다시 시도하는 것이 좋습니다. 자세한 내용은 Amazon S3의 성능 지침을 참조하십시오.

파일 전송 활동

TotalRequestLatency 지표를 사용하여 요청당 경과된 시간을 추적할 수 있습니다. S3 버킷이 수신한 첫 바이트에서 로컬 클라이언트가 버킷으로 보내는 마지막 바이트까지의 시간입니다. 잠재적 성능 문제를 확인하려면 GetRequestsPutRequests 지표와 4xx 및 5xx 상태 코드를 확인합니다.

참고: AWS는 Amazon CloudWatch 사용자 지정 지표와 동일한 요율로 GetRequestsPutRequests 지표 요금을 청구합니다.

관련 정보

CloudWatch의 Amazon S3 요청 지표

Amazon S3용 AWS CLI 동기화 명령을 사용하여 데이터 전송 성능을 개선하려면 어떻게 해야 합니까?

AWS 공식업데이트됨 6달 전