본문 바로가기
IT/Knowledge

ElasticSearch 란?

by 성준하이 2022. 9. 20.
반응형

Elasticsearch는 Apache Lucene(아파치 루씬) 기반의 java 오픈소스 분산 검색 엔진이다.

 

데이터베이스로 알려져 있기는 하지만 "데이터 저장소"가 아니라서 우리가 아는  MySQL 같은 데이터베이스를 대체할 수 없다.

방대한 양의 데이터를 신속하고 거의 실시간으로 저장,검색,분석할 수 있는것이 장점이다.

 

Elasticsearch는 검색을 위해 단독으로 사용되기도 하며,  ELK( Elasticsearch / Logstatsh / Kibana )스택으로 사용되기도 한다.

이 부분에 대해서는 추후에 다시 다뤄볼 것이다.

 

 

그럼 과연 RDBMS 랑은 어떤 차이가 있는걸까?

Elasticsearch와 관계형 DB (RDBMS)의 비교
RDBMS Elasticsearch
schema mapping
database index
table type
row document
column field

얼핏 보면 document 기반의 nosql인것 같기도 하면서도 또 다른 느낌이다.

 

Elasticsearch를 REST API를 사용하여 관계형 데이터베이스간 관계
Elasticsearch Relational DB CRUD
GET SELECT READ
PUT UPDATE UPDATE
POST INSERT CREATE
DELETE DELETE DELETE

 

Elasticsearch 용어 정리
  • 클러스터
    • 하나 이상의 노드가 모인것으로 이를 통해서 전체 데이터를 저장하고 모든 노드를 포괄하는 통합 색인화 및 검색 기능을 제공
    • 클러스터는 고유한 이름으로 구분되고 기본은 'elasticsearch'이다
  • 노드
    • 클러스터에 포함된 단일 서버로 데이터를 저장하고 클러스터의 색인화 및 검색 기능에 참여
    • 노드 역시 클러스터 처럼 이름으로 식별이 되고 기본 이름은 노드에 지정되는 임의 UUID 이다.
  • 인덱스(색인)
    • 비슷한 특성을 가진 문서의 모음
    • 단일 클러스터에서 원하는 갯수의 색인을 정의할수 있다.
  • 타입(유형)
    • 하나의 인덱스에서 하나 이상의 유형을 정의 할수 있다.
  • 도큐먼트(문서)
    • 색인화 할수 있는 기본 정보 단위
  • 샤드 & 리플리카
    • 색인은 방대한 양의 데이터를 저장할수 있는데 이 데이터가 단일 노드의 하드웨어 한도를 초과할수도 있다.
      이럴 경우에 샤드는 독립적인 색인 기능을 하고 리플리카는 복제를 한다.
사용이유

Elasticsearch는 빠르다.

Elasticsearch는 Lucene을 기반으로 구축되기 때문에, 전체 텍스트 검색에 뛰어남. Elasticsearch는 또한 거의 실시간 검색 플랫폼으로 이것은 문서가 색인될 때부터 검색 가능해질 때까지의 대기 시간이 아주 짧다는 뜻이다. 이 대기 시간은 보통 1초정도이며 결과적으로, Elasticsearch는 보안 분석, 인프라 모니터링 같은 시간이 중요한 사용 사례에 이상적이다.

 

Elasticsearch는 본질상 분산적이다. 

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

 

Elasticsearch는 광범위한 기능 세트와 함께 제공된다. 

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

 

Elastic Stack은 데이터 수집, 시각화, 보고를 간소화한다. 

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

반응형

'IT > Knowledge' 카테고리의 다른 글

kibana 란?  (49) 2022.09.22
Logstash 란?  (50) 2022.09.21
정규 표현식 정리(Regex)  (59) 2022.09.19
CORS 란?  (62) 2022.09.14
Context Switch(컨택스트 스위치) 란?  (53) 2022.09.12

댓글