HTTP 503 상태 코드(Service Unavailable) - Amazon CloudFront

HTTP 503 상태 코드(Service Unavailable)

HTTP 503 상태 코드(Service Unavailable)는 일반적으로 오리진 서버의 성능 문제를 나타냅니다. 드물지만 이 상태 코드가 엣지 로케이션의 리소스 제한 때문에 CloudFront가 일시적으로 요청을 충족할 수 없음을 나타냅니다.

Lambda@Edge 또는 CloudFront Functions를 사용하는 경우 문제는 실행 오류 또는 Lambda@Edge 제한 초과 오류일 수 있습니다.

Origin server does not have enough capacity to support the request rate

오리진 서버를 사용할 수 없거나 수신된 요청을 처리할 수 없는 경우, HTTP 503 상태 코드(서비스 사용 불가)가 반환됩니다. 그런 다음 CloudFront가 다시 사용자에게 오류를 전달합니다. 이 문제를 해결하려면 다음 솔루션을 시도해 보십시오.

  • Amazon S3를 오리진 서버로 사용하는 경우:

    • 분할된 Amazon S3 접두사별로 초당 최소 3,500개의 PUT/COPY/POST/DELETE 또는 5,500개의 GET/HEAD 요청을 전송할 수 있습니다. Amazon S3에서 503 Slow Down 응답을 반환하는 경우 이는 일반적으로 특정 Amazon S3 접두사에 대한 요청 빈도가 너무 높음을 나타냅니다.

      요청 요금은 S3 버킷의 접두사별로 적용되므로 객체를 여러 접두사에 분산해야 합니다. 접두사의 요청 빈도가 점차 증가함에 따라 Amazon S3는 각 접두사에 대한 요청을 개별적으로 처리하도록 스케일 업니다. 결과적으로, 버킷이 처리하는 전체 요청 빈도는 접두사 수의 배수입니다.

    • 자세한 내용은 Amazon Simple Storage Service 사용 설명서Amazon S3 성능 최적화를 참조하세요.

  • Elastic Load Balancing을 오리진 서버로 사용하는 경우:

    • 백엔드 인스턴스가 상태 확인에 응답할 수 있는지 확인합니다.

    • 로드 밸런서와 백엔드 인스턴스가 부하를 처리할 수 있는지 확인합니다.

    자세한 내용은 다음을 참조하세요.

  • 사용자 지정 오리진을 사용하는 경우:

    • 애플리케이션 로그를 검사하여 오리진에 메모리, CPU, 디스크 크기 등의 리소스가 충분한지 확인합니다.

    • Amazon EC2를 백엔드로 사용하는 경우 인스턴스 유형에 수신 요청을 충족하는 적절한 리소스가 있는지 확인합니다. 자세한 내용을 알아보려면 Amazon EC2 사용 설명서인스턴스 유형을 참조하세요.

  • API Gateway를 사용하는 경우:

    • 이 오류는 API Gateway API가 응답을 받을 수 없는 경우의 백엔드 통합과 관련이 있습니다. 백엔드 서버는 다음과 같을 수 있습니다.

      • 용량을 초과하여 과부하가 걸려 새 클라이언트 요청을 처리할 수 없습니다.

      • 임시 유지 관리 중입니다.

    • 이 오류를 해결하려면 API Gateway 애플리케이션 로그를 살펴보고 백엔드 용량, 통합 등에 문제가 있는지 확인합니다.

엣지 위치에서의 리소스 제약 조건으로 인해 CloudFront에서 오류가 발생함

드문 경우지만 CloudFront가 사용 가능한 차선의 엣지 로케이션으로 요청을 라우팅할 수 없어서 요청을 충족할 수 없는 경우에 이 오류가 발생합니다. 이 오류는 CloudFront 배포에 대한 로드 테스트를 수행할 때 흔히 발생합니다. 이러한 오류를 방지하려면 503(용량 초과) 오류 방지를 위한 CloudFront 로드 테스트 지침을 따르세요.

프로덕션 환경에서 이러한 오류가 발생하면 AWS Support에 문의하세요.

Lambda@Edge 또는 CloudFront Functions 실행 오류

Lambda@Edge 또는 CloudFront 함수를 사용하는 경우, HTTP 503 상태 코드는 함수가 실행 오류를 반환했음을 나타낼 수 있습니다.

Lambda@Edge 오류를 식별하고 해결하는 방법에 대한 자세한 내용은 Lambda@Edge 함수 테스트 및 디버깅 섹션을 참조하세요.

CloudFront Functions 테스트에 대한 자세한 내용은 함수 테스트 섹션을 참조하세요.

Lambda @Edge 제한 초과

Lambda@Edge를 사용하는 경우 HTTP 503 상태 코드는 Lambda가 오류를 반환했음을 나타낼 수 있습니다. 오류는 다음 중 하나로 인해 발생할 수 있습니다.

  • 함수 실행 수가 AWS 리전에서 실행을 제한하기 위해 Lambda가 설정한 할당량(동시 실행 또는 간접 호출 빈도) 중 하나를 초과했습니다.

  • 함수가 Lambda 함수의 제한 시간 할당량을 초과했습니다.

Lambda@Edge 할당량에 대한 자세한 내용은 Lambda@Edge에 대한 할당량 섹션을 참조하세요. Lambda@Edge 오류를 식별하고 해결하는 방법에 대한 자세한 내용은 Lambda@Edge 함수 테스트 및 디버깅 섹션을 참조하세요. AWS Lambda 개발자 안내서에서도 Lambda 서비스 할당량을 확인할 수 있습니다.