상위: Elasticsearch
요약
노드(Node)는 Elasticsearch 클러스터의 개별 실행 인스턴스로, 데이터 저장, 색인, 검색 등의 역할을 수행합니다.
노드 유형 (Node Roles)
Master Node
- 역할: 클러스터 상태 관리 (인덱스 생성/삭제, 노드 추가/제거 등).
- 중요성: 클러스터의 안정성을 책임지며, 최소 3개 이상의 마스터 후보 노드 구성을 권장합니다 (Split Brain 방지).
Data Node
- 역할: 실제 데이터(Shard)를 저장하고 CRUD, 검색, 집계 작업을 수행합니다.
- 리소스: CPU, 메모리, I/O 리소스를 많이 소모합니다.
Ingest Node
- 역할: 색인 전에 데이터를 전처리(필터링, 변환, 정제)하는 파이프라인을 실행합니다.
- Logstash 대안: 간단한 전처리는 Logstash 없이 Ingest Node에서 처리 가능합니다.
Coordinating Node
- 역할: 클라이언트의 요청을 받아 적절한 샤드로 라우팅하고, 검색 결과를 취합(Reduce)하여 응답합니다.
- 부하 분산: 대규모 클러스터에서 검색 요청 처리를 전담하여 데이터 노드의 부하를 줄일 수 있습니다.
클러스터 내 기타 요소
Routing Table
- 어떤 노드가 어떤 샤드를 가지고 있는지 관리
- Coordinating Node가 요청을 적절한 샤드로 전달할 때 사용
Gateway
- 클러스터 상태와 인덱스를 저장
- 장애 발생 시 복구 지원
Discovery Module
- 새로운 노드가 기존 클러스터에 정상 합류하도록 관리
- 상태 변경 추적