최근 로그 분석이나 검색 서비스를 구축할 때 Elasticsearch 대안으로 많이 쓰이는 게 바로 OpenSearch인데요

아마존이 Elasticsearch 오픈소스 버전에서 갈라져 나온 검색엔진으로 무료로 사용할 수 있고 기능도 거의 동일합니다

 

오늘은 도커(Docker) 를 이용해서 OpenSearch와 웹 시각화 도구인 OpenSearch Dashboards를 한 번에 실행하는 방법을 소개할게요

도커의 기본적인 명령어입니다 참고하세요 :) 

명령어 설명
docker pull <이미지> 이미지 다운로드
docker images 다운받은 이미지 목록 보기
docker run <이미지> 컨테이너 실행
docker ps -a 실행 /중단된 컨테이너 목록 보기 (process status)
docker stop <이름> / docker rm <이름> 컨테이너 중지 / 삭제
docker-compse down 컨테이너 + 네트워크 종료
docker-compose up -d Docker Compose 환경을 백그라운드에서 실행

 

docker-compose는 여러 개의 docker 컨테이너를 하나의 설정 파일로 묶어서 한번에 실행하고 관리할 수 있게 해주는 도구에요

아래는 docker-compose.yml 코드입니다

services:
  opensearch-node-main:
    image: opensearchproject/opensearch:latest  #(공식 OpenSearch 서버 이미지)
    container_name: opensearch-main
    environment:
      - discovery.type=single-node #(단일 노드 모드 설정)
      - OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m #(Java 최적화 옵션)
      - OPENSEARCH_USERNAME=admin #(기본 사용자 이름)
      - OPENSEARCH_PASSWORD=1234 #(기본 사용자 비밀번호)
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=1234 #(초기 관리자 비밀번호)
      - plugins.security.ssl.http.enabled=false #(HTTPS 보안 비활성화 (테스트 환경용; 실제 운영에서는 true로 해야 함))
    ulimits:
      memlock: #(메모리 잠금 제한)
        soft: -1
        hard: -1
    volumes:
      - opensearch-data-main:/usr/share/opensearch/data #(데이터 저장 경로)
    ports:
      - 9200:9200 #(OpenSearch API 포트)
      - 9600:9600 #(OpenSearch 모니터링 포트)
    networks:
      - opensearch-net #(네트워크 설정)

  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:latest
    container_name: opensearch-dashboards-main
    ports:
      - 5601:5601
    environment:
      - OPENSEARCH_HOSTS=["http://opensearch-node-main:9200"] #대시보드가 접속할 OpenSearch 서버의 주소
      - DISABLE_SECURITY_DASHBOARDS_PLUGIN=true #로그인 같은 보안 기능 끄기 (테스트용)
    networks:
      - opensearch-net

volumes:
  opensearch-data-main:

networks:
  opensearch-net: # 두 컨테이너(opensearch-node-main, dashboards)가 같은 네트워크 안에서 통신하게 함
반응형

터미널에서 docker-compose.yml 파일이 있는 위치로 이동합니다

 

이 오픈서치 도커 구성은 로컬 개발 환경이나 테스트용으로 정말 간편합니다

단일 명령어(docker-compose up -d)로 검색엔진과 대시보드가 모두 실행되고, 포트만 열어주면 테스트용으로 잘 사용할 수 있어요

 

도커를 활용하면 복잡한 설치 없이도 검색 엔진 시스템을 빠르게 세팅할 수 있으니 LLM 프로젝트 할때 테스트용으로 사용하시는 걸 추천드려요 


만약 아래처럼 OpenSearch Dashboards server is not ready yet 이라고 뜨는 경우 opensearch 컨테이너가 제대로 떠있지 않은상태입니다

 

그럴 경우 터미널 입력창에 docker ps 를 치면 현재 컨테이너가 떠있는지 확인하실 수 있습니다

 

지금 저처럼 PORTS 부분에 9200->9200 이 안 보이면 → docker-compose에 포트 바인딩이 안 되어 있다는 뜻이에요!

docker logs opensearch-main 으로 docker의 log를 확인하면 왜 안떠있는지 알 수 있어요

전 패스워드가 1234로 설정해서 ㅎㅎ.. 패스워드가 짧아 컨테이너가 뜨지 않았네요 

비밀번호를 다시 설정한 뒤 다시 저장합니다

비밀번호는 User1212!@로 설정했습니다

그 후, docker-compose down을 해서 현재 실행 중인 모든 컨테이너, 네트워크, 볼륨 등을 종료하는 명령어를 실행합니다

docker-compose up -d로 백그라운드에서 다시 재실행합니다

로컬호스트:5601 포트로 들어가게되면 오픈서치 검색엔진이 떠있는것을 확인하실 수 있습니다

이처럼 손쉽게 로컬에서 오픈서치를 도커로 구성해서 오픈서치 테스트를 해볼 수 있는 점이 가장 좋은 것 같습니다

CLI로 보지 않아도 docker desktop을 설치하셨다면 현재 컨테이너가 실행되고 있는지 확인하실 수 있어요

종료할때도 docker-compose down을 하지 않고 중지버튼을 누르면 컨테이너가 종료되니 참고하세요 ~

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기