4.1 REST API
이 문서의 허가되지 않은 무단 복제나 배포 및 출판을 금지합니다. 본 문서의 내용 및 도표 등을 인용하고자 하는 경우 출처를 명시하고 김종민(kimjmin@gmail.com)에게 사용 내용을 알려주시기 바랍니다.
Elasticsearch는 http 프로토콜로 접근이 가능한 REST API를 지원합니다. 자원별로 고유 URL로 접근이 가능하며 http 메서드 PUT, POST, GET, DELETE 를 이용해서 자원을 처리합니다. 이런 특성을 가진 시스템을 보통 RESTFul 한 시스템이라고 말합니다.
REST API가 익숙치 않은 분들을 위해 간단한 비교 설명을 드리면 다음과 같습니다. 사용자 정보를 다루는 user.com 이라는 시스템이 있다고 가정하고 name=kim, age=38, gender=m 이라는 사용자 정보를 처리한다고 해 보겠습니다. REST를 지원하지 않는 시스템에서는 보통 다음과 같이 각 가능에 대한 개별 페이지로 접근하거나 명령을 매개변수로 처리합니다.
RESTFul 하지 않은 시스템에서의 데이터 처리
입력 :
http://user.com/input.jsp?name=kim&age=38&gender=m
조회 :
http://user.com/get.jsp?name=kim
삭제 :
http://user.com/delete.jsp?name=kim
REST API를 지원하는 시스템은 kim 이라는 사용자에 대해 항상 단일 URL로 접근을 하고 PUT, GET, DELETE 같은 http 메서드로 데이터를 처리합니다
RESTFul 한 시스템에서의 데이터 처리
입력 :
PUT http://user.com/kim -d {"name":"kim", "age":38, "gender":"m"}
조회 :
GET http://user.com/kim
삭제 :
DELETE http://user.com/kim
유닉스 curl
MacOS, 리눅스와 같은 유닉스 기반 운영체제에서는 curl
명령어로 간편하게 REST API 사용이 가능합니다. Elasticsearch를 실행한 뒤 curl 명령을 이용해서 elasticsearch 클러스터의 최상위 경로를 호출하며 다음과 같이 클러스터의 상태 정보가 json 형식으로 리턴됩니다.
리턴된 결과는 노드명, 클러스터명, Elasticsearch 버전, 루씬 버전 등의 정보들을 담고 있습니다.
Kibana Dev Tools
Rest API를 쉽게 사용하기 위해서는 포스트맨 같은 도구를 사용할 수 있습니다. Kibana에는 elasticsearch 에서 REST API를 간편하게 실행할 수 있는 Dev Tools 라는 도구를 제공합니다.
먼저 Kibana를 실행하기 위해서는 Elastic 홈페이지 (https://www.elastic.co)에서 운영체제별로 맞는 Kibana 버전을 내려받아 압축을 풀고 bin/kibana
또는 bin/kibana.bat
(윈도우즈) 를 실행시키면 디폴트로 같은 호스트의 localhost:9200 에서 실행중인 elasticsearch와 통신하며 실행이 됩니다.
Elasticsearch와 Kibana가 서로 다른 호스트에서 실행되고 있거나 통신 포트가 9200이 아니면 Kibana 홈 config 디렉토리 아래에 있는 kibana.yml
파일에서 elasticsearch.url: "http://localhost:9200"
옵션을 설정하면 됩니다. 기본적으로 Kibana는 5601 포트에서 실행이 되며 변경하고 싶으면 server.port: 5601
을 변경하고 싶은 포트 값으로 설정합니다.
Kibana를 실행한 뒤 웹 브라우저를 열고 http://localhost:5601 로 접속하면 Kibana를 바로 사용할 수 있습니다. Kibana Dev Tools는 쿼리의 자동 완성도 되고 호스트 경로도 별도로 입력할 필요가 없습니다. 그리고 Dev Tools 에서 입력한 명령을 curl 명령으로 변환하여 클립보드에 복사하는 것도 가능합니다.
Last updated