[Spring-ELK] 엘라스틱 서치? 그게 뭔데

kang·2024년 11월 5일

Spring_ELK

목록 보기
1/10
post-thumbnail

한동안 블로그 작성을 안 한 이유
진짜 진심으로 하루 12시간씩 화면만 들어다보니까 지쳐서 도저히 작성을 못하겠다가 중간발표 앞두고 들어와서 급하게 적는 중이다!

아무튼 현재 진행 상황
기본 기능 구현은 다 마무리 져있는 상태에서 엘라스틱 서치 기능을 도입하기로 했다.
근데 나는 엘라스틱 서치라는 단어만 들어본 상황이여서 먼저 공부하곘다.

엘라스틱의 주 키워드는 다음과 같다.

  • 오픈소스
  • 검색이나 분석에서 사용
  • 수평적으로 덧붙일 수있고, 덧붙이게 되면 데이터나 트래픽을 관리할 수 있음

특징

여러개의 노드 위에서 데이터를 분산시켜서 쿼리를 하면 할 수록 동시적으로 대답을 받을 수 있음

몇백개의 수평적으로 서버를 늘릴 수 있어요

여러개의 데이터 타입을 사용가능하다

여러개의 소스(어플리케이션이나 로그)를 받아서 처리할 수 있다

일단 대충 검색엔진이라는 것!

그리고 필요한 것

  • Document


뭐 대충 정리한 거였지만 대충 검색속도를 최적화하기 위해 사용하는 검색엔진이다. 참고로 역색인이라는 걸 사용해서 기존 검색보다 유연하고 정확도있게 검색이 가능하다!


엘라스틱 서치가 어떻게 작동을 하는가?

  1. Data Distribution and Storage
    1. Indexing
      • 데이터베이스안에 저장된 documents,
      • 인덱스를 활용해서 저장하거나 검색함
    2. Sharding
      • indexing이 document가 여러개로 묶인 집합체이면 이걸 나눠줌(분리)
      • 얘는 복제도 되고, 서버별로 분산도 됨
    3. replicas
      • 나누었던 샤드를 copy를 하는 역할
    4. search Mecanisms
      • Query Processing
        • 키워드 submitted 을 하면 Lucene index로 변환됨. (Lucene index가 읽을 수 있는 형태로 바뀐데)
      • Relevance Scoring
        • document안의 키워드를 세거나 분산되었는지 확인?
    5. Real-Time Operations
      • 실시간으로 검색, 실시간 인덱싱이 가능함(빠름)
    6. Cluster Management
      • 모든 데이터는 노드에 분산되어있고, 노드 안에는 데이터와 인덱싱 포함
      • 마스터 노드: 노드를 관리하는 노드?
      • 각각의 노드: restful api를 사용해서 커뮤니케이션중
    7. 분석
      • 인덱싱을 통해서 분석, 필터도 사용가능

그럼 이런 elastic search를 어디에서 쓰는가?


예시 회사들을 보여주면 뭔지는 정확하게 몰라도 쓰는게 좋음을 확신할 수 있었다.

ELK 가 뭐야?

-> ELK 스택은 Elasticsearch, Logstash, Kibana의 약자다! 로그와 데이터 분석을 위한 통합환경을 말한다.
Logstash는 데이터를 수집하고 변환하며, Kibana는 시각화 도구로 데이터를 그래프로 보여주는 역할을한다.

profile
뉴비 개발 공부중

0개의 댓글