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
사용자 정의 브리지 네트워크 도커 네트워크의 기본 브리지 네트워크 외에 사용자 정의 브리지 네트워크를 만들 수 있어요. 사용자 정의 브리지 네트워크는 어떻게 만들고 어떻게 사용하는지,
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
}
]
이렇게 출력이 나오면 정상이라고 봐도 좋아요.
그럼 오늘은 여기까지.
끝.