흰 스타렉스에서 내가 내리지

1. Elastic Stack 구축 본문

ElasticSearch

1. Elastic Stack 구축

주씨. 2023. 5. 7. 20:29
728x90

Elastic Stack

- Elastic Stack은 어떤 하나의 통합된 솔루션이 아니라 4개의 product로 구성되어 있는 하나의 stack 이다.
- 기존에는 ElasticSearch + Logstash + Kibana를 ELK라는 서비스명으로 제공하였으나, 5.0.0버전부터 Beats가 추가되어 Elastic Stack이라는 이름으로 변경되었다고 한다.


ELK

  • Elasticsearch :
    • 대량의 데이터를 신속하고 거의 실시간으로 저장, 검색 및 분석
    • 일반적으로 복잡한 검색 기능과 요구 사항이 있는 응용 프로그램을 구동하는 기본 엔진 / 기술
  • Logstash : 여러 소스에 동시에 데이터를 수집하여 변환한 후 Elasticsearch 같은 “stash”로 전송하는 서버 사이드 데이터 처리 파이프라인
  • Kibana : 사용자가 Elasticsearch에서 차트와 그래프를 이용해 데이터를 시각화
  • Beats : 데이터 수집 기능

용어

  • Near Realtime (NRT)
    • Elastic Search는 거의 실시간 검색 플랫폼
    • 문서를 색인할 때부터 검색 기능할 때까지 약간의 대기시간(일반적으로 1초)이 매우 짧음
  • 클러스터(Cluster)
    • 전체 데이터를 함께 보유하고 모든 노드에서 연합 인덱싱 및 검색 기능을 제공하는 하나 이상의 노드(서버) 모음 -> 노드의 그룹이라고 생각
    • 클러스터는 기본적으로 elasticsearch 라는 고유한 이름으로 식별
    • 이 이름은 노드가 이름으로 클러스터에 참여하도록 설정된 경우 노드가 클러스터의 일부일 수 있기 때문에 중요
  • 노드(Node)
    • 노드는 클러스터의 일부이며 데이터를 저장하고 클러스터의 인덱싱 및 검색 기능에 참여하는 단일 서버
    • 단일 클러스터에서 원하는 만큼 노드를 소유 가능
    • 현재 네트워크에서 실행중인 다른 Elasticsearch 노드가 없는 경우 단일 노드를 시작하면 기본적으로 elaticsearch라는 새로운 단일 노드 클러스터가 생성
  • 색인(index)
    • 색인은 다소 유사한 특성을 갖는 문서의 컬렉션
    • 색인은 이름(모두 소문자여야함)으로 식별되며 이 이름은 색인 작성, 검색, 갱신 및 삭제할 때 색인을 참조하는데 사용
    • RDB 관점에서 보면 DB에 해당
  • Type
    • 다른 종류의 data들을 같은 index에 저장하게 해주는 index의 ‘논리적인’ 부분을 의미
    • 7.x 버전부터 해당 개념이 전체 삭제 -> deprecated
    • RDB 관점에서 보면 Table에 해당
  • Documments
    • 문서는 색인을 생성할 수 있는 기본 정보 단위
    • JSON으로 표현
    • RDB 관점에서 Record
  • Shards
    • 데이터를 분산해서 저장하는 방법을 의미합니다.
    • Scale-Out을 위해 RDB의 Database에 해당하는 Index를 여러 Shard로 쪼갭니다.
    • 기본적으로 1개가 존재하며, 검색 성능 향상을 위해 클러스터의 Shard 개수를 조정할 수 있습니다.
  • Replicas
    • 또 다른 형태의 Shard를 의미합니다.
    • 노드를 손실했을 경우, 데이터의 신뢰성을 위해 Shard를 복제하는 것입니다.
    • 따라서 Replica는 서로 다른 노드에 위치시킬 것을 권장하고 있습니다.

 

...