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

최종 업데이트 날짜: 2020년 11월 3일

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

간략한 설명

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

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

해결 방법

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

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