티스토리 뷰
면접 중 해당 주제에 대해 지식이 부족해서 질문의도에서 벗어나는 대답을 드려 아쉬웠다.
그래서 해당 주제에 대해 정확한 개념을 짚고 넘어가기 위해 조사한 내용을 정리해 적어보는 글이다.
Elastic Search
1) 간단 정의
- 빠르고 효율적인 분산처리를 통해 얻은 검색 및 분석 결과를 RESTful API로써 제공하는 기술
- 데이터 저장소 + 검색엔진
2) 장점
- 오픈소스 검색엔진이다.
- 버전업과 버그 해결이 빠르다
- 방대한 데이터 처리가 가능하고 검색이 빠르다.
3) 단점
- 진입장벽이 있다.
- table 끼리 조인이 안 된다.
- 트랜잭션을 지원하지 않는다.
- 완전한 실시간 처리를 지원하지 않는다.
4) 핵심내용
Point 1 | 역색인
- 'Document : Content' 형태의 저장 외에 '단어 : Document'로 찾을 수 있는 table을 만들어 빠른 검색이 가능하다.
Point 2 | 샤드
- Document가 여러 개 있을 때, 여러 곳으로 쪼개어 저장하는 것
- 검색할 땐 여러 곳에서 한번에 검색하도록 하여 컴퓨터 리소스를 분산시킬 수 있어, 빠른 검색이 가능하고 노드와 샤드를 늘려 손쉽게 스케일 아웃이 가능하다.
Point 3 | 레플리카
- 샤드는 노드끼리 서로 다른 data를 저장하는 반면, 레플리카는 동일 data를 저장한다.
- 다른 노드에 문제가 생겨도 해당 data를 가진 레플리카가 있기에 서비스가 중단되지 않는다.
5) 구조
No1 | 노드
- 하나의 클러스터에 여러 개의 노드(서버)로 실행된다.
- 종류
- 마스터 노드
- 인덱스의 메타데이터, 샤드의 위치 등 클러스터 상태 정보를 관리하는 노드 / 반드시 필요 (하나의 노드로 구성돼있다면 1개의 노드가 마스터 노드)
- 기존 마스터 노드가 다운되면 다른 마스터 후보 노드 중 하나가 마스터 노드 역할을 대신 수행
(마스터 후보 노드들은 처음부터 마스터 노드 정보를 공유하고 있어 즉시 역할 수행 가능)
- 데이터 노드
- 실제로 색인된 데이터를 저장하는 노드
- 마스터 노드
No2 | 인덱스
- Elastic Search에서 하나의 데이터(RDBMS에서의 Row)를 Document라고 말하는데, 이 Document들의 집합을 인덱스라고 한다.
No3 | 샤드
- Default는 1개의 인덱스 안에 1개의 샤드 존재
- 처음 생성된 샤드를 프라이머리 샤드라고 하고 복제본을 레플리카 샤드라고 한다.
6) 주로 사용하는 과정
- Web Server에서 RDBMS로의 데이터 Read & Write 과정이 진행된다.
- RDBMS에서 Logstash와 같은 서비스가 검색이 필요한 데이터에 대해 모니터링하고 이 데이터를 Elastic Search Cluster로 주입한다.
- 이 때, Web Server에서도 Elastic Search Cluster에 접근이 가능한데 Read 작업만 가능하다.
ELK 스택
- Logstash : 어떤 DB의 data이든지 elastic search에 수집, 필터링, 색인한다.
- Elastic Search : 빠른 검색이 가능한 data
- Kibana : Elastic Search의 data를 보기 좋게 화면에 보여주는 모니터링 툴
📎참고
https://blog.yeom.me/2018/03/24/get-started-elasticsearch/
https://velog.io/@munang/ElasticSearch-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90
백엔드 실무 강의 by 푸
'정리노트 > 기타' 카테고리의 다른 글
Elasticsearch 마이그레이션 수행기 (0) | 2025.04.19 |
---|---|
Springboot 마이그레이션 수행기 (0) | 2025.04.12 |
[Kafka] Kafka 기본 개념 (0) | 2023.06.21 |
네트워크 기초 (0) | 2023.05.31 |
ETL 프로세스 / 하둡 / 스파크 (0) | 2022.09.13 |
댓글