no image
Elasticsearch에 요청하기 with REST APIs
cURL 명령어를 사용해서 API 요청 보내기 포스트맨을 사용해서 API 요청 보내기 Kibana를 사용해서 API 요청 보내기 엘라스틱서치는 ReSTful APIs를 지원해요. 엘라스틱서치에 HTTP를 사용해 API 요청을 보내는 것을 해보아요. https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html HTTP를 사용해서 API 요청을 보내는 방법은 많지만 세가지만 확인해 볼게요. cURL 명령어를 사용해서 API 요청 보내기 대부분의 리눅스에는 cURL이 기본적으로 설치되어 있어요. 엘라스틱서치 설치 확인을 하면서 이미 사용해 봤지만 다시 한번 볼게요. xodwk@test-dokr  ~  curl 'localhos..
Elasticsearch 구조 더듬기
어렴풋이 장님 코끼리 다리 더듬듯 같이 엘라스틱서치를 더듬어보고 싶어요. 엘라스틱서치라는 이 커다란 시스템은 하나 혹은 복수개의 노드에서 실행돼요. 각기 다른 노드에서 돌아가고 있는 엘라스틱서치 클러스터라도 같은 클러스터 이름을 설정하고 서로 통신이 된다면 하나의 엘라스틱서치 클러스터로 사용될 수 있어요. ➜ ~ curl -XGET http://localhost:9200 { "name" : "9af8af5ad54e", "cluster_name" : "docker-cluster", "cluster_uuid" : "pOfo-rshSoOAQ01qVbEPsQ", ... } 위 화면은 Docker를 사용해 엘라스틱서치 컨테이너를 생성한 후 curl 명령어를 실행했을 때 나온 응답 값의 일부예요. cluster_n..
no image
Docker를 사용해 Elasticsearch 설치하기
Elasticsearch를 사용하는 방법은 크게 2가지로 나눌 수 있을 것 같아요 Elasticsearch Cloud, AWS, GCP 등과 같은 클라우드 서비스를 사용하기 직접 설치해서 사용하기 운영 목적으로 사용한다면 클라우드를 사용하는 것도 관리의 부담이나 비용적인 측면에서 봤을 때 유리할 수 있을 것 같아요. 개발이나 공부 목적이라면 비싼 비용을 지불하면서 클라우드에서 사용하는 것보다는 설치부터 운영까지 로컬에서 직접 해보는 게 좋겠지요? 그래서 우리는 로컬에 설치해서 사용해볼 거예요. 직접 설치해서 사용하는 방법은 크게 3가지로 나눌 수 있을 것 같아요. 패키지로 설치하기 소스에서 설치하기 Docker로 설치하기 우선 여기에서는 Docker를 사용해서 Elasticsearch를 설치하는 걸 해볼..
no image
Elasticsearch 시작하기
새로 무언가 배우고 싶다면 어떻게 해야 할까요? 가장 간단하고 쉬운 방법은 공식문서를 찾아보는 거라고 생각해요. 여기에 더해서 모범사례 등과 같은 실 사용에서의 용례를 제공해준다면 더 좋겠지요? 특히나 요즘 새로 나오는 많은 기술들은 한글 공식문서도 제공하는 곳이 많아서 더욱 공부하기 수월한 것 같아요. 그런데 이 elasticsearch는 한글 공식 문서도 제공하지 않고 그나마 있는 영문 공식문서도 그 양이 워낙 방대하고 또 이런이런 순서로 공부해 보세요 하고 가이드도 제공하지 않아서 차근차근 하나하나 공부하기 더 어려운 것 같아요. 물론 튜토리얼도 제공하고 있지만 뭔가 2% 부족한 것 같고 Elastic Blog나 커뮤니티도 운영하지만 이러한 것들을 통해서는 elasticsearch에 대해 공부하기 ..
도커 호스트와 컨테이너간 파일 공유하기
도커 컨테이너에 도커 볼륨을 만들어 붙이는 것 외에 파일 공유하는 방법 하나를 더 알아볼게요. 도커 호스트의 디렉터리를 도커 컨테이너의 파일 시스템에 마운팅 하는 방법이에요. 어떻게 하는지 먼저 볼게요. ➜ ~ mkdir shared ➜ ~ cd shared ➜ shared echo "Hello xodwk" > salute.txt ➜ shared docker container run --rm -d -it -v $HOME/shared/:/data/ alpine sh 2f97ed6853277bd71d251dd7d1490cfc04215766b8d5dd7b32924582c27f578c ➜ shared docker exec -it 2f97ed sh / # cat /data/salute.txt Hello xodwk..
no image
도커 볼륨 맛보기
도커 이미지로 컨테이너를 실행시키고 내용을 변경한 후 컨테이너로 이미지를 만들어봤었어요. 이 컨테이너로 이미지를 만들 때 변경된 부분은 read/write layer 라는 곳에 있어요. 만약에 어떤 이미지를 가지고 컨테이너를 만들고 내용을 수정했다가 이 컨테이너로 이미지를 따로 만들지 않고 컨테이너를 삭제하면 그 변경된 부분은 사라져요. https://xodwkx2.tistory.com/31 도커를 활용해 MongoDB 서버 만들기 도커를 활용해서 몽고디비 서버를 만들어 보아요. 먼저 도커 허브에서 mongo를 검색 해볼게요. mongo Official Image를 눌러서 들어가보면 아래와 같은 걸 볼 수 있어요. 오른쪽에 docker pull mongo 라고 써 xodwkx2.tistory.com 에 ..
no image
도커를 활용해 MongoDB 서버 만들기
도커를 활용해서 몽고디비 서버를 만들어 보아요. 먼저 도커 허브에서 mongo를 검색 해볼게요. mongo Official Image를 눌러서 들어가보면 아래와 같은 걸 볼 수 있어요. 오른쪽에 docker pull mongo 라고 써있는 거 클릭. 터미널에 붙여넣고 실행해볼게요. ➜ ~ docker pull mongo Using default tag: latest latest: Pulling from library/mongo 16ec32c2132b: Already exists 6335cf672677: Already exists cbc70ccc8ebe: Already exists 0d1a3c6bd417: Already exists 960f3b9b27d3: Already exists aff995a136b4..
도커 네트워크 다루기 -3
사용자 정의 브리지 네트워크 도커 네트워크의 기본 브리지 네트워크 외에 사용자 정의 브리지 네트워크를 만들 수 있어요. 사용자 정의 브리지 네트워크는 어떻게 만들고 어떻게 사용하는지, 기본 브리지 네트워크도 있는데 사용자 정의 브리지 네트워크는 왜 필요한지에 대해서 알아봐요. ➜ ~ docker network create xodwknet0 384b97f3858e56d6d95107b339499c4bc20163bd6f7fdd30fee11ccc37c6ed66 ➜ ~ docker network ls NETWORK ID NAME DRIVER SCOPE 8d3458727d03 bridge bridge local 3bec2ba8f217 host host local 3ace32da71f8 none null local ..
도커 네트워크 다루기 -2
이전에 기본 설정인 bridge 모드와 host 모드 그리고 null 모드까지 모두 봤어요. 그런데 어떠한 필요에 의해서 컨테이너의 서비스들이 같은 IP를 써야 하는 경우가 있을 수 있어요. 그럴 때는 어떻게 해야 할까요? 간단한지는 잘 모르겠지만 컨테이너 하나에 2개의 서비스를 넣는 방법이 있을 수 있겠네요. 하지만 이런 방법은 무슨무슨 법 위반이래요. 이럴 때 사용할 수 있는 좋은 방법이 있는데 바로 IP를 공유하는 거예요. 시간 날 때 그림을 그려서 올려보도록 할게요. 우선은 설명하자면 도커가 컨테이너를 생성하면서 그 컨테이너를 위한 네트워크 네임스페이스를 생성하고 가상 인터페이스도 만들어서 그 인터페이스에 IP도 할당해요. 서비스 1이 돌아가는 컨테이너를 만들면서 네트워크를 bridge도 아니고 ..