HTTP 503 상태 코드(Service Unavailable)
HTTP 503 상태 코드(Service Unavailable)는 일반적으로 오리진 서버의 성능 문제를 나타냅니다. 드물지만 이 상태 코드가 엣지 로케이션의 리소스 제한 때문에 CloudFront가 일시적으로 요청을 충족할 수 없음을 나타냅니다.
Lambda@Edge 또는 CloudFront Functions를 사용하는 경우 문제는 실행 오류 또는 Lambda@Edge 제한 초과 오류일 수 있습니다.
오리진 상호 TLS(오리진 mTLS)를 사용하는 경우, 특정 인증서와의 연결 설정 시도가 반복적으로 실패하여 문제가 발생했을 수 있습니다.
주제
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 로드 테스트 지침을 따르세요.
프로덕션 환경에서 이러한 오류가 발생하면 지원
상호 TLS가 구성된 오리진으로 인해 CloudFront에서 오류가 발생함
배포에서 상호 TLS(mTLS)를 사용하여 사용자 지정 오리진에 연결하는 경우, CloudFront는 오리진에 대한 연결을 설정할 수 없을 때 HTTP 503 상태 코드를 반환할 수 있습니다. 이는 오리진이 반복적으로 TLS 핸드셰이크를 완료하지 못하거나 DNS 또는 연결 문제로 인해 오리진에 연결할 수 없는 경우 발생할 수 있습니다. 이 상태는 일시적인 것이며, 오리진에 다시 연결할 수 있게 되면 CloudFront는 자동으로 정상적인 트래픽 처리를 재개합니다.
이 문제를 해결하려면:
-
올바른 클라이언트 인증서가 배포와 연결되어 있고 만료되지 않았는지 확인하세요. 최근에 인증서를 업데이트했다면 변경 사항이 전파되어 적용되기까지 시간이 걸릴 수 있습니다.
-
오리진에 연결할 수 있고 DNS 레코드가 올바르게 확인되는지 점검합니다.
프로덕션 환경에서 적절한 인증서를 구성해도 문제가 지속되면 지원
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 서비스 할당량을 확인할 수 있습니다.