Elasticsearch를 사용하는 방법은 크게 2가지로 나눌 수 있을 것 같아요

 

  • Elasticsearch Cloud, AWS, GCP 등과 같은 클라우드 서비스를 사용하기
  • 직접 설치해서 사용하기

 

운영 목적으로 사용한다면 클라우드를 사용하는 것도 관리의 부담이나 비용적인 측면에서 봤을 때 유리할 수 있을 것 같아요. 개발이나 공부 목적이라면 비싼 비용을 지불하면서 클라우드에서 사용하는 것보다는 설치부터 운영까지 로컬에서 직접 해보는 게 좋겠지요? 그래서 우리는 로컬에 설치해서 사용해볼 거예요.

 

직접 설치해서 사용하는 방법은 크게 3가지로 나눌 수 있을 것 같아요.

  • 패키지로 설치하기
  • 소스에서 설치하기
  • Docker로 설치하기

 

우선 여기에서는 Docker를 사용해서 Elasticsearch를 설치하는 걸 해볼게요.

 

https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html

 

Quick start | Elasticsearch Guide [7.14] | Elastic

This guide helps beginners learn how to: Install and run Elasticsearch in a test environment Add data to Elasticsearch Search and sort data Extract fields from unstructured content during a search Step 1. Run Elasticsearchedit The simplest way to set up El

www.elastic.co

 

위 링크로 들어가면 Elasticsearch를 빠르게 실행해보는 방법이 나옵니다. 

Self-managed 탭을 클릭하고 나오는 지침에 따라 Docker가 설치된 시스템에서 아래 명령어를 실행시켜주세요.

docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.14.0
docker run -d --name es01 --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.14.0

Elasticsearch 공식 가이드에서 조금 변형해서 -d 옵션을 줘서 detached 모드로 실행되게 했어요. 이름은 그냥 es01로 했어요. docker logs -f es01 해서 로그가 쭉쭉 올라오는 걸 확인하시고 잠시 뒤 Ctrl-c 해서 로그 보는 걸 끝내고 curl -XGET http://localhost:9200 하시고 아래와 같은 출력이 나온다면 성공이에요.

➜  ~ curl -XGET http://localhost:9200
{
  "name" : "9af8af5ad54e",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "pOfo-rshSoOAQ01qVbEPsQ",
  "version" : {
    "number" : "7.14.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "dd5a0a2acaa2045ff9624f3729fc8a6f40835aa1",
    "build_date" : "2021-07-29T20:49:32.864135063Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

 

그럼 바로 이어서 Kibana를 설치해보겠어요. Elasticsearch를 배우는데 Kibana는 왜 설치하냐고요?

그냥 해볼게요.

docker pull docker.elastic.co/kibana/kibana:7.14.0
docker run -d --name kib01 --net elastic -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es01:9200" docker.elastic.co/kibana/kibana:7.14.0

이번에도 -d 옵션으로 detached 모드로 백그라운드에서 실행되게 했고요 ELASTICSEARCH_HOSTS에는 http://es01:9200으로 위에서 Elasticsearch 컨테이너를 만들 때 --name 옵션으로 줬던 값을 사용했어요. Docker에서 사용자 정의 네트워크를 사용할 때 컨테이너의 이름으로 DNS 쿼리가 가능하다고 했어요. 잘 기억이 안 나신다면 아래 링크 한 번 확인해주세요.

도커 네트워크 다루기 -3 (tistory.com)

 

도커 네트워크 다루기 -3

사용자 정의 브리지 네트워크 도커 네트워크의 기본 브리지 네트워크 외에 사용자 정의 브리지 네트워크를 만들 수 있어요. 사용자 정의 브리지 네트워크는 어떻게 만들고 어떻게 사용하는지,

xodwkx2.tistory.com

 

이번에도 역시 마찬가지로 잠시 기다렸다가 curl localhost:5601로 kibana의 상태를 확인해보면 아무 응답이 없습니다. 네 웹 브라우저로 접속해야만 하는데 curl 명령어로는 확인이 안 됩니다. 그럼 브라우저를 통해서 확인해볼게요.

네 잘 확인이 되네요. curl 명령어를 통해서 확인할 방법이 아주 없는 건 아니에요.

curl localhost:5601/api/spaces/space 명령으로 현재 Kibana에 있는 모든 space를 확인할 수 있는데 여기서 

[
  {
    "id": "default",
    "name": "Default",
    "description": "This is your default space!",
    "color": "#00bfb3",
    "disabledFeatures": [],
    "_reserved": true
  }
]

이렇게 출력이 나오면 정상이라고 봐도 좋아요.

 

그럼 오늘은 여기까지.

 

끝.