웹 브라우저를 사용하여 Amazon Simple Storage Service(S3)에서 개체를 다운로드하려고 하는데 다운로드 속도가 느립니다.
해결 방법
웹 브라우저에서 Amazon S3의 다운로드 시간이 느려지는 원인을 확인하려면 다음과 같은 잠재적인 문제를 확인하세요.
낮은 인터넷 대역폭
인터넷 서비스 제공업체(ISP)로부터 받는 네트워크 속도를 확인하세요.
속도가 낮으면 S3 버킷에 연결하여 개체를 다운로드하려고 할 때 병목 현상이 발생할 수 있습니다.
큰 개체 크기
일부 S3 개체가 다른 개체보다 다운로드하는 데 시간이 더 오래 걸리는 경우 다운로드하는 데 시간이 더 오래 걸리는 개체의 크기를 확인하세요.
매우 큰 Amazon S3 개체의 경우 웹 브라우저에서 전체 개체를 다운로드하려고 할 때 다운로드 시간이 느려질 수 있습니다.
대신 Amazon S3 API를 사용하여 범위 GET 요청으로 큰 개체를 다운로드해 보세요.
범위 지정 GET 요청을 사용하면 큰 개체를 여러 개의 작은 청크로 나누어 다운로드할 수 있으므로 지연을 방지하는 데 도움이 됩니다.
클라이언트와 Amazon S3 버킷 사이의 지리적 거리
전 세계 여러 지역의 클라이언트가 S3 버킷에서 다운로드하는 경우, 해당 클라이언트의 위치가 다운로드 속도에 영향을 미칠 수 있습니다.
버킷의 AWS 리전으로부터 지리적으로 멀리 떨어져 있는 클라이언트는 다운로드 시간이 느려질 수 있습니다.
지리적으로 멀리 떨어진 클라이언트의 다운로드 시간을 개선하려면 다음과 같은 조치를 취할 수 있습니다.
-
Amazon CloudFront 배포에서 S3 개체를 서비스합니다.
CloudFront는 클라이언트와 지리적으로 더 가까운 엣지 로케이션에서 클라이언트에 서비스를 제공할 수 있으므로 대기 시간을 최소화할 수 있습니다.
-
버킷을 클라이언트와 지리적으로 더 가까운 리전으로 이동하세요.
리전 간 복제를 사용하여 소스 버킷의 개체를 다른 리전의 대상 버킷으로 복사할 수 있습니다.
중간 네트워크 관련 문제
패킷 손실, 높은 홉 수 또는 기타 ISP 관련 문제와 같은 네트워크 관련 문제는 Amazon S3 다운로드 시간에 영향을 줄 수 있습니다.
네트워크 관련 문제가 다운로드 속도 저하의 원인인지 확인하려면 mtr 및 traceroute와 같은 도구를 사용하세요.
이러한 도구는 원격 호스트로 패킷을 전송할 때 발생할 수 있는 네트워크 문제를 식별하는 데 도움이 될 수 있습니다.
예를 들어, 다음 traceroute 명령은 포트 80을 통해 us-east-1에 있는 Amazon S3 엔드포인트로 TCP 추적 경로를 보냅니다.
sudo traceroute -P TCP -p 80 s3.us-east-1.amazonaws.com
참고: 많은 네트워크 장치가 ICMP를 통해 응답하지 않으므로 TCP 추적 경로를 실행하는 것이 가장 좋습니다.
워크스테이션 리소스
워크스테이션 내에 전체 대기 시간을 유발할 수 있는 리소스 경합(예: CPU, 메모리 또는 네트워크 대역폭)이 없는지 확인합니다.
운영 체제에 따라 Resource Monitor(Microsoft 웹사이트) 또는 top 명령과 같은 도구를 사용하여 대부분의 클라이언트 시스템에서 리소스 사용량을 확인할 수 있습니다.
Amazon S3에서 처리 시간 분리
느린 다운로드 시간의 원인을 파악하는 데 도움이 되려면 Amazon S3에서 처리 시간을 분리하세요.
서버 액세스 로깅을 활성화한 다음 총 시간 동안 로그를 검토합니다.
Amazon S3에서 요청을 처리하는 데 걸리는 시간이 표시됩니다.
Amazon CloudWatch 지표 FirstByteLatency를 분석할 수도 있습니다.
FirstByteLatency는 Amazon S3가 클라이언트의 요청을 처리한 후 응답을 클라이언트에 전송하는 데 걸리는 시간을 보여줍니다.
이 CloudWatch 지표는 성능에 대한 버킷 수준의 관점을 제공합니다.
참고: Amazon S3 CloudWatch 요청 메트릭은 사용자 지정 메트릭과 동일한 요금으로 청구됩니다.