728x90
반응형
SMALL
학습내용
- ElasticSearch 개요
- Apache Lucene의 주요 특징
- ElasticSearch 아키텍처
학습정리
1. ElasticSearch 개요 및 아키텍처
- 오픈소스 기반의 분산형 검색 및 분석 엔진입니다.
- JSON 기반 RESTful API를 제공하여 다양한 애플리케이션과 쉽게 연동 가능합니다.
- Apache Lucene을 기반으로 개발된 고성능 검색 엔진입니다.
- Apache Lucene은 고성능, 확장 가능한 오픈소스 검색 라이브러리로, Java 기반으로 개발되었습니다.
- 검색 엔진의 핵심 기능을 제공하며, 텍스트 기반의 색인(Indexing) 및 검색(Search) 기능을 수행합니다.
- Lucene은 독립적인 검색 라이브러리이지만, ElasticSearch, Solr 같은 검색 엔진의 핵심 컴포넌트로 사용됩니다.
- ElasticSearch는 Lucene을 기반으로 구축되었으며, Lucene의 강력한 검색 기능을 RESTful API로 제공하는 구조입니다.
2. Apache Lucene의 주요 특징
- 전체 텍스트 검색(Full-Text Search) 지원
- 단순 키워드 검색뿐만 아니라, 다양한 검색 기능(예: 구 검색, 와일드카드 검색, 퍼지 검색 등)을 제공합니다.
- 역색인(Inverted Index) 기반
- 문서를 색인하여 검색 속도를 극대화합니다.
- 키워드와 문서 ID의 매핑을 효율적으로 저장하여 빠른 검색을 지원합니다.
- 강력한 검색 기능
- Boolean 검색 (AND, OR, NOT)
- 와일드카드 검색 (*, ?)
- 퍼지(Fuzzy) 검색 (오타 보정)
- 근접(Proximity) 검색
- 높은 성능 및 확장성
- 수백만 개의 문서도 빠르게 색인하고 검색 가능
- 병렬 색인 및 검색 지원
- 정렬 및 랭킹 기능
- TF-IDF, BM25 등의 가중치를 기반으로 검색 결과를 랭킹
- 사용자가 원하는 기준(날짜, 점수 등)으로 정렬 가능
- 다양한 언어 지원
- 한국어, 영어, 중국어 등 다양한 언어의 형태소 분석과 검색 지원
- 형태소 분석기 플러그인 활용 가능
- 오픈소스 및 확장 가능
- 자바 기반 오픈소스로, 다양한 애플리케이션에 쉽게 통합 가능
- Elasticsearch, Solr 같은 검색 엔진의 기반 기술
3. ElasticSearch 아키텍처
https://devopsideas.com/different-elasticsearch-components-and-what-they-mean-in-5-mins/
용어정리
- Cluster
- 여러 개의 노드로 구성된 ElasticSearch의 전체 시스템
- Node
- 클러스터 내에서 데이터를 저장하고 검색 요청을 처리하는 개별 서버
- Index
- 인덱스는 문서의 모음
- 클러스터 내부에서 노드는 다음과 같은 역할을 합니다.
- Master Node
- 클러스터 상태 관리 및 노드 추가/제거 수행
- Data Node
- 데이터 저장 및 검색, 색인 처리 담당
- Ingest Node
- 데이터를 전처리하여 저장하는 역할 수행
- Coordinator Node
- 클라이언트 요청을 받아 데이터 노드로 분배
- Master Node
- Shard와 Replica
- 샤드 → 데이터를 분할하여 저장하는 기본 단위
- 레플리카 → 데이터 복제본을 유지하여 고가용성 제공
- 샤드와 레플리카 개수 조절을 통해 ElasticSearch의 성능 최적화가 가능합니다.
클러스터 상태
- Green (녹색)
- 클러스터의 모든 주 샤드(primary shards)와 복제 샤드(replica shards)가 정상적으로 할당되어 있습니다.
- 이 상태는 클러스터가 최적의 상태에 있으며 모든 데이터가 안전하게 복제된 것을 의미합니다.
- Yellow (노란색)
- 모든 주 샤드는 할당되었으나 하나 이상의 복제 샤드가 할당되지 않았습니다.
- 주 샤드는 사용 가능하지만, 일부 복제 샤드가 할당되지 않아 데이터의 내고장성이 완벽하지 않은 상태입니다.
- 주 샤드의 노드가 실패할 경우, 해당 데이터의 복제본이 없어 데이터 손실의 가능성이 있습니다.
- Red (적색)
- 하나 이상의 주 샤드가 할당되지 않은 상태입니다.
- 데이터의 일부가 사용 불가능함을 의미하며, 시스템에 문제가 있는 상태입니다.
- 적색 상태에서는 해당 샤드의 데이터에 접근할 수 없으므로 데이터 손실이 발생할 수 있습니다.
- Green (녹색)
728x90
반응형
LIST
'TIL' 카테고리의 다른 글
10_5.k8s ide 도구인 lens를 통해이벤트 로깅 실습 (0) | 2025.03.06 |
---|---|
10_4.k8s 볼륨, Persistent Volumes, StatefulSets의 이해 및 실습 (0) | 2025.03.03 |
10_3.k8s Service 및 Ingress 컨트롤러 실습 (0) | 2025.03.03 |
10_2.k8s Pod와 Deployment 관리 실습 (1) | 2025.02.27 |
10_1.Kubernetes 개념 및 Minikbue 설치 및 구성 (0) | 2025.02.24 |