반응형
이전 블로그에서 가져온 글입니다. (2020.10.2)
1. Elasticsearch란?
- Apache Lucene 기반의 분산형 오픈소스 검색 및 분석 엔진이다.
- 새로운 Index, Document가 반영되기 까지 거의 실시간 (NRT, near real time)으로 이루어진다.
- 애플리케이션 검색, 웹사이트 검색, 로깅과 로그 분석, 보안 분석, 컨테이너 모니터링 등에 사용된다.
2. 용어
2-1. 클러스터 (Cluster)
- 노드혹은 서버의 집합체.
- 노드들을 클러스터에 어떻게 구성하냐에 따라 성능에 차이가 생긴다
2-2. 노드 (Node)
- 데이터가 저장되는 일종의 서버.
- 관리 목적 구분
- Master node : 클러스터 관리, 인덱스 생성, 삭제 등
- Data node : 데이터 저장 및 데이터 관련 작업 CRUD
- Client node : 마스터/데이터 노드에 맞게 클러스터 요청을 라우팅해주는 역할
- Ingest node : 인덱싱하기 전에 document 전처리 작업.
- 하나의 노드에서 위에 제시한 4개의 역할을 수행할 수 있지만 비효율적이라 운영환경에서는 다수의 노드를 클러스터링해서 적절한 역할을 부여해주는 것이 좋다.
2-3. 인덱스 (Index)
- 데이터 집합소. == RDBMS의 테이블과 같은 개념
- 기존에는 인덱스 안에 타입(Type)을 통해 document들을 분류 할 수 있었으나 현재는 인덱스당 한개의 타입만 가질 수 있다.
2-4. 도큐먼트 (Document)
- 인덱스에 저장되는 하나의 json object
- 도큐먼트는 여러 필드 (field)로 구성되어있다.
- Dynamic Mapping : field에 데이터 타입 (string, int등) 을 정의하지 않아도 데이터에 맞춰서 데이터 타입을 지정해준다.
2-5. 샤드 (Shard)
- 데이터를 인덱스에 저장하는데 있어, 이를 한곳에 저장하지 않고 물리적으로 여러 조각으로 나누어 저장한다.
- 인덱스를 생성하는 과정에서 몇개의 샤드로 할 지 정할 수 있으며, 디폴트로 5개다.
2-5. 레플리카 (Replica)
- 샤드는 인덱스의 확장성(Scalability)를 담당한다면, 레플리카는 고가용성(High Availability)를 담당한다.
- 데이터 원본을 저장하는 곳을 프라이머리 샤드(Primary Shard)라고 하는데 요놈의 복제본이 레플리카다.
- 프라이머리와 레플리카는 물리적으로 다른 곳에 저장되며, 샤드 혹은 노드에 문제가 발생되면 다른 노드에 있는 레플리카를 사용하게 된다.
3. 정리
4. 참고
Elasticsearch는 무엇인가요?
로그, 시스템 메트릭, 웹 애플리케이션 등 다양한 소스로부터 원시 데이터가 Elasticsearch로 흘러들어갑니다. 데이터 수집은 원시 데이터가 Elasticsearch에서 색인되기 전에 구문 분석, 정규화, 강화
www.elastic.co
Elasticsearch Tutorial: Creating an Elasticsearch cluster | Logz.io
This tutorial provides information on how to set up an Elasticsearch cluster, and will add some operational tips and best practices to help you get started.
logz.io
728x90
'[Elasticsearch]' 카테고리의 다른 글
[Elasticsearch] Springboot에서 Elasticsearch구현하기 - Document (0) | 2022.05.08 |
---|---|
[Elasticsearch] Springboot에서 ES구현하기 - Index (0) | 2022.05.08 |
[Elasticsearch] Elasticsearch vs RDBMS (0) | 2022.05.08 |