[Elasticsearch] Elasticsearch 아키텍처 + GUI(Kibana) 세팅

2026. 2. 4. 03:48·📌Develop/Elasticsearch

-elastic

 

▶ 들어가며

이번 글에서는 이전 포스팅에 이어서, Elasticsearch를 MySQL과 비교하며 아키텍처 관점에서 어떻게 다른지 살펴보고,
직접 Kibana를 사용한 개발 환경 세팅까지 진행해보려고 한다.

단순히 개념으로만 이해하는 것이 아니라,

  • 요청이 어떤 방식으로 전달되는지
  • 실제로 Elasticsearch가 잘 동작하는지

까지 확인하는 것을 목표로 한다.

 


▶ Elasticsearch 아키텍처

Elasticsearch의 기본적인 동작 흐름은 다음과 같다.

-MySQL의 요청 흐름

 

-Elasticsearch의 요청 흐름

 

 

여기서 가장 중요한 점은
👉 REST API 기반으로 동작한다는 점이다.

자체 문법을 실행하는 방식이 아니라 우리에게 익숙한 HTTP 요청을 통해 데이터를 삽입하고 조회한다.

 

예를 들어 데이터를 삽입한다고 가정하면,

  • MySQL
INSERT INTO user (name, age)
VALUES ('bo', 26);
  • Elasticsearch
curl -X POST "http://localhost:9200/user/_doc" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "bo",
    "age": 26
  }'

 

조회 역시 마찬가지로, SQL 대신 HTTP 기반 요청으로 처리된다.

이 점 덕분에 Elasticsearch는 웹 서비스와의 연동, 검색 기능 구현에 특히 잘 어울린다.

 


▶ Elasticsearch의 GUI, Kibana

위에서 본 것처럼 cli를 매번 사용하여 요청을 보내고 테이블을 일일이 확인하는것은 여간 번거러운 일이 아님을 알고있을 것이다. MySQL을 공부하면서 이러한 번거로음을 줄이기 위해서

  • MySQL Workbench
  • DataGrip

같은 GUI 도구를 사용하듯이,
Elasticsearch 역시 매번 Postman이나 curl로 요청을 보내는 것은 번거롭다.

그래서 Elasticsearch에서는
👉 Kibana라는 GUI 도구를 함께 사용한다.

Kibana를 사용하면 데이터 조회, 인덱스 관리, 쿼리 테스트 를 훨씬 직관적으로 할 수 있다.

 

-Kibana 세팅 구조

전체 흐름을 정리하면 다음과 같다.

 
  • 5601 포트: Kibana
  • 9200 포트: Elasticsearch REST API

 


▶ 개발 환경 세팅

서로 다른 개발환경을 통일시킬 수 있는 Docker를 사용하여 Docker위헤 Elastic과 Kibana를 띄우는 방식으로 세팅을 해볼 것이다.

도커 관련 지식이나 막혔을때는 인터넷을 찾아서 하는것이 훨씬 빠를것이다.

  • docker-compose.yml 파일을 작성/수정
  • Elasticsearch + Kibana를 동시에 실행
version: "3.8"

services:
  elastic:
    image: docker.elastic.co/elasticsearch/elasticsearch:9.2.4
    ports:
      - "9200:9200"
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
      - xpack.security.http.ssl.enabled=false

  kibana:
    image: docker.elastic.co/kibana/kibana:9.2.4
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://elastic:9200
    depends_on:
      - elastic

- elastic과 kibana 버전이 반드시 맞아야 함. 다르니까 안됐음.

 

이후 postman으로 localhost:9200의 GET요청과 브라우저에서 http://localhost:5601 주소로 접속했을때 응답이 200OK로 오거나 접속창이 로딩되면 성공!.

 

-postman 응답 화면

 

-localhost:5601 Kibana화면

  • 모두 정상적으로 뜬다면
    👉 Elasticsearch와 Kibana가 잘 실행 중이라는 의미다.

햄버거 바에서 "Dev Tools"를 찾아서 GUI로 편하게 요청을 보낼 수있게 된 나. 기존에 Postman이나 curl로 직접 보내던 REST API 요청을

GET /

 

과 같은 요청으로 Kibana 내부에서 바로 실행하며 결과를 확인할 수 있다.


👉 훨씬 간편하게 실행할 수 있다. 따봉!

'📌Develop > Elasticsearch' 카테고리의 다른 글

[Elasticsearch] Elasticsearch 기본용어와 CRUD 명령어  (0) 2026.02.17
[Elasticsearch] ELK stack에 관하여  (0) 2026.02.05
[Elasticsearch] Elasticsearch 입문하기  (0) 2026.02.03
'📌Develop/Elasticsearch' 카테고리의 다른 글
  • [Elasticsearch] Elasticsearch 기본용어와 CRUD 명령어
  • [Elasticsearch] ELK stack에 관하여
  • [Elasticsearch] Elasticsearch 입문하기
bolog
bolog
joobolog 님의 블로그 입니다.
  • bolog
    개발자에서 살아남기
    bolog
  • 전체
    오늘
    어제
    • 카테고리 (11)
      • 📌Develop (4)
        • Elasticsearch (4)
      • 📌CS (4)
        • 데이터베이스 (3)
        • 운영체제 (1)
      • 📌PS (2)
        • baekjoon (python) (1)
        • codetree (1)
      • 자격증 (0)
        • 컴퓨터활용능력 (0)
        • OPic (0)
      • 기타 (1)
        • 후기 (1)
  • 블로그 메뉴

    • 🔗GitHub
    • 🔗Resume
  • 인기 글

  • 최근 글

  • 태그

    어커런스
    데이터베이스 상태
    #umc8기 #umc8기합격 #university_makeus_challenge #umc개발동아리 #umc프로젝트 #umc합격수기 #umc지원 #합격후기 #개발프로젝트 #umc성공스토리 #umc블로그이벤트 #합격비결 #나만의합격스토리
    Elasticsearch
    스키마 아키텍처
    Kibana
    클라이언트/서버 아키텍처
    codetree
    Relational Model
    DBMS 분류
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
bolog
[Elasticsearch] Elasticsearch 아키텍처 + GUI(Kibana) 세팅
상단으로

티스토리툴바