Elasticsearch는 실시간 검색 및 분석에 특화된 오픈 소스 분산 검색엔진으로
데이터를 인덱싱하고 검색, 분석, 시각화하는 데 사용함
데이터를 중앙에 저장해 손쉽고 빠른 검색을 가능하게 하며 정확도 및 강력한 분석을 제공하는 데이터 베이스로 자바 기반의 오픈 소스인 Lucene 검색 엔진을 기반으로 하며
RESTFul API 지원으로 분산 처리 및 복제 등 다양한 기능을 제공함
CRUD와 Elastic Search RESTful 비교
CRUD | Elastic Search RESTful |
---|---|
SELECT | GET |
INSERT | POST |
UPDATE | PUT |
DELETE | DELETE |
RDMS | ElasticSearch |
---|---|
Database | Index |
Tables | Patterns/Types |
Rows | Documents |
columns | Fields |
Schema | Mapping |
높은 메모리 사용량
처리 속도 저하
클라이언트는 원하는 RESTful API 또는 클라이언트 라이브러리를 사용해 JSON 형식으로 구성된 요청을 보냄
클라이언트 요청은 먼저 ElasticSearch 클러스터의 마스터 노드에 보내지고 이때 마스터 노드는 클러스터의 상태를 관리하고 요청을 적절하게 노드로 라우팅함
마스터 노드는 요청을 처리할 적절한 데이터 노드를 결정하고 데이터 노드는 요청을 받아 쿼리를 실행함 이때 데이터 노드는 해당 인덱스의 샤드에 대한 작업을 수행함
데이터 노드는 쿼리를 실행 하고 필요한 샤드에 데이터를 검색함 이때 각 샤드는 해당 샤드의 일부 데이터만 검색함
검색된 결과는 데이터 노드에 수신되는데 마스터 노드가 이를 받아들이고 최종 검색 결과를 구성함
마스터 노드는 최종 검색 결과를 JSON 형식으로 응답을 클라이언트에 반환함
ElasticSearch는 강력한 검색 및 분석 기능을 제공해 다양한 유형의 쿼리를 지원하고 복작합 데이터 구조를 색인화하고 검색할 수 있음
검색 작업을 할 때 사용되는 데이터를 위해 별도의 상태 갱신 작업이 필요하지 않음
Elastic Search는 데이터가 변경되거나 추가될 때 실시간으로 색인화하여 즉시 검색이 가능하게 함 이런 작업을 기존 ORM을 사용하여 구현하는 경우 데이터 변경이 발생할 때마다 일정한 간격으로 데이터 색인화를 해줘야 하기 때문에 반응 속도 등이 ElasticSearch보다 훨씬 떨어짐
검색 작업 뿐 아니라 ElasticSearch는 다양한 검색 및 집계 기능을 제공해 데이터 검색 및 분석이 가능함 나아가 ELK Stack을 이용해 시스템 상태를 실시간으로 파악하고 문제 해결을 가능하게 함
: ElasticSearch, Logstash, Kibana를 구성하고 로그 데이터의 수집, 저장, 시각화를 위한 오픈 소스 플랫폼
ELK Stack은 대규모 시스템의 로그 및 이벤트 데이터를 실시간으로 수집, 저장, 분석해 시각화할 수 있는 강력한 도구를 제공함
따라서 모니터링, 로그, 분석, 보안 등 다양한 용도로 활용이 가능함
이를 활용해 시스템 상태를 실시간으로 파악 가능하며 문제를 신속하게 해결 가능하고 데이터 기반 의사 결정을 지원함