Docker를 활용하여 ElasticSearch 버전별 테스트 환경 구축하기 본문
ElasticSearch를 활용하여 검색을 처리하다보면 여러 Test 환경이 필요할 때가 있습니다.
Docker의 Compose를 활용하여 "ElasticSearch 5.5.0 + Kibana 5.5.0" 테스트 환경과 "ElasticSearch 7.0.0 + Kibana 7.0.0 + Nori Analyzer" 테스트 환경을 구축해 보겠습니다.
먼저 "ElasticSearch 7.0.0 + Kibana 7.0.0 + Nori Analyzer" 환경의 커스텀 빌드용 이미지를 하나 만들어줍니다.
$> vim Dockerfile
1 2 3 4 5 | # ElasticSearch 7.0.0 + Nori Analyzer FROM docker.elastic.co/elasticsearch/elasticsearch:7.0.0 WORKDIR /usr/share/elasticsearch RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-nori | cs |
docker images 명령어를 통해 도커 이미지를 조회하면 방금 빌드한 이미지가 등록되어있는것을 확인할 수 있습니다.
다음으로 docker-compose.yml 를 만들어줍니다.
$> vim docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | version: '2.2' services: es_5.5.0: image: docker.elastic.co/elasticsearch/elasticsearch:5.5.0 container_name: es_5.5.0 environment: - node.name=es_5.5.0 - xpack.security.enabled=false - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - ./data01:/usr/share/elasticsearch/data ports: - 9201:9200 networks: - esnet1 kibana_01: image: docker.elastic.co/kibana/kibana:5.5.0 environment: ELASTICSEARCH_URL: http://${HOST_IP}:9201 ports: - 5602:5601 depends_on: - es_5.5.0 networks: - esnet1 es_7.0.0: image: elasticsearch-myCustom container_name: es_7.0.0 environment: - node.name=es_7.0.0 - cluster.initial_master_nodes=es_7.0.0 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - ./data02:/usr/share/elasticsearch/data ports: - 9202:9200 networks: - esnet2 kibana_02: image: docker.elastic.co/kibana/kibana:7.0.0 environment: ELASTICSEARCH_HOSTS: http://${HOST_IP}:9202 ports: - 5603:5601 depends_on: - es_7.0.0 networks: - esnet2 volumes: data01: driver: local data02: driver: local networks: esnet1: esnet2: | cs |
${HOST_IP}는 직접 입력하셔도 되고 변수 설정해주신거 입력해주셔도 됩니다.
중요한것은 Kibana의 ElasticSearch URL 설정 environment 변수 이름이 Kibana 5.5.0에서는 ELASTICSEARCH_URL 이지만 Kibana 7.0.0에서는 ELASTICSEARCH_HOSTS로 설정해야 한다는 점입니다.
모든 설정을 마친 후 docker-compose up을 실행하여 테스트환경을 시작해 주면 됩니다
$> docker-compose up
ElasticSearch 5.5.0 + Kibana 5.5.0 는 각각 ${HOST_IP}:9201, ${HOST_IP}:5602 포트로 실행되고,
ElasticSearch 7.0.0 + Kibana 7.0.0 는 각각 ${HOST_IP}:9202, ${HOST_IP}:5603 포트로 실행되는걸 확인할 수 있습니다.
'Linux' 카테고리의 다른 글
Apache 로드밸런싱 간편 설정 (0) | 2019.10.08 |
---|