본문 바로가기
프로그래밍/ELK

[ElasticSearch] 노드, 인덱스, 샤드 기본 개념

by 뽀도 2022. 7. 13.

● 노드 

노드란? → 컴퓨터 과학에 쓰이는 기초적인 단위, 대형 네트워크에서는 장치나 데이터 지점을 의미함.

엘라스틱 서치에는 4종류의 노드가 있고 노드마다 하는 일이 다르다. 

 

 

* ElasticSearch는 아무리 작은 클러스터라도 데이터 가용성과 무결성을위해 최소 3개의 노드로 구성할것을 권장합니다.

 

엘라스틱 서치의 4가지 노드 


1. 마스터 노드 (MasterNode)

 

-  클러스터를 관리한다.

- 노드 추가와 제거 같은 클러스터의 전반적인 관리를 담당

- 네트워크 속도가 빠르고, 지연이 없는 노드를 마스터 노드로 선정해야함.

 

elasticsearch.yml 설정

node.master: true
node.data: false
node.ingest: false
node.remote.connect: false

2. 데이터 노드 (DataNode)

 

- 실질적인 데이터 저장

- 검색과 통계 같은 데이터 관련 작업 수행

- cpu, 메모리, 스토리지 같은 컴퓨팅 리소스를 많이 사용

- 데이터 노드와 마스터 노드는 가능한 분리, 단 색인할 문서 수가 적으면 함께 구성해도됨.

 

elasticsearch.yml 설정

node.master: false
node.data: true
node.ingest: false
node.remote.connect: false

3. 코디네이팅 노드(Coordinating Node)

 

- 사용자의 요청만 받아서 처리

- 클러스터 관련 요청은 마스터 노드에 전달하고 데이터 관련 요청은 데이터 노드에 전달

 

elasticsearch.yml 설정

node.master: false
node.data: false
node.ingest: false
search.remote.connect: false

4. 인제스트 노드(Ingest Node)

- 문서의 전처리 작업 담당

- 인덱스 생성 전 문서의 형식을 다양하게 변경 

 

elasticsearch.yml 설정

node.master: false
node.data: false
node.ingest: false
search.remote.connect: false

● 인덱스 

데이터 저장 공간, 하나의 인덱스는 하나의 타입만 가진다.

하나의 물리적인 노드에 여러개의 논리적인 인덱스 생성가능.

엘라스틱 서치를 분산환경으로 구성하면 하나의 인덱스가 여러 노드에 분산 되어 저장됨.

기본적으로 5개의 프라이머리 샤드와 1개의 레플리카 샤드 세트로 생성.

 

☆ 인덱스 이름은 소문자

☆ 추가, 수정, 삭제 검색은 Restful API로 수행가능

☆ 만약 인덱스가 없는 상태에서 데이터가 추가되면 데이터를 이용해 데이터가 자동 생성

 


● 샤드 

인덱스 내부의 색인된 데이터를 물리적인 공간, 여러개의 파티션으로 나누어 저장하는데

이 파티션을 샤드라 부른다.

 

엘라스틱 서치는 다수의 샤드로 문서를 분산 저장하고 있어 데이터 손실 위험이 적다.


클러스터와 노드 구성도

 

 

 


 

참고)

[책] 엘라스틱서치 실무가이드 . 

[사이트] http://guruble.com/elasticsearch-2-shard-replica/

반응형

댓글