Elasticsearch 클러스터 개요

📌 Elasticsearch는 분산형 검색 및 데이터 저장 시스템으로, 여러 개의 **노드(Node)**가 모여 **클러스터(Cluster)**를 형성합니다.
각 노드는 역할(Role)에 따라 **마스터 노드(Master Node)**와 **데이터 노드(Data Node)**로 구분됩니다.


마스터 노드 (Master Node)

(1) 마스터 노드의 역할

  • 클러스터의 전반적인 상태(Cluster State) 관리
  • 인덱스 및 샤드(Shard) 할당 관리
  • 노드 추가 및 삭제 관리
  • 클러스터 설정 변경

마스터 노드는 검색 및 데이터 저장이 아닌 클러스터 관리 역할만 수행합니다.


(2) 마스터 노드 설정

Elasticsearch에서는 기본적으로 모든 노드가 마스터 후보(Master Eligible Node)로 동작할 수 있습니다.
그러나 대규모 클러스터에서는 마스터 전용 노드를 별도로 운영하는 것이 성능상 유리합니다.

🔹 마스터 노드만 수행하도록 설정

node.master: true
node.data: false
  • 마스터 노드로만 동작하고 데이터 저장 기능은 수행하지 않음.

🔹 마스터 후보 노드에서 제외

node.master: false
  • 해당 노드는 마스터 후보에서 제외되며, 데이터 노드 또는 다른 역할을 수행.

데이터 노드 (Data Node)

(1) 데이터 노드의 역할

  • 실제 데이터를 저장하고 관리
  • 색인(Indexing) 및 검색(Query) 실행
  • 프라이머리 샤드 및 복제본 저장

데이터 노드는 클러스터에서 가장 많은 리소스를 소비하는 노드이며, CPU, 메모리, 디스크 I/O 성능이 중요합니다.


(2) 데이터 노드 설정

마스터 역할을 하지 않고 데이터 노드로만 동작하도록 설정할 수 있습니다.

🔹 데이터 노드 전용 설정

node.master: false
node.data: true
  • 해당 노드는 데이터 저장만 수행하며, 클러스터 관리 역할을 하지 않음.

마스터 노드와 데이터 노드 분리 예제

(1) 4개의 노드 구성 예시

노드 이름 역할

Node-1 마스터 노드 (Master Node)
Node-2 데이터 노드 (Data Node)
Node-3 데이터 노드 (Data Node)
Node-4 데이터 노드 (Data Node)

(2) 설정 파일 예제

🔹 마스터 노드 설정 (Node-1)

node.name: "node-1"
node.master: true
node.data: false

🔹 데이터 노드 설정 (Node-2, Node-3, Node-4)

node.name: "node-2"
node.master: false
node.data: true

이렇게 설정하면 마스터 노드는 클러스터 관리를 담당하고, 데이터 노드는 데이터 저장과 검색을 수행.


Split Brain 문제와 해결 방법

(1) Split Brain이란?

  • 네트워크 장애(Network Partition)로 인해 마스터 후보 노드들이 서로 다른 클러스터로 분리되는 현상.
  • 두 개 이상의 클러스터가 독립적으로 작동하면 데이터 정합성 문제 발생 가능.

(2) Split Brain 방지 방법

  • 마스터 후보 노드를 3개 이상, 홀수 개로 설정.
  • 마스터 후보 노드가 최소 과반수 이상일 때만 클러스터 유지.

🔹 예제: 마스터 후보 노드 설정 (최소 3개)

cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

이렇게 하면 마스터 노드가 2개 이상 존재할 때만 클러스터가 정상 동작.


마스터 노드와 데이터 노드의 장단점

유형 장점 단점

마스터 전용 노드 클러스터 관리 성능 향상 추가적인 노드 운영 필요
데이터 전용 노드 색인 및 검색 성능 최적화 클러스터 관리 부담 증가
마스터 + 데이터 혼합 노드 초기 소규모 클러스터 운영 가능 클러스터 확장 시 성능 저하 가능

결론

  • 마스터 노드는 클러스터 관리만 담당하고, 데이터 저장을 하지 않음.
  • 데이터 노드는 색인과 검색을 수행하며, 대량의 데이터를 저장.
  • Split Brain 방지를 위해 마스터 후보 노드는 3개 이상(홀수 개)로 설정.
  • 대규모 클러스터에서는 마스터 노드와 데이터 노드를 분리하여 운영하는 것이 성능적으로 유리.

 

'Elastic Search > Elastic 시스템 구조' 카테고리의 다른 글

[Elasticsearch] 클러스터 구성  (0) 2025.02.01
[Elasticsearch] Index & Shards  (0) 2025.02.01

+ Recent posts