콘텐츠로 건너뛰기
H-A

Hangbok Archive

  • Wiki
  • NEWS
  • Wiki
  • NEWS

AI 코딩 에이전트 Wiki

  • AI 코딩 에이전트
  • AI 하네스
    • AI 하네스란 무엇인가
    • AI 코딩 에이전트의 주요 구성요소
    • Claude Skills
    • Claude Memory
    • Claude Hook
    • Claude Subagents
    • Claude Rules (Claude.md)
    • 참고) Claude Hook Matcher
  • Claude Code
    • Claude Code 입문
    • VS Code에서 Claude Code 사용하기
    • settings.json으로 권한과 실행 환경 제어하기

LangChain/LangGraph

  • 채팅 시작하기
    • LangChain • LangGraph wiki

OpenSearch

  • OpenSearch wiki
  • OpenSearch 란?
    • OpenSearch 란 무엇인가
    • OpenSearch Dashboard 란?
    • 검색 엔진, 분석 엔진, 벡터 데이터베이스로서의 OpenSearch
    • Elasticsearch와의 관계
  • OpenSearch 설치 및 설정
    • Docker Compose 기반 환경 구성
    • Dashboards와 Dev Tools 연결
    • OpenSearch 작업 방법
    • Python 개발 환경 구성
View Categories
  • Home
  • wiki
  • OpenSearch
  • OpenSearch 설치 및 설정
  • Docker Compose 기반 환경 구성

Docker Compose 기반 환경 구성

윤후 이
Updated on 6월 8, 2026

1 min read

환경 선택 기준 #

환경적합한 목적장점주의점
Docker 단일 노드학습, 기능 실습, RAG 프로토타입설치가 빠르고 재현성이 높음운영 클러스터의 shard, replica, 장애 복구 특성을 충분히 검증하기 어려움
Docker Compose 다중 컨테이너Dashboards, 보안 플러그인, 네트워크 구성을 함께 실습OpenSearch와 Dashboards를 한 번에 구성 가능리소스 사용량이 증가함
직접 설치OS 서비스 구성, systemd, 파일 경로, JVM 설정 학습서버 운영 방식과 가까움초기 설정과 제거가 번거로움
Amazon OpenSearch Service관리형 운영, IAM 인증, VPC, 프로덕션 연결인프라 운영 부담이 줄어듦로컬 OpenSearch와 인증/네트워크/권한 모델이 다름

개발 환경 판단 기준 #

RAG 실습 초기에는 Docker 단일 노드가 가장 효율적입니다.

그러나 운영 RAG 서비스에서는 단일 노드 기준으로 설계하면 안 됩니다.

해당 wiki에서는 Dashboard 활용을 위해서 Docker compose 방법을 사용합니다.

운영에서는 장애 복구, replica, shard allocation, snapshot, index lifecycle, 인증, 권한 분리, TLS, VPC 또는 private network 접근 제어를 함께 고려해야 합니다.

사전 준비 #

  • Docker Desktop 또는 Docker Engine
  • Docker Compose
  • Python 3.12 이상
  • 터미널 또는 IDE
  • 충분한 메모리. OpenSearch는 JVM 기반이므로 로컬 환경에서 메모리 부족이 자주 발생합니다.

디렉터리 구조 #

opensearch-rag-lab/
  docker-compose.yml
  .env

Docker Compose 예시 #

아래 구성은 학습용 단일 노드 OpenSearch와 Dashboards를 함께 실행하는 예시입니다. 운영 설정이 아니라 로컬 개발용입니다.

services:
  opensearch-node1:
    build:
      context: .
      dockerfile: Dockerfile.opensearch
    image: opensearch-nori:latest
    container_name: opensearch-node1
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD}
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
    - type: bind
      source: C:\\Users\\user\\Documents\\volume\\opensearch
      target: /usr/share/opensearch/data
    ports:
      - "9200:9200"
      - "9600:9600"
    networks:
      - opensearch-net

  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:latest
    container_name: opensearch-dashboards
    ports:
      - "5601:5601"
    environment:
      OPENSEARCH_HOSTS: '["<https://opensearch-node1:9200>"]'
    depends_on:
      - opensearch-node1
    networks:
      - opensearch-net

networks:
  opensearch-net:

.env 예시

OPENSEARCH_INITIAL_ADMIN_PASSWORD='set your admin password'

실행

docker compose up -d

상태 확인

docker compose ps

curl -k -u admin:${OPENSEARCH_INITIAL_ADMIN_PASSWORD} <https://localhost:9200>

정상적으로 실행되면 cluster name, version, tagline 등이 포함된 JSON 응답을 확인할 수 있습니다.

글이 도움이 되셨나요?
공유하기
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Updated on 6월 8, 2026
Python 개발 환경 구성Dashboards와 Dev Tools 연결

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다


목차
  • 환경 선택 기준
  • 개발 환경 판단 기준
  • 사전 준비
  • 디렉터리 구조
  • Docker Compose 예시

Hangbok Archive

모든 권리 보유