ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [1,2장] 엘라스틱스택이란
    책/엘라스틱_스택_개발부터_운영까지 2022. 2. 20. 23:20

    내용정리

    배경

    • 전문 검색 기능을 제공하는 강력한 소프트웨어의 필요성 -> 엘라스틱 서치
    • 빅데이터 파이프라인을 구성하는 플랫폼 형태로 성장
    • 단순 검색엔진을 넘어서는 플랫폼으로 발전
    • 유연성 확보를 위해 데이터를 수집, 가공, 저장, 분석, 시각화하는 파이프라인을 구성(다양한 오픈소스 소프트웨어의 조합) => 엘라스틱 스택
    • 엘라스틱 스택 = 키바나(시각화) + 엘라스틱 서치(데이터 저장, 검색엔진) + 비츠, 로그스태시 (데이터 수집)

    엘리스틱 서치

    • JSON 도큐먼트 형태로 입력, 관리
    • 쿼리 결과에 대해 일치하는 원본 도큐먼트를 반환(일반적인 데이터베이스처럼)
    • 다양한 데이터 타입에 최적화
    • 검색엔진이면서 데이터베이스(일종의 NoSQL)의 역할
    • 용어 단위의 역인덱스 사전을 구축
    • 최적화된 컬럼 기반 자료구조를 저장 -> 병렬처리나 분산처리 가능

    검색엔진으로서 엘라스틱 서치

    • 스코어링, 즉 연관도에 따른 정렬
    • 검색에어 대한 유사도 스코어를 기반으로 한 정렬을 제공 -> 복잡한 문자열 컨텐츠에서 검색할 때 효과적
    • 분산시스템
    • 노드 간 복제 기능
    • REST API 이용 => 별도의 드라이버 라이브러리가 없어도 됨

    단점

    • 시스템 리소스를 많이 사용
    • DSL 쿼리 사용 => JOIN 어려우므로 반정규화를 기본으로 모델링이 필요함
    • 인덱스가 불변의 자료구조 => 수정 및 삭제의 비용이 큼

    키바나

    • 시각화와 엘라스틱서치 관리 도구

    로그스태시

    • 이벤트 수집과 정제를 위한 도구
    • 데이터 수집과 가공 기능 제공
    • 분석하기 쉬운 형태로 정제 및 다양한 플랫폼으로 내보낼 수 있음
    • 엘라스틱서치의 인덱싱 성능을 최적화 하기 위한 배치처리와 병렬처리 가능
    • 영속적 큐를 사용하여 이벤트의 처리 최소 1회 전송 보장
    • 부하 상황에서 안정성을 보장

    비츠

    • 엣지단에서 동작하는 경량 수집 도구

    엘라스틱스택의 용도

    1. 전문 검색 엔진
      • 용어단위로 분석해 인덱싱하며 이를 기반으로 검색을 수행하는 역인덱싱 기법이 활용됨
    2. 로그 통합 분석
      • 패턴을 기반으로 원문을 가공해 정형회된 수치를 추출하여 인덱싱하여 다양한 방식의 로그분석에 활용됨
      • 손쉬운 교차 분석이나 연관 분석이 가능 => 인덱스 패턴을 이용해 한번에 여러 인덱스에서 동시에 조회 가능
    3. 보안 이벤트 분석
    4. 애플리케이션 성능 분석
    5. 머신 러닝

    차별점

    • 근본은 검색엔진이기 때문에 빠르게 검색 및 집계하는데 최적화 => 더 많은 리소스 사용 => 일반 데이터베이스로 사용하기엔 무리가 잇음
    • 저장된 데이터를 수정, 삭제하는 것은 비효율적 => 이미 발생한 데이터는 변하지 않는 시계열 데이터 유형을 다루기에 좋음
    • 시계열 데이터란? 시계열 데이터란 일정한 시간동안 수집 된 일련의 순차적으로 정해진 데이터 셋의 집합
    • schema 자동 생성
    • 인터페이스? REST API
    • 샤딩 분산저장
    • 다양한 데이터 유형에 대한 빠른 검색/집계
    • 트랜잭션, JOIN 미지원

    스터디 후기

    • ELKStack을 DB처럼 사용하지 말라는 얘기는 다른 회사 차원에서 나오는 얘기인 듯 싶다. 기존에 토이 플젝을 하면서 ELKStack을 로그를 저장하는 DB처럼 사용한 것이 아쉬웠었는데, 이러한 방식으로 사용하는 경우가 종종 있는 듯 싶다.
    • filebeat, logstash를 elasticsearch가 아닌 다른 것들과 연동하여 사용하는지도 궁금했는데, 사용할 수는 있으나 연동 측면(사용성?!) 등등에서 대부분 elasticsearch를 사용한다.
    • 데이터 저장 기간 등에 대한 이야기도 나왔는데, 이 부분은 책을 끝까지 읽어봐야할 것 같다. DB에서도 데이터를 어떠한 주기로 관리하는지 영구 저장하는지 궁금했는데 elasticsearch가 아닌 RDB는 어떻게 관리하는지 좀 궁금하다.
    • 보통 인프라 팀이 있는 경우, elasticsearch에 대한 샤드?! 클러스터링 관리는 해주는 듯 싶다. 이 부분도 elasticsearch가 어떻게 노드 관리가 되는지까지 읽어봐야 좀 더 이해되지 않을까 싶다.
    • 로그 관리를 보면 대부분 그라파나, 프로메테우스로 시각화를 하는 경우가 많다고 생각했다. 키바나를 사용하여 시각화하는 것과 어떤 차별점이 가지는지 좀 궁금했다. 보통 시계열 데이터(로그 등)에 대해서는 그라파나를 통해 시각화를 하는 것 같고, 키바나는 로그성이 아닌 트랜잭션이나 데이터 조합?!, 쿼리 등등을 해줄 수 있는 장점이 있다. 모두 시각화도구이기는 하나 시각화해주는 특성이 조금 다른데 초점이 맞춰져 있고 목적이 다른데 있는 도구라는 생각이 들었다.
    • 2장은 윈도우 설치라서 elasticstack 설치를 안 했는데, 3장 이후 실습 하려면 환경구성이 필요하겠다! 

    참고

     

    댓글

Designed by Tistory.