Gokul 씨가 Classic Load Balancer
사용 시 발생하는 504 오류를
해결하는 방법을 보여줍니다.

504-error-classic-gokul

Classic Load Balancer 액세스 로그 또는 Amazon CloudWatch 지표에 HTTP 504 오류가 표시되거나 Classic Load Balancer를 통해 서비스에 연결할 때 이 오류가 발생합니다. 해결하려면 어떻게 해야 합니까?

HTTP 504 오류는 게이트웨이 또는 프록시 제한 시간이 초과되었음을 나타내는 HTTP 상태 코드입니다. 이 문제를 해결할 때 다음을 조사하십시오.

로드 밸런서의 유휴 제한 시간을 확인한 후 필요한 경우 수정

로드 밸런서가 HTTP 504 오류를 반환하는 가장 일반적인 이유는 해당 백엔드 인스턴스가 현재 구성된 유휴 제한 시간 내에 요청에 응답하지 않았기 때문입니다. 기본적으로 Classic Load Balancer의 유휴 제한 시간은 60초입니다.

CloudWatch 지표를 사용하는 경우 로드 밸런서를 위한 CloudWatch 지표 보기를 참조하십시오. 지연 시간 데이터 요소가 현재 구성된 로드 밸런서 제한 시간 값과 같고 HTTPCode_ELB_5XX 지표에 데이터 요소가 있는 경우 하나 이상의 요청 시간이 초과된 것입니다.

이 문제를 해결하려면 HTTP 요청이 유휴 제한 시간 내에 완료되도록 로드 밸런서의 유휴 제한 시간을 수정하거나 더 빠르게 응답하도록 애플리케이션을 조정하십시오.

백엔드 인스턴스가 연결을 열어놓은 상태로 유지하는지 확인

로드 밸런서가 해당 유휴 제한 시간 값에 도달하기 전에 백엔드 인스턴스가 로드 밸런서에 대한 TCP 연결을 종료한 경우 로드 밸런서가 요청을 수행하지 못할 수 있으므로 HTTP 504 오류가 발생합니다.

이 문제를 해결하려면 백엔드 인스턴스에서 keep-alive 설정을 활성화하고 keep-alive 제한 시간을 로드 밸런서의 유휴 제한 시간보다 큰 값으로 설정하십시오.

TCP_DEFER_ACCEPT 사용 안 함(Apache에만 해당)

Apache 백엔드 인스턴스에 대해 TCP_DEFER_ACCEPT를 활성화하면 로드 밸런서가 SYN을 백엔드 인스턴스에 보냄으로써 연결을 시작합니다. 그러면 백엔드 인스턴스가 SYN-ACK를 사용하여 응답하고, 로드 밸런서는 백엔드 인스턴스에 빈 ACK를 보냅니다.

마지막 ACK는 비어 있으므로 백엔드가 ACK를 수락하지 않고 대신, 로드 밸런서에 SYN-ACK를 다시 보냅니다. 이로 인해 후속 SYN의 재시도 시간 초과가 발생할 수 있습니다. 백엔드 인스턴스가 로드 밸런서에 FIN 또는 RST를 전송하지 않고 연결을 종료하면 로드 밸런서는 그런 상황이 발생하지 않았을 때에도 설정할 연결을 고려합니다. 그런 다음 로드 밸런서가 이 TCP 연결을 통해 요청을 보내는 경우 백엔드는 RST를 사용하여 응답하므로 HTTP 504 오류가 발생합니다.

이 문제를 해결하려면 AcceptFilter httpAcceptFilter https를 둘 다 none으로 설정하십시오.

이벤트 MPM을 비활성화하고, 프리포크 및 작업자 MPM을 최적으로 구성(Apache에만 해당)

로드 밸런서에 등록된 백엔드 인스턴스에서 이벤트 MPM을 사용해서는 안 됩니다. Apache 백엔드가 연결을 동적으로 종료하기 때문입니다. 그러면 HTTP 504 오류가 발생하여 클라이언트로 전송됩니다.

프리포크작업자 MPM을 사용할 때 최적의 성능을 얻으려면 로드 밸런서가 60초의 유휴 제한 시간으로 구성된 것으로 가정하고, 다음 값을 사용하십시오.

 

mod_prefork MPM

mod_worker MPM

 

Timeout

65

65

 

KeepAliveTimeout

65

65

 

KeepAlive

On

On

 

MaxKeepAliveRequests

10000

0

 

AcceptFilter http

none

none

 

AcceptFilter https

none

none

 

페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2016년 9월 15일

업데이트된 날짜: 2018년 3월 21일