
클러스터와 노드 구성
cluster.name을 가져야 하나의 클러스터로 묶임하나의 서버에서 여러 클러스터 실행
cluster.name과 node.name을 지정하여, 동일 서버에서 서로 다른 클러스터에 속하는 노드를 실행할 수 있음디스커버리(Discovery)
discovery.seed_hosts를 통해 처음 네트워크 상의 노드를 찾아 동일 클러스터 여부를 확인하고 바인딩인덱스와 샤드 구조
Primary Shard와 Replica
샤드 개수 설정
number_of_shards는 인덱스 생성 시만 설정 가능하며, 이후 변경하려면 재색인이 필요number_of_replicas는 언제든지 변경 가능 (_settings API 통해 조정) 마스터 노드 (Master Node)
node.master: true면 후보가 될 수 있고, 기본 설정이기도 함node.master: true, node.data: false), 나머지는 마스터 기능 제외해 부담을 줄일 수 있음데이터 노드 (Data Node)
node.data: true/false) Split‑Brain 문제
minimum_master_nodes가 적절히 설정되지 않으면 네트워크 분리 시 클러스터가 두 개 생성될 수 있고, 이후 병합 시 데이터 불일치가 발생할 수 있음minimum_master_nodes = (total/2)+1 또는 Elasticsearch 7.x 이상에선 cluster.initial_master_nodes로 제어| 항목 | 핵심 요약 |
|---|---|
| 클러스터 구성 | 같은 cluster.name, discovery.seed_hosts 기반 노드 발견 및 결합 |
| 인덱스/샤드 구조 | 인덱스 = 도큐먼트 그룹. Primary + Replica 샤드를 통해 분산 저장 및 가용성 확보 |
| 샤드 설정 | shards는 생성 시 고정, replicas는 동적으로 조정 가능 |
| 노드 역할 분리 | 마스터 전용 노드(클러스터 관리), 데이터 노드(데이터 저장 및 처리)로 분리 |
| Split‑brain 방지 | 마스터 후보 노드는 홀수 구성, 최소 안정 노드 수 설정 필요 |