Elastic Stack 이란?
Elastic Stack은 Elasticsearch(검색엔진, 저장), kibana(시각화), Logstash 및 Beats(로그수집)을 포함한다. Elastic Stack을 사용하면 데이터 위치 소스와 포맷에 관계 없이 모든 데이터를 실시간으로 검색, 분석 및 시각화가 가능하다
1. Elastic Search
일래스틱서치는 일래스틱 스택의 중심부에서 검색과 분석 엔진이라는 중요한 임무를 수행하게 된다.
일래스틱 서치의 특징을 알아보자.
특징 1. 스키마리스 및 도큐먼트 지향
일래스틱 서치는 엄격한 데이터 구조를 요구하지 않기 때문에 어떠한 JSON 도큐먼트도 저장할 수 있다. JSON 도큐먼트는 관계형 데이터베이스 에서는 행과 열로 사용하며 테이블의 레코드와 거의 같다고 볼 수 있다. 관계형 데이터베이스 의 경우 데이터 타입, 크기, 고정된 열을 지정하기 위한 스키마를 정의 하게 된다.
하지만 데이터들이 똑같은 형식을 가지지 않고 동적인 열이 필요 할 때가 있다. JSON 도큐먼트는 이러한 데이터 타입을 지원한다.
특징 2. 검색
일래스틱서치의 핵심 강점은 텍스트 처리 기능 이다.
관계형 데이터 베이스의 경우 String 열을 조회하는 단순한 SQL 쿼리는 Where 절과 동등을 의미하는 "=" 혹은 LIKE절을 이용하여 데이터가 정확히 일치하거나 문자열 일부분이 일치하는지 확인할 뿐이다
일라스틱 스택은 불규칙한 구조를 가진 어떤 텍스트라도 색인을 생성한 후 특정 검색어로 모든 도큐먼트를 검색할 수 있다. 또한 텍스트 데이터 뿐만 아니라 숫자, 날짜, 위치 , IP 주소 등 다양한 데이터 타입을 제공한다. 그래서 구글검색과 비슷한 무척 빠르고 유연한 검색기능을 애플리케이션에 도입할 수 있다.
특징 3. 분석
일래스틱서치의 분석기능은 엄청난 양의 데이터에서 필요한 사항만 정확하게 확인할 수 있게 된다. 웹사이트 방문자 중 다른 나라와 비교해 미국에서만 방문하는 사용자 수를 알고 싶거나 웹사이트 방문자가 사용하는 맥 OS , 윈도우, 리눅스 사용 여부를 알고 싶을 때 유용하다.
특징 4. 풍부한 클라이언트 라이브러리와 REST API 지원
20개 이상의 프로그래밍 언어에서 사용할 수 있는 라이브러리를 지원한다. REST API 의 모든 연산을 HTTP에 활용할 수 있다.
특징 5. 운영 및 확장 용이
하나의 노드에서 수백개의 노드로 확장이 가능하다. 수평적으로 확장이 가능하며 비싼 서버 한대에서 실행하기 보단 수십 수백개 상용노드에서 실행할 수 있다. 클러스터에 노드를 추가하는 일은 추가 구성이 거의 필요없이 같은 네트워크에서 새로운 노드를 시작하기 만 하면된다.
특징 6. 거의 실시간/신속성/결함 허용성
- 데이터는 저장 및 색인 후에 1초 이내에 쿼리를 통해 이용할 수 있다.
- 도큐먼트의 모든 필드에 대해 색인을 생성하며 어떤 필드든 검색할 수 있어 유용하다.
- 노드 장애가 발생하면 모든 데이터를 클러스터의 다른 노드로 복제한다. 네트워크 장애 시에도 마스터의 복제본을 사용해 클러스터를
게속 실행할 수 있다.
2. Logstash
로그스태시는 로그 매트릭 또는 다른 형식의 이벤트 데이터를 한 곳으로 모으는 데 사용한다. 데이터를 보내기 전에 여러 방법으로 가공할 수 있으며 핵심 구성요소로 데이터 파이프라인에서 데이터 수집 및 변환 처리를 담당한다.
일반적으로 Elastic Search에 데이터를 보내게 되지만 더 다양한 곳으로 보낼 수 있다. Logstash 는 입력 필터 출력이라는 세가지 타입 플러그인을 지원하고 200개 이상의 플로그인을 지원하며 증가하고 있다.
Logstash는 확장할 수 있고 실시간 데이터 파이프라인을 구축하는데 유용한 범용 데이터 흐름 엔진이다.
3. 비트
비트는 단말장치의 데이터(서버측에서 동작하는 플랫폼)를 Logstash 와 Elasticsearch로 전송하는 가벼운 데이터 수집기 플랫폼입니다. Logstash 처럼 데이터 수집을 하는 기능이 있다.
4. 키바나
키바나는 데이터를 시각화하고 Elastic Stack 의 모든 기능을 구성 및 관리할 수 있는 확장형 UI 도구 이다.
5. X Pack
엑스팩은 일래스틱 스택을 운영 환경에서 사용할 수 있도록 필수 기능인 보안, 모니터링, 알림, 보고서, 그래프 기능을 지원한다.
출처: 엘라스틱 스택 6 입문 (파라나브 슈클라 , 시랏 쿠마 지음)
'공부' 카테고리의 다른 글
ORM 이란? (0) | 2020.10.21 |
---|---|
백앤드 개발자 로드맵 (0) | 2020.10.18 |
웹서버 - Reverse Proxy란 (0) | 2020.09.11 |
My SQL - pymysql cursor 개념 (1) | 2020.09.08 |
Github 사용법에 대해서 (0) | 2020.09.06 |