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

3분 분량
0

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 페어를 포함하세요.


관련 정보

Amazon S3 문제 해결

AWS 공식
AWS 공식업데이트됨 4달 전
댓글 없음

관련 콘텐츠