← 학습 카테고리

Learn

Elasticsearch

50개 모듈 · 현재 20번째

Elasticsearch 모듈 20/50 elasticsearch-learn-20

Cross-Cluster Search와 Cross-Cluster Replication — 클러스터 경계를 넘는 두 가지 다른 방법

Elasticsearch Percolator 쿼리 및 Cross-Cluster Search/Replication 공식 문서 종합 (웹 리서치, 2026) — Elastic 공식 문서(query-dsl-percolate-query, deploy-manage/remote-clusters) Elastic 공식 문서 Remote clusters

이 모듈을 다 읽으면

  • CCS가 데이터를 복사하지 않고 원격 클러스터를 그대로 조회하는 방식임을 설명할 수 있다
  • CCR이 CCS와 근본적으로 다른 지점(실제 데이터 복제)을 설명할 수 있다

elasticsearch-learn-06에서 다룬 Distributed 개념(하나의 클러스터 안에서 샤드를 분산)과 대비되는, 여러 개의 서로 다른 클러스터에 걸쳐 검색하거나 데이터를 동기화하는 두 가지 기능 CCS와 CCR을 정리한다.

Cross-Cluster Search(CCS) — 데이터는 그대로 두고 조회만 연합한다

CCS는 여러 클러스터에 흩어진 인덱스를 데이터를 로컬로 복사하지 않고 그대로 조회할 수 있게 해주는 기능이다 — 검색 요청은 실제로 원격 클러스터에서 실행되고, 그 결과만 요청한 클러스터로 돌아온다. 즉 데이터는 원래 있던 자리에 그대로 있고, 쿼리 실행 시점에만 여러 클러스터를 오가며 연합(federated)해서 하나의 검색 결과처럼 묶어주는 방식이다 — 데이터를 물리적으로 한곳에 모으지 않고도 여러 클러스터에 걸친 검색을 지원해야 하는 상황(예: 리전별로 분리된 클러스터)에 적합하다.

핵심 포인트

  • CCS는 데이터를 로컬로 복사하지 않고, 검색 요청 자체를 원격 클러스터에서 실행해 결과만 가져오는 '쿼리 시점 연합' 방식
  • 데이터를 물리적으로 한곳에 모을 필요 없이 여러 클러스터(예: 리전별 분리)에 걸친 검색을 지원할 때 적합

Cross-Cluster Replication(CCR) — 실제로 데이터를 복제한다

CCR은 CCS와 달리 리더(leader) 클러스터의 인덱스를 팔로워(follower) 클러스터로 실제로 지속적으로 복제한다 — 재해복구(원본 클러스터 장애 시 팔로워로 전환)나 지리적 근접성(원거리 사용자에게 가까운 클러스터에서 읽기 제공) 같은 목적으로, 클러스터 간에 진짜 동기화된 데이터 사본을 유지하는 방식이다. 사용자 인증은 로컬(요청을 보낸) 클러스터에서 수행되고 사용자·역할 이름이 원격 클러스터로 전달되는 구조라, 클러스터 간 신뢰 관계와 역할 기반 접근 제어도 함께 설정해야 한다.

핵심 포인트

  • CCR은 리더 클러스터의 인덱스를 팔로워 클러스터로 실제로 지속 복제 — 재해복구/지리적 근접성 목적
  • 인증은 로컬 클러스터에서 수행되고 사용자·역할 이름이 원격 클러스터로 전달 — 클러스터 간 신뢰관계+RBAC 설정이 함께 필요

핵심 차이 — '쿼리 시점 연합' vs '실제 데이터 복제'

두 기능의 근본적 차이는 데이터가 물리적으로 어디에 존재하는가다 — CCS는 데이터가 원격 클러스터에만 존재하고 쿼리할 때마다 그쪽으로 요청을 보내는 반면, CCR은 데이터를 로컬(팔로워) 클러스터에도 실제로 복제해둬 로컬에서 바로 읽을 수 있다. 그래서 지연 시간이 민감한 읽기가 많으면 CCR로 로컬 사본을 두는 게 유리하고, 데이터 중복을 피하면서 여러 곳에 흩어진 데이터를 한 번에 조회하고 싶다면 CCS가 적합하다 — 둘은 상호 배타적이지 않고, 실제 배포에서는 함께 조합해 쓰이기도 한다.

핵심 포인트

  • CCS: 데이터는 원격에만 존재, 쿼리 시점마다 연합 조회. CCR: 데이터를 로컬 팔로워에도 실제로 복제해 바로 읽기 가능
  • 지연시간 민감한 읽기가 많으면 CCR, 데이터 중복 없이 여러 곳을 한 번에 조회하려면 CCS — 상호 배타적이지 않고 함께 조합 가능