Amazon Elasticsearch Service에서 HTTP 504 게이트웨이 시간 초과 오류를 방지하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 3월 8일

Amazon Elasticsearch Service(Amazon ES)에서 504 게이트웨이 시간 초과 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

로드 밸런서는 각 Amazon ES 도메인을 전면에 위치해 데이터 노드에 수신되는 트래픽을 분산합니다. Amazon ES 요청이 유휴 제한 시간 내에 완료되지 않은 채로 성공 또는 실패 확인 메시지가 반환될 경우 로드 밸런서는 클러스터에 대한 TCP 연결을 닫습니다. 이 경우 대개 504 게이트웨이 시간 초과 오류가 발생합니다. 504 오류가 발생한다고 해서 반드시 클러스터에 문제가 있는 것은 아닙니다. 이 메시지는 유휴 제한 시간 내에 요청을 완료할 수 없음을 알리는 것뿐입니다.

게이트웨이 시간 초과 오류는 일반적으로 너무 많은 요청을 동시에 보내거나 복잡한 요청을 보낼 때 발생합니다. 두 경우 모두 결과는 동일합니다. 즉, Amazon ES가 유휴 제한 시간 내에 요청을 완료하지 못합니다.

​해결 방법

HTTP 504 게이트웨이 시간 초과 오류를 해결하려면 다음 방법을 하나 이상 사용하십시오.

  • Elasticsearch 인덱스에 대해 느림 로그를 활성화한 후 로깅 임계값을 지정합니다. 느림 로그는 특정 쿼리를 완료하는 데 시간이 너무 오래 걸리는 경우 이를 확인하는 데 유용합니다. 시간이 너무 오래 걸리는 쿼리가 있으면 해당 쿼리를 튜닝하여 504 오류를 해결합니다. 자세한 내용은 Amazon Elasticsearch Service 느림 로그 보기를 참조하십시오.
  • Amazon ES가 요청을 처리하기 위해 쿼리해야 하는 데이터의 양을 줄입니다. 그러면 요청을 완료하는 데 필요한 시간이 단축됩니다.
  • 더 큰 인스턴스 유형으로 전환합니다. 자세한 내용은 인스턴스 유형 선택 및 테스트를 참조하십시오.
  • 지수 백오프를 구성하고 애플리케이션에서 메커니즘을 재시도하여 시간 초과된 요청이 다시 전송되도록 합니다.
  • 개별 요청 대신 일괄 요청을 사용합니다. 그러면 클러스터의 요청당 오버헤드가 감소합니다.