Backend

왜 Elasticsearch 검색이 실패할까? 인덱스 Close와 Alias의 관계

산희 2024. 7. 4. 20:33

 

배경

실무에서 Elasticsearch를 사용하면서 index_closed_exception 오류를 경험한 적이 있습니다.

해당 에러는 ES에서 4XX대 응답을 내려주고 있지만 자칫하면 검색이 되지 않는 크리티컬한 상황이 될 수 있습니다.

 

 

위 다이어그램은 제게 이슈가 있었던 상황을 표현한 것입니다.

 

복수 개의 인덱스가 존재하고 공통 alias로 인덱스가 연결 되어있는 상태일 때

alias 연관 인덱스를 close 하고 alias 검색 시 close 인덱스에도 접근을 시도 하게 되어 index_closed_exception 예외가 발생하며 검색 요청이 실패합니다.

 

해결

 

원인은 close된 인덱스가 여전히 alias에 의해 참조되고 있어서 발생한 에러 입니다.

A closed index is blocked for read/write operations and does not allow all operations that opened indices allow. It is not possible to index documents or to search for documents in a closed index

 

 

이러한 문제를 피하기 위한 가장 좋은 방법은

인덱스를 close하기 전에 해당 인덱스를 공통 alias에서 제거하거나 인덱스를 삭제하는 것입니다.

 

이 방법은 검색 실패를 미연에 방지하고, 시스템의 안정성을 유지하는 데 도움이 됩니다.