REST API 개요
- Elasticsearch는 HTTP 프로토콜 기반의 REST API를 제공합니다.
- 자원(Resource)마다 고유한 URL을 사용하며, **HTTP 메서드(PUT, POST, GET, DELETE)**로 데이터를 처리합니다.
- 이러한 시스템을 RESTFul 시스템이라고 합니다.
REST API 방식과 비 REST 방식 비교
예제: 사용자 정보(name=kim, age=38, gender=m) 처리 방식 비교
Elasticsearch REST API 활용
(1) 클러스터 정보 조회
- HTTP 요청 방법: GET http://localhost:9200
- curl 명령어 사용 예제
curl -XGET "http://localhost:9200"
- 응답 예시 (JSON)
{
"name" : "Jongminui-MacBook-Pro.local",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "hpmT8TPiR1Kk69YNao9V3w",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"lucene_version" : "8.1.0"
},
"tagline" : "You Know, for Search"
}
- 응답 정보 설명
필드명 |
설명 |
name |
노드명 |
cluster_name |
클러스터명 |
cluster_uuid |
클러스터 고유 ID |
version.number |
Elasticsearch 버전 |
lucene_version |
Lucene 버전 |
tagline |
기본 태그라인 |
Kibana Dev Tools
- REST API를 쉽게 실행하기 위한 도구
- Kibana 실행 방법
- Elastic 공식 웹사이트에서 Kibana 다운로드: https://www.elastic.co
- 압축 해제 후 실행
- 리눅스/Mac: bin/kibana
- 윈도우: bin/kibana.bat
- 기본 실행 포트: 5601
- 실행 후 웹 브라우저에서 접속: http://localhost:5601
- 설정 파일 (kibana.yml) 수정
- Elasticsearch가 다른 호스트에서 실행될 경우:
elasticsearch.url: "http://localhost:9200"
- Kibana 실행 포트를 변경하려면:
server.port: 5601
- Dev Tools 주요 기능
기능 |
설명 |
쿼리 자동 완성 |
API 호출 시 자동 완성 기능 제공 |
호스트 경로 자동 적용 |
기본적으로 http://localhost:9200를 사용 |
curl 명령 복사 기능 |
입력한 명령을 curl 명령어로 변환 가능 |
REST API를 활용한 Elasticsearch 데이터 조작
작업 HTTP |
메서드 |
예제 |
문서 생성/업데이트 |
PUT |
PUT http://localhost:9200/index/_doc/1 -d '{"name":"kim", "age":38}' |
문서 조회 |
GET |
GET http://localhost:9200/index/_doc/1 |
문서 삭제 |
DELETE |
DELETE http://localhost:9200/index/_doc/1 |
검색(Query DSL 사용) |
POST |
POST http://localhost:9200/index/_search -d '{"query": {"match": {"name": "kim"}}}' |
추가적으로 알아야 할 내용
개념 |
설명 |
Index |
관계형 DB의 "테이블" 개념 |
Document |
하나의 데이터 레코드 (JSON 형식) |
Shard & Replica |
데이터를 분산 저장하고 백업하는 구조 |
Query DSL |
Elasticsearch의 강력한 검색 기능을 지원하는 JSON 기반의 질의 언어 |
✅ 정리
- Elasticsearch는 HTTP REST API를 활용하여 데이터를 관리합니다.
- RESTFul 방식을 사용하여 단일 URL과 HTTP 메서드(GET, PUT, DELETE 등)로 요청을 처리합니다.
- curl 명령어를 이용하여 쉽게 API 요청을 보낼 수 있습니다.
- Kibana Dev Tools를 활용하면 REST API 호출을 간편하게 실행할 수 있습니다.
- 문서 조회, 생성, 수정, 삭제 등의 작업은 REST API를 통해 JSON 기반으로 수행됩니다.