검색엔진/ElasticSearch

ElasticSearch 1대로 사용할 때 인덱스 Health가 yellow인 경우?

ZzangHo 2022. 2. 17. 17:10
728x90

로컬에서 테스트를 해보기 위해 ElasticSearch 1대를 띄워서 색인을 진행해 보았다.

그런데 다음과 같이 Index들의 Health 상태가 다 Yellow가 된 것이 아닌가?

health yellow상태

 

이유는?

이유는 생각보다 간단하다. 바로 Primaries와 Replicas가 모두 1이여서 발생한 현상이다.

 

무슨 소리?

 

ES의 경우 Primary Shard와 Replica Shard가 같은 노드에 존재를 할 수가 없다. 그로 인해 Replica를 할당하지 못해 Replica가 Unassigned 상태가 되어 Health 상태가 Yellow로 된 것이다.

 

왜 같은 노드에 존재 하면 안 될까?

 

그 이유는 바로 Replica Shard의 경우 해당 노드에 장애가 생겨 Primary Shard가 정상적으로 작동하지 못할 때 Replica Shard를 다시 Primary Shard로 사용을 해야 하는데 같은 노드에 있다면 Primary, Replica Shard 모두 날아가는 데이터 유실 상태이기 때문이다. 

 

해결책!

해결책은 두가지가 있겠다.

  1. ES 노드를 추가한다.
  2. Replica 설정 값을 0으로 바꾼 뒤 다시 재색인 한다.

Replicas 값을 0으로 바꾼 뒤 재색인