상위: Elasticsearch
요약
Elasticsearch의 Docker 기반 설치 방법과 주요 환경 설정(Cluster, Node, Network, JVM)에 대해 설명합니다.
Docker 기반 설치
장점
- OS 환경 격리
- 환경 세팅 단순화 및 재현성 보장
- Docker Compose를 활용한 멀티 컨테이너 환경 구성 용이
Docker Compose 예시
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.1
container_name: es01
environment:
- node.name=es01
- cluster.name=elastic-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- node.roles=master,data,ingest
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- shared_esdata:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
volumes:
shared_esdata:
networks:
elastic:
주요 설정
Cluster & Node
cluster.name: 클러스터 식별자. 동일한 이름을 가진 노드들이 클러스터를 형성합니다.node.name: 노드 식별자.node.roles: 노드의 역할 지정 (master, data, ingest 등).
Discovery
discovery.seed_hosts: 클러스터에 합류하기 위해 통신할 다른 노드들의 주소 목록.cluster.initial_master_nodes: 클러스터가 처음 시작될 때 마스터로 선출될 수 있는 노드 목록 (부트스트랩 시 필수).
Memory (JVM)
ES_JAVA_OPTS: JVM 힙 메모리 설정.-Xms,-Xmx를 동일하게 설정하는 것을 권장합니다 (최대 32GB 이하, 시스템 메모리의 50% 이하).
Network & Paths
network.host:0.0.0.0으로 설정하여 외부 접근 허용.path.data: 데이터 저장 경로 (볼륨 마운트 권장).path.logs: 로그 저장 경로.