• Near Real Time
    • Elasticsearch 는 실시간 검색 플랫폼
    • 인덱스 생성 시점부터 검색 가능 시간까지 약간의 대기 시간 (보통 1 초)이 있긴 하다.

 

  • Cluster
    • 모든 데이터를 보유하고 있는 노드들의 집합
    • 모든 노드에 검색할 수 있고, 연합된 인덱싱을 제공한다.
    • 클러스터의 default 이름은 "elasticsearch"
    • 노드가 클러스터의 이름으로 클러스터에 join하게끔 설정되어 있을 수 있으니, 클러스터 이름을 중요시하자!
    • 다른 환경에서 같은 클러스트 이름을 쓰게 되면 노드가 엉뚱한 클러스터에 join되는 결과를 맞볼 수 있으니 같은 이름을 쓰지 않게 주의하자.
    • Cluster 건강한지 확인하기 (ㅋㅋ)
      • GET /_CAT/health?v
        • Green : 굿
        • Yellow : 몇몇 replicas(아래 설명 참고)가 아직 할당되지 않은 상태
        • Red : 일부 데이터 not avliable

 

  • Node
    • 클러스터의 일부로써, 데이터를 저장하고 검색하는 기능을 하는 단일 서버
    • 노드이름은 중요하다 (클러스터 이름과 마찬가지로)
      • 왜 ? 나의 네트워크의 이름은 네트워크의 어떤 서버가 Elasticsearch 클러스터의 어떤 노드에 해당하는지 식별하려는 관리 목적에 중요합니다.
    • 클러스터 안에 여러개의 노드를 가질 수 있음 
    • 노드 하나로 운영할 땐 굳이 클러스터 구성 설정을 따로하지 않아도 된다. 
    • 관계형 데이터베이스와는 다르게 하나의 서버에 데이터가 다 저장되는 것이 아니라 여러개의 노드에 데이터가 저장되고 이것이 전부 모여 엘라스틱서치 서버를 만들게 된다. 
      • 데이터노드 : 데이터가 저장되는 노드로 샤드가 배치되는 곳이다. 
      • 마스터 노드 : 인덱스 샌성/삭제와 같은 클러스터 관련 전반적인 작업을 하는 곳이다.
      • 인제스트 노드 : 데이터를 전처리해준다.
      • 코디네이팅 노드 : 요청을 분산시켜준다.

 

  • Index
    • 관계형 데이터베이스의 '데이터베이스' 와 비슷
    • 차이라면 엘라스틱서치는 여러 인덱스를 동시에 검색할 수 있게 하였음 (=Multi Tenancy)

 

 

  • Shard
    • 인덱스 내부에 쪼개진 데이터들
    • 왜 쪼개나?
      • 대량의 데이터를 저장하면 단일 노드 서버의 하드웨어 용량을 초과할 수 있기 때문에
      • 엘라스틱 서치는 대량의 데이터를 다루는 서비스이기 때문에 데이터가 많아지면 노드를 구분하고, 구분하면서 데이터들이 쪼개지게 된다. 
      • 이렇게 쪼개면 볼륨을 분할하는 효과를 가져오기 때문에 성능/처리량이 증가한다. 
    • 프라이머리 샤드
      • 데이터의 원본
    • 레플리카 샤드
      • 프라이머리 샤드의 복제본
      • 중요함! Whay?
        • 샤드나 노드가 실패할 경우 고가용성을 제공하는데 이런 이유로 레플리카 샤드는 원본/기본 샤드와 동일한 노드에 할당되지 않는다.
        • 이 뜻은 무엇이냐면..
          • 검색 볼륨/처리량을 향상 시키는 동안에도 끊김 없이 처리 가능하다는 뜻
          • 왜냐하면 그동안 레플리카 샤드한테 처리하라고 시키면 되기 때문 

 

  • Document
    • 데이터 최소 단위
    • row
    • JSON Object

 

 

  • Field
    • 관계형 데이터베이스의 '열(Column)'
    • 관계형 데이터베이스의 열과 다른점?
      • 하나의 필드가 여러 개의 데이터 타입을 가질 수 있음

 

  • Mapping
    • 데이터 타입 지정 등의 필드 속성 정의

 

 

엘라스틱 공식문서를 참고하여 짧은 영어 실력으로 번역하고 이해한 내용을 정리하였습니다.

초보 개발자이니 틀린 부분이 있다면 언제든지 얘기해주세요 ^^

(참고 : https://www.elastic.co/guide/en/elasticsearch/reference/6.5)

+ Recent posts