ELK

ElasticSearch 클러스터 구성

25G 2023. 6. 11. 21:46

Es 는 기본적으로 고가용성 지원을 위해서 한대이상의 클러스터를 지원한다.

 

노드의 종류

마스터 노드 : 클러스터 상태 관리 및 메타데이터 관리

데이터 노드 : 문서 색인 및 검색 요청 처리

코디네이팅 노드 : 검색요청 처리

인제스트 노드: 색인되는 문서의 데이터 전처리

 

마스터 노드

마스터 노드는 실질적으로 마스터노드의 역할을하는 클러스터하나와 마스터노드는 한대밖에 없기때문에 이를 대체할 마스터 후보노드가 대기중이다.

 

사용자가 Es REST API에 마스터노드로 요청이 들어오면 그 다음 데이터노드에서 요청된 데이터를 검색해서 사용자에게 응답을 해주는 프로세스를 가지고 있다. 이때 불필요하게 마스터노드에서 데이터노드간에 통신이 발생하게 되기때문에 상황에 따라선 데이터노드에 바로 요청을 하는 것이 가능하다. 클러스터이기때문에 어느 노드에 어떤 역할을 하는 노드에 요청을해도 사용자는 동일한 응답을 받을 수 있다.

 

그렇기때문에 각각의 노드들이 본인의 역할에 충실할수 있도록 구성을 하는것이 클러스터를 구성할때 중요하다.

가령 로드벨런서를 앞단에둬서 클러스터별로 상황에 맞게 로드벨런싱을 해준다던지 하는 예시들이 있다.

 

 

인덱스와 샤드

하나의 인덱스는 반드시 하나 이상의샤드를 가집니다.

 

샤드는 문서가 색인되는 분리된 저장소입니다.

 

샤드 종류

프라이머리 샤드 : 문서가 저장되는 원본 샤드, 색이노가 검색 성능에 모두 영향을 줌

레플리카 샤드 : 프라이머리 샤드의 복제 샤드, 검색 성능에 영향을 줌 프라이머리 샤드에 문제가 생기면 레플리카 샤드가 프라이머리 샤드로 승격됩니다.

 

샤드의 라우팅

문서가 샤드에 저장되는 순서입니다.

문서가 들어올때마다 각 샤드에 알고리즘에 맞게 각각 고르게 문서가 저장이 되는데 이때 샤드의 개수가 바뀐다면 문서가 저장되는 규칙이 완전히 바뀌게 됩니다. 인덱스가 망가지기때문에 변경이 불가능, 그렇기때문에 프라이머리 샤드를 인덱스 생성시 아주 중요한 고려 상황이 되는것입니다. 기본값은 1개입니다. 아무 설정을 따로 하지 않으면 샤드가 1개만 인덱스에 생성되게 됩니다.

Routing Rule = 문서의 ID % 샤드의 개수 

인덱스템플릿을 활용해서 네이밍 패턴에 따라서 샤드의 설정을 템플릿처럼 관리할 수 있다 예를들면 log-* 로시작하는 인덱스의 샤드의 설정템플릿 을 관리하게 되는것이죠

 

 

 

 

'ELK' 카테고리의 다른 글

엘라스틱 서치 - 집계 정리  (0) 2023.11.06
엘라스틱 서치 검색 정리  (2) 2023.11.06
엘라스틱 스택  (0) 2023.11.06
ElasticSearch 색인/검색 동작과정  (0) 2023.06.11
ElasticSearch 색인/검색 동작과정  (0) 2023.06.11