반응형

 

목차

1. Elasticsearch

2. ELK (Elasticsearch / Logstash / Kibana) 스택

3. Elasticsearch와 RDBMS 비교

4. Elasticsearch와 RDBMS 간 관계

5. 핵심개념

6. Elasticsearch를 사용하는 이유

7. Elasticsearch의 단점

 

1. Elasticsearch

Elasticsearch는 오픈소스 검색 및 분석 엔진으로, Apache Lucene을 기반으로 한 분산형 데이터베이스이다. 대량의 데이터를 신속하게 저장, 검색 및 분석할 수 있으며 Full text search 기능이 제공된다.

 

2. ELK (Elasticsearch / Logstash / Kibana) 스택

ELK 스택은 Elasticsearch, Logstash, kibana로 구성된 데이터 분석 및 시각화 도구의 집합이다. 각 구성 요소는 특정 기능을 담당하며, 이들을 함께 사용하여 데이터 수집, 저장, 분석을 시각화할 수 있다. 현재는 Elastic 스택이라고 하며 Beats도 추가됐다.

 

Elasticsearch

역할 : 데이터 저장 및 검색 엔진

기능 : 대량의 데이터를 빠르게 저장, 검색가능한 분산형 데이터베이스 및 검색엔진. 스키마 없는 JSON문서 형식으로 데이터를 색인하고 검색 및 집계 기능을 제공

 

Logstash

역할 : 데이터 수집, 변환, 전송

기능 : Logstash는 다양한 소스에서 로그 데이터 및 이벤트 데이터를 수집하고, 필터를 통해 데이터를 변환하며, 다양한 대상으로 데이터를 전송하는 역할을 한다. 주로 로그 데이터를 수집하여 Elasticsearch에 전송한다.

 

Kibana

역할 : 데이터 시각화 및 대시보드

기능 : Elasticsearch에 저장된 데이터를 시각적으로 탐색하고 분석할 수 있는 대시보드 및 시각화 도구이다. 차트, 그래프, 지도 등을 사용하여 데이터를 시각화 하고 검색 및 분석 작업을 수행할 수 있다.

 

 

 

3. Elasticsearch와 RDBMS 비교

Elasticsearch RDBMS
type table
index database
mapping schema
document row
field column

 

 

 

 

4. Elasticsearch와 RDBMS간 관계

CRUD Elasticsearch RDBMS
READ GET SELECT
UPDATE PUT UPDATE
CREATE POST INSERT
DELETE DELETE DELETE

 

 

 

5. 핵심 개념

클러스터 

정의 : 클러스터는 하나 이상의 노드로 구성된 Elasticsearch 인스턴스 그룹

기능 : 데이터의 분산, 고가용성 및 확장성을 지원, 모든 노드 간의 협력을 통해 데이터에 접근

 

노드

정의 : 노드는 Elasticsearch 클러스터 내에서 실행 중인 단일 Elasticsearch 인스턴스

기능 : 각 노드는 클러스터의 일부로서 데이터를 저장하고 검색 및 분석 작업을 수행

 

인덱스

정의 : 인덱스는 유사한 유형의 문서들을 묶어서 저장하는 논리적인 단위. 각 인덱스는 하나 이상의 샤드를 가질 수 있음.

기능 : 특정 종류의 데이터를 논리적으로 그룹화하여 검색 및 질의를 쉽게 수행

 

샤드

정의 : 샤드는 Elasticsearch에서 데이터의 기본 단위. 데이터를 분산하여 저장하는 단위

종류 : 프라이머리 샤드(Primary Shard), 레플리카 샤드(Replica shard)로 나누어짐

프라이머리 샤드 : 원본 데이터의 일부를 저장하는 사드. 인덱싱된 데이터의 원본이 저장됨.

레플리카 사드 : 프라이머리 샤드의 복사본. 데이터의 안정성 및 복제를 위해 사용.

 

6. Elasticsearch를 사용하는 이유

속도

전체 텍스트 검색에 뛰어나고 실시간 검색 플랫폼이다. 이것은 문서가 색인될 때부터 검색가능시간까지 아주 짧다는 뜻이다. 보통 1초 정도 걸린다. 

 

분산적

Elasticsearch에 저장된 문서는 샤드라고 하는 여러 컨테이너에 걸쳐 분산되며 하드워드 장애 시 중복되는 데이터의 사본까지 제공한다. 분산적인 특징은 수백 개, 수천 개의 서버까지 확장하고 페타바이트의 데이터를 처리할 수 있게 해 준다

 

광범위한 기능

속도, 확장성, 복원력뿐 아니라 데이터 롤업, 인덱스 수명주기 관리 등과 같이 데이터를 훨씬 더 효율적으로 저장하고 검색할 수 있게 해주는 강력한 기본 기능이 다수 탑재되어 있다.

 

간소화

Beats와 Logstash의 통합은 Elasticsearch로 색인하기 전에 데이터를 훨씬 더 쉽게 처리할 수 있게 해 준다. Kibana는 Elasticsearch 데이터의 실시간 시각화를 제공하며, UI를 통해 애플리케이션 성능 모니터링, 로그, 인프라 메트릭 데이터에 신속하게 접근하게 해준다.

 

7. Elasticsearch의 단점

높은 리소스 요구

큰 규모의 클러스터를 운영하려면 적절한 하드웨어, 인프라가 필요하며 이는 비용이 증가할 수 있다.

 

롤백 기능이 없다

전체적인 클러스터의 성능 향상을 위해 시스템적으로 소모가 큰 롤백, 트랜잭션을 지원하지 않는다. 

 

데이터 수정, 삭제의 비효율성

Elasticsearch는 실시간 검색과 분석을 위해 설계되었다. 그렇기 때문에 데이터 수정이나 삭제는 상대적으로 비효율적이다.

반응형

+ Recent posts