Elasticsearch 설치

Yangray·2025년 5월 21일

Elasticsearch

목록 보기
1/3
post-thumbnail

Elasticsearch를 설치하는 방법은 OS마다 방식이 다 다르기 때문에
OS환경과 상관없이 간편하고 일관되게 설치하기 위해 Docker를 활용해 설치한다.

1. Docker 설치

Docker를 활용하기 위해 우선 내 PC에 Docker가 설치가 되어 있어야 한다.
내 PC OS는 Window 이기 때문에 Window에서 설치하는 방법으로 설치를 해보았다.

우선 Docker를 설치전 환경 설정이 필요하다.

Docker를 사용하기 위해서 가상화 기술인 Hyper-V를 활성화 시켜야 한다.

제어판> 프로그램 및 기능 > Windows 기능 켜기 / 끄기 클릭 Hyper-V 체크 > 확인 후 컴퓨터 리부팅

그 다음 Docker 설치파일 다운로드 및 설치.

Docker 공식 다운로드 페이지

위 사이트에서 Docker 설치 파일을 다운로드 받는다.



Docker Desktop 실행 시킨다.
Docker 회원가입을 한다.

2. Elasticseach 설치

docker-compose.yml 파일 생성

services:
  elastic:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.17.4 
    ports:
    - 9200:9200 # 9200번 포트에서 Elasticsearch 실행
    environment:
    # 아래 설정은 개발/테스트 환경에서 간단하게 테스트하기 위한 옵션 (운영 환경에서는 설정하면 안 됨)
    - discovery.type=single-node # 단일 노드
    - xpack.security.enabled=false # 보안 설정
    - xpack.security.http.ssl.enabled=false # 보안 설정

yml 파일이 있는 directory에서 docker compose up 명령어 실행

 In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Ddocker-elasticsearch%22%3Atrue%7D%7D&limit=0": open //./pipe/docker_engine: The system cannot find the file specified.
  • 참고 : Docker가 실행 되지 않아서 Docker를 실행 시켜서 다시 명령어 실행
Ports are not available: listen tcp 0.0.0.0:9201: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
  • 참고 : Windows 시스템 정책 자체가 이 9200 포트를 금지하고 있음
netsh interface ipv4 show excludedportrange protocol=tcp

위 명령어로 관리되는 포트를 확인할 수 있다.

chatGPT에 확인 해보니 9000 번대 구간은 일부 보안 솔루션이나 http.sys가 자동으로 예약하거나 차단 시킨다고 함

9200은 포트가 제한되어 있어서 풀어야 함

winnat 중지
net stop winnat

사용하고자 하는 포트에 대한 제한 금지(9200번)
netsh int ipv4 add excludedportrange protocol=tcp startport=9200 numberofports=1

winnat 재시작
net start winnat

[출처]

https://github.com/docker/for-win/issues/3171

다시 docker compose up 실행

정상적으로 실행 되는걸 확인 가능

실제로 잘 실행됐는 지 확인 하기

Postman에서 localhost:9200으로 요청을 보내기

정상 작동 되는걸 알 수 있다.

이상으로 Docker로 Elasticsearch를 설치해 보았다. 중간에 이슈가 있었지만, 구글링과 chatGpt를 통해 이슈를 해결했습니다.
사실 이러한 사항들을 정리하기 위해 작성한 글이지만, 이왕이면 설치 과정을 한 번 더 써보는게 더 좋을 것 같아서 설치 순서부터 겪었던 이슈를 중간에 넣었다.

profile
시작은 미약하나 그 끝은 창대하리라

0개의 댓글