본문 바로가기

관리 메뉴

Docker를 활용하여 ElasticSearch 버전별 테스트 환경 구축하기 본문

Linux

Docker를 활용하여 ElasticSearch 버전별 테스트 환경 구축하기

SaintsP 2019. 11. 18. 11:21

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 build -t elasticsearch-myCustom .



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
Comments