배경
실무에서 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에서 제거하거나 인덱스를 삭제하는 것입니다.
이 방법은 검색 실패를 미연에 방지하고, 시스템의 안정성을 유지하는 데 도움이 됩니다.