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 |