[Elasticsearch] Elasticsearch의 동작 방식 및 아키텍처

Noh_level0·2025년 3월 24일
0
post-thumbnail

Elastic Stack이란?


데이터를 수집, 분석, 검색, 시각화할 수 있는 오픈 소스 소프트웨어 모음(오픈소스 데이터 분석 플랫폼)을 말한다.
예전에는 ELK Stack(Elasticsearch, Logstash, Kibana)이라고도 불렸는데, Beats가 추가되면서 Elastic Stack이라는 이름으로 확장되었다.

Elastic Stack 구성요소

구성 요소역할 설명
Beats경량 데이터 수집 에이전트. 서버나 클라이언트에서 직접 데이터를 수집해 Logstash나 Elasticsearch로 전달함.
Logstash로그, 메트릭 등 다양한 데이터를 수집하고 가공한 뒤 Elasticsearch로 전달하는 데이터 파이프라인 도구.
Elasticsearch실시간 검색과 분석을 위한 분산 검색 엔진. 모든 데이터가 이곳에 저장됨.
KibanaElasticsearch에 저장된 데이터를 시각화하고 대시보드로 보여주는 웹 인터페이스. 분석과 모니터링에 사용됨.

Elasticsearch 동작 방식 및 아키텍처

Cluster

클러스터는 하나 이상의 Elasticsearch 노드로 구성된 노드들의 집합을 의미한다.

안정성을 위한다면 단일 노드보다는 클러스터로 구성하는 것을 권장한다.
클러스터 내 모든 노드는 같은 클러스터 이름(cluster.name)을 공유하며, 서로 데이터를 주고받고, Index와 Shard를 자동으로 분산 관리한다.-
또한 각 노드는 자신이 속한 클러스터의 데이터에만 접근하거나 데이터를 주고받을 수 있으며, 다른 클러스터의 데이터에는 접근할 수 없다.

Data Distribution and Storage

Index

  • DB라고 생각하면 된다. Document들이 저장되는 물리적인 공간이다.
  • 즉, 이 안에는 Document라고 하는 JSON이 저장된다.
  • Document 및 Field 예시

Shard

  • 여러 Document들이 들어있는 Index를 여러개로 나누어 주는 것.
  • Shard는 clone이 될 수도 있고, 여러개의 서버로 나누어 저장할 수도 있다.

Replica

  • 여러개로 나누었던 Shard를 copy하는 것.
  • 즉, Primary Shard를 복제한 Shard이다.
  • 원본 document가 저장되는 샤드는 primary shard, 복제본이 저장되는 샤드는 replica shard 이다.
  • replica shard는 primary shard와는 다른 노드에 저장되므로 단일 노드의 경우 replica를 사용할 수 없다.

요약 정리

  • Elasticsearch에서는 데이터를 저장할 때 Index → Shard 구조로 나눈다.
  • 하나의 Index는 여러 개의 Primary Shard로 나뉘고,
  • Primary Shard자신의 복제본(Replica Shard)을 가질 수 있다.
  • Replica Shard는 해당 Primary Shard 전체를 복제한 것이다.
  • 따라서 "Replica가 Shard를 복제하는 것"이다.
구성 요소정의관계
Cluster여러 노드로 구성된 Elasticsearch 시스템 전체하나 이상의 노드를 포함
Node클러스터 내에 포함된 단일 서버(인스턴스)여러 Shard를 저장함
Index데이터를 저장하는 논리적 단위여러 Shard로 구성됨
ShardIndex를 분할한 물리적 저장 단위Primary / Replica로 나뉨
Primary Shard데이터가 최초로 저장되는 샤드Index 생성 시 지정한 개수만큼 생성됨
Replica ShardPrimary Shard의 복제본장애 복구 및 검색 성능 향상을 위해 존재함





참고 사이트

이 페이지의 이미지 일부에는 네이버에서 제공한 나눔글꼴이 포함되어 있습니다.

썸네일 생성: Thumbnail Maker

0개의 댓글