CloudFront의 504 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

저는 콘텐츠를 제공하기 위해 Amazon CloudFront 배포를 사용하고 있습니다. 그러나 최종 사용자가 웹 브라우저를 통해 콘텐츠에 액세스하려고 하면 504 오류가 발생합니다. 이러한 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

CloudFront는 두 가지 유형의 504 오류를 반환합니다.

  • 504: 오리진에서 오류를 반환한 다음 CloudFront를 통해 최종 사용자에게 전달될 때 "게이트웨이 시간 초과" 오류가 발생합니다.
  • 504: 오리진이 할당된 시간 내에 CloudFront에 응답하지 않아 요청이 만료된 경우 "요청을 충족할 수 없음" 오류가 발생합니다.

발생하는 오류에 따라 관련 해결 방법 섹션을 참조하세요.

해결 방법

504: "게이트웨이 시간 초과" 오류

보안 그룹에 올바른 포트가 열려 있는지 확인합니다.

오리진 서버가 CloudFront로부터의 인바운드 트래픽(일반적으로 포트 443 또는 80)을 허용하는지 확인합니다.

오리진에서 Elastic Load Balancing을 사용하는 경우 ELB 보안 그룹을 검토합니다. 보안 그룹이 CloudFront로부터의 인바운드 트래픽을 허용하는지 확인합니다.

오리진 서버 방화벽이 CloudFront로부터의 연결을 허용하는지 확인

OS에 따라 방화벽이 포트 443과 80에 대한 트래픽을 허용하는지 확인합니다.

Redhat Linux View를 사용하는 경우 방화벽 규칙이 다음 설정과 일치하는지 확인합니다.

방화벽 규칙:

$ sudo firewall-cmd --permanent --zone=public --list-ports

규칙 영구 추가:

$ sudo firewall-cmd --permanent --zone=public --add-port=80/tcp       
$ sudo firewall-cmd --permanent --zone=public --add-port=443/tcp

Ubuntu Linux를 사용하는 경우 방화벽 규칙이 다음 설정과 일치하는지 확인합니다.

Ubuntu Linux View 방화벽 규칙:

$ sudo ufw status verbose

규칙 영구 추가:

$ sudo ufw allow 80
$ sudo ufw allow 443

Windows 서버에서 Windows 방화벽을 사용하는 경우 Microsoft 설명서의 방화벽 규칙 추가 또는 편집을 참조하세요.

인터넷을 통해 사용자 지정 서버에 액세스할 수 있는지 확인

CloudFront가 인터넷을 통해 오리진에 액세스할 수 없는 경우 CloudFront는 504 오류를 반환합니다. 인터넷 트래픽이 오리진에 연결될 수 있는지 확인하려면 HTTP 및 HTTPS 규칙이 다음 설정과 일치하는지 확인합니다.

HTTPS 트래픽의 경우:

nc -zv OriginDomainName/IP_Address 443
telnet OriginDomainName/IP_Address 443

HTTP 트래픽의 경우:

nc -zv OriginDomainName 80
telnet OriginDomainName 80

504: "요청을 충족할 수 없음" 오류

웹 애플리케이션의 일반적인 지연 시간 및 고부하 지연 시간 측정

다음 명령을 사용하여 웹 애플리케이션의 응답성을 측정합니다.

curl -w "DNS Lookup Time: %{time_namelookup} \nConnect time: %{time_connect} \nTLS Setup: %{time_appconnect} \nRedirect Time: %{time_redirect} \nTime to first byte: %{time_starttransfer} \nTotal time: %{time_total} \n" -o /dev/null https://www.example.com/yourobject

참고: https://www.example.com/yourobject의 경우 테스트 중인 웹 애플리케이션의 URL을 입력합니다.

출력은 다음과 유사합니다.

DNS Lookup Time: 0.212319   
Connect time: 0.371254   
TLS Setup: 0.544175  
Redirect Time: 0.000000   
Time to first byte: 0.703863   
Total time: 0.703994

요청 위치에 따라 지연 시간이 길어지는 단계를 해결합니다.

리소스 추가 또는 서버 및 데이터베이스 튜닝

서버에 최종 사용자 요청을 처리할 수 있는 충분한 CPU, 메모리 및 디스크 공간이 있는지 확인합니다.

백엔드 서버에서 지속적 연결을 설정합니다. 이러한 연결은 후속 요청을 위해 연결을 다시 설정해야 하는 경우 지연 시간을 단축합니다.

CloudFront 제한 시간 값 조정

이전 문제 해결 단계를 수행해도 HTTP 504 오류가 해결되지 않은 경우 오리진 응답 제한 시간에 대해 배포에 지정된 시간을 업데이트합니다.


관련 정보

HTTP 504 상태 코드(게이트웨이 시간 초과)

AWS 공식
AWS 공식업데이트됨 2년 전