Amazon S3에서 발생한 HTTP 500 또는 503 오류에 대한 해결 방법은 무엇입니까?

최종 업데이트 날짜: 2022년 11월 23일

Amazon Simple Storage Service(S3)로 요청을 보내면 Amazon S3에서 5xx 상태 오류가 발생합니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

Amazon S3는 다음 5xx 상태 오류 중 하나를 반환할 수 있습니다.

  • AmazonS3Exception: Internal Error (Service: Amazon S3; Status Code: 500; Error Code: 500 Internal Error; Request ID: A4DBBEXAMPLE2C4D)
  • AmazonS3Exception: Slow Down (Service: Amazon S3; Status Code: 503; Error Code: 503 Slow Down; Request ID: A4DBBEXAMPLE2C4D)

오류 코드 500 Internal Error는 Amazon S3이 요청을 그 당시에 해결하지 못했다는 의미입니다. 오류 코드 503 Slow Down은 일반적으로 S3 버킷에 대한 요청 수가 매우 많음을 나타냅니다. 예를 들어, S3 버킷에서 접두사마다 초당 3,500개의 PUT/COPY/POST/DELETE 요청 또는 5,500개의 GET/HEAD 요청을 전송할 수 있습니다. 하지만 일부 경우에는 요청이 교차 리전 복사에 사용할 수 있는 대역폭의 양을 초과할 때 Amazon S3가 503 Slow Down 응답을 반환할 수 있습니다.

Amazon S3는 배포된 서비스이기 때문에 일반적으로 서비스를 사용하는 동안에는 5xx 오류의 발생 확률이 매우 낮습니다. Amazon S3에서 5xx 오류를 반환하는 모든 요청은 다시 시도할 수 있습니다. 즉, Amazon S3에 요청하는 애플리케이션에 대해 내결함성 메커니즘을 사용하거나 재시도 로직을 구현하는 것이 모범 사례입니다. 이렇게 하면 S3에서 이러한 오류를 복구할 수 있습니다.

5xx 상태 오류를 해결하거나 방지하려면 다음 접근 방식을 고려하세요.

  • 요청을 만드는 애플리케이션의 재시도 매커니즘을 사용합니다.
  • 애플리케이션을 구성하여 점진적으로 요청률을 높입니다.
  • 다수의 접두사에 객체를 분산합니다.
  • 5xx 오류 응답 수를 모니터링합니다.

참고: Amazon S3는 새 접두사마다 추가 리소스를 할당하지 않습니다. 리소스는 호출 패턴에 따라 자동으로 크기 조정됩니다. 요청률이 높아지면 Amazon S3가 새 요청률에 맞추어 동적으로 최적화합니다.

해결 방법

요청을 만드는 애플리케이션의 재시도 매커니즘 사용

Amazon S3의 분산 성질 때문에 500 또는 503 오류를 반환하는 요청이 재시도될 수 있습니다. Amazon S3로 요청하는 애플리케이션에 재시도 논리를 빌드할 수 있는 모범 사례입니다.

모든 AWS SDK에는 지수 백오프를 사용하는 알고리즘이 적용된 재시도 메커니즘이 내장되어 있습니다. 이 알고리즘은 오류 응답이 연이어 나올 때마다 재시도 간 대기 시간을 점진적으로 늘립니다. 대부분의 지수 백오프 알고리즘은 지터(임의 지연)를 사용하여 연쇄 충돌을 방지합니다. 자세한 내용은 AWS의 오류 재시도 및 지수 백오프를 참조하세요.

애플리케이션을 구성하여 점진적으로 요청률을 높입니다.

503 Slow Down 오류를 피하려면 낮은 요청률(초당 트랜잭션)에 시작할 수 있도록 애플리케이션을 구성합니다. 그런 다음 애플리케이션 요청률을 기하급수적으로 늘리십시오. Amazon S3는 자동적으로 높은 요청률을 처리하기 위해 조정합니다.

다수의 접두사에 객체를 분산합니다.

성능 지침 및 설계 패턴에 기재된 요청 빈도는 S3 버킷의 접두사당 적용합니다. 전체적으로 더 높은 요청률을 처리하기 위해서 버킷을 설정하고 503 Slow Down 오류를 피하려면 다수의 접두사 객체를 분산할 수 있습니다. 예를 들어, S3 버킷을 사용하여 이미지 및 비디오를 저장하려면 이 파일을 다음과 비슷한 두 접두사로 분산할 수 있습니다.

  • mybucket/images
  • mybucket/videos

접두사의 요청 비율이 점진적으로 증가하면, Amazon S3는 두 개별 접두사에 대한 요청을 처리하도록 확장됩니다. S3는 초당 3,500건의 PUT/POST/DELETE 또는 5,500개의 GET 요청을 처리하도록 확장됩니다. 결과적으로 버킷이 처리하는 전반적인 요청률이 두 배로 높아집니다.

5xx 상태 오류 응답 수 모니터링

수신되는 5xx 상태 오류 응답의 수를 모니터링하려면 다음 옵션 중 하나를 사용하면 됩니다.

추가 문제 해결

5xx 상태 오류 발생률이 계속 높은 경우 AWS Support에 문의하세요. 5xx 상태 오류 코드로 인해 실패한 요청의 Amazon S3 요청 ID 페어를 포함하세요.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?