데이터 복제와 동기화는 언뜻 보면 서로 중복되는 것처럼 보일 수 있습니다. 둘 다 분산 아키텍처에서 일관성을 위해 한 영구 저장소에서 다른 저장소로 데이터를 복사하는 것을 말합니다. 하지만 Couchbase에서는 각 용어가 서로 다른 의미를 가지며 각각 다른 용도로 사용됩니다.

이 게시물은 데이터베이스 클러스터 간에 데이터 복제를 제공하는 Couchbase XDCR(데이터센터 간 복제)과 모바일, IoT 및 에지 애플리케이션의 데이터 동기화를 가능하게 하는 Couchbase Sync Gateway/Capella 앱 서비스에 대한 개요입니다.

데이터센터 간 복제(XDCR)

XDCR 개요

카우치베이스의 데이터센터 간 복제(XDCR) 를 사용하면 서로 다른 데이터센터에 위치한 클러스터 간에 데이터를 복제할 수 있습니다. 클러스터 간 복제는 데이터의 고른 분포와 고가용성을 보장하기 위해 사용됩니다. XDCR에 사용되는 프로토콜을 DCP(데이터 변경 프로토콜)라고 합니다. DCP는 클러스터 간 복제에도 사용되며, 두 경우 모두 지연 시간이 짧은 메모리 간 복제에 사용됩니다.

XDCR은 여러 지역, 여러 데이터센터, 여러 클라우드 제공업체 또는 그 조합 간에 데이터를 복제하는 글로벌 복제를 위해 설계되었습니다. 여러 지역에 걸쳐 데이터를 복제하려면 여러 개의 클러스터가 필요합니다. 다른 데이터베이스와 달리 Couchbase의 다중 데이터센터 기능은 단일 클러스터를 여러 데이터센터에 걸쳐 확장하는 방식으로 제공되지 않습니다. 네트워크 지연 시간이 길기 때문에 서로 다른 지역에 있는 노드/서버는 동일한 클러스터에 속할 수 없습니다. 각 클러스터는 독립적입니다.

XDCR은 시작하기는 매우 간단하지만 강력한 기능과 옵션이 많이 제공됩니다. 단방향 및 양방향 작동과 자동 충돌 해결 기능을 갖춘 액티브-액티브 복제를 지원합니다. 문서 하위 집합을 복제할 때는 필터링된 복제를 사용하세요.

XDCR 너트 및 볼트

XDCR은 다음에서 데이터를 복제합니다. 출처 버킷을 대상 버킷(XDCR은 암시적 및 명시적 범위/컬렉션 복제도 지원합니다). 복제는 메모리에서 메모리로 비동기식으로 이루어지며, 기존 데이터와 수정된 데이터가 모두 복제됩니다. 

여러 데이터 스트림이 모든 샤드(vBuckets)에 걸쳐 셔플되어 데이터를 대상 클러스터로 병렬로 이동하여 지연 시간을 추가로 단축합니다.

소스 클러스터와 대상 클러스터는 서로 다른 수의 서버(노드)를 가질 수 있으며, XDCR은 토폴로지 변경에 탄력적으로 대응합니다.

XDCR 사용 사례

단방향(단방향) 및 양방향(양방향) 구성에는 각각 고유한 사용 사례가 있습니다.

단방향 복제

단방향 복제는 다음과 같은 경우에 유용합니다:

    • 재해 복구 - 재해 발생 시에도 항상 최신 데이터를 사용할 수 있습니다. 따라서 데이터 손실이나 다운타임 없이 신속하게 장애 조치 및 복구할 수 있습니다.
    • 개발/테스트 사본 - 테스트 및 개발 목적으로 프로덕션 데이터의 사본을 프로비저닝합니다. 이렇게 하면 수동 데이터 복사의 필요성이 줄어들고 환경 간 오류나 불일치 위험이 줄어듭니다. XDCR은 실시간에 가까운 복제를 제공하므로 테스트 데이터가 항상 프로덕션 데이터와 최신 상태로 유지됩니다.
    • 보고/기록 - 전용 보고 또는 아카이브 클러스터에 데이터를 복제하면 프로덕션 환경의 성능에 영향을 주지 않고 효율적으로 보고 및 분석할 수 있습니다. XDCR은 실시간 또는 거의 실시간에 가까운 데이터 복제를 지원하므로 리포팅 또는 아카이브 클러스터는 항상 최신 데이터로 최신 상태를 유지합니다. 따라서 규정 준수 또는 분석 목적으로 기록 데이터를 유지해야 하는 조직에 적합한 솔루션입니다.

양방향 복제

양방향 복제는 다음과 같은 사용 사례에 사용할 수 있습니다:

    • 여러 개의 "핫" 활성 클러스터 - 여러 데이터센터에 걸쳐 데이터를 복제함으로써 XDCR은 효율적인 로드 밸런싱과 높은 데이터 가용성을 제공할 수 있습니다. XDCR은 실시간 또는 거의 실시간에 가까운 데이터 복제를 지원하여 모든 활성 클러스터가 항상 동기화되도록 보장합니다. 대량의 트래픽을 처리해야 하거나 전 세계에 분산된 사용자 기반을 보유한 조직에 적합합니다.
    • 데이터 로컬리티 - XDCR을 사용하면 지리적으로 분산된 클러스터를 생성하여 데이터를 사용자와 더 가까운 곳에 저장하고 지연 시간을 줄일 수 있습니다. XDCR은 여러 데이터센터에 데이터를 자동으로 복제하여 데이터가 항상 가장 가까운 위치에서 최신 상태로 유지되도록 합니다.
    • 지오펜싱 - 특정 데이터를 특정 클러스터에만 복제하여 지정된 지리적 영역 내에서만 데이터를 사용할 수 있도록 XDCR을 구성할 수 있습니다. 이는 데이터 개인정보 보호 규정을 준수하거나 데이터에 지오펜싱 제한을 적용해야 하는 조직에서 사용할 수 있습니다.

XDCR 옵션

충돌 해결 는 클러스터의 여러 노드가 동일한 데이터를 동시에 업데이트하려고 시도할 때 발생하는 충돌을 해결합니다. 시퀀스 기반 충돌 해결은 업데이트가 수신된 순서에 따라 충돌을 해결합니다. 이와 대조적으로 타임스탬프 기반 충돌 해결은 업데이트의 타임스탬프를 사용하여 어떤 업데이트가 더 최신이고 적용해야 하는지 결정합니다. 특정 사용 사례에 따라 한 가지 유형의 충돌 해결이 더 적합할 수 있으며, Couchbase의 XDCR을 사용하면 적절한 방법을 유연하게 선택할 수 있습니다.

필터링 를 사용하면 클러스터 간 복제에 포함하거나 제외할 문서를 지정할 수 있습니다. 이는 문서 유형, 속성 값 또는 기타 메타데이터와 같은 기준을 기반으로 할 수 있습니다. XDCR 필터링은 복제되는 문서를 보다 효과적으로 제어하여 불필요한 네트워크 트래픽과 스토리지 오버헤드를 줄이고 복제 효율과 전반적인 시스템 성능을 개선합니다.

문서 삭제 를 클릭하면 다른 클러스터의 해당 문서가 삭제됩니다. 하지만 이 동작을 필터링할 수 있으므로 조직은 아카이브 또는 리포팅 사용 사례에 대한 기록 데이터를 유지할 수 있습니다. 문서 삭제를 필터링함으로써 조직은 프로덕션 클러스터에서 해당 문서가 삭제된 경우에도 보고 또는 아카이브 클러스터에서 데이터를 계속 사용할 수 있도록 할 수 있습니다. 이를 통해 조직은 데이터 보존 정책을 준수하고 중요한 데이터를 항상 분석 및 보고에 사용할 수 있도록 보장할 수 있습니다.

XDCR은 또한 온프레미스에서 클라우드로의 인프라에 구애받지 않는 마이그레이션 시나리오를 지원할 수 있습니다.

XDCR 요약

카우치베이스의 XDCR 기능은 카우치베이스 고객과 사용자를 가장 먼저 끌어들이는 주요 기능 중 하나입니다. 이 기능은 서로 다른 데이터센터에 위치한 여러 클러스터에 데이터를 복제할 수 있는 간단하고 유연한 도구입니다.

다음 표에는 카우치베이스 서버 또는 카우치베이스 카펠라 배포에서 XDCR의 주요 사용 사례가 나와 있습니다:

XDCR

재해 복구
개발/테스트 사본
보고, 감사, 보관
데이터센터 위치
지리적 펜싱
클라우드 데이터 마이그레이션

라이브 데모 보기 Couchbase XDCR 작동 중를 클릭하세요:

동기화 게이트웨이/카펠라 앱 서비스

카우치베이스 모바일 제품 스택 개요

Couchbase 기반 애플리케이션에서 동기화의 역할을 이해하기 위해 먼저 다음과 같이 살펴봅니다. 카우치베이스 모바일 제품 스택. 카우치베이스 모바일은 오프라인 우선 모바일 및 엣지 애플리케이션을 지원하도록 명시적으로 설계되었습니다. 스택은 다음과 같이 구성됩니다:

    • 카우치베이스 서버 - SQL, 분석, FTS 및 이벤트 지원 기능을 갖춘 최신 데이터베이스 서버입니다.
    • 카우치베이스 라이트 - 모바일 및 사용자 지정 임베디드 디바이스를 위한 임베디드 가능한 버전의 Couchbase입니다.
    • 동기화 게이트웨이 - 는 클라우드와 엣지 데이터베이스 사이에 위치하며 모바일 클라이언트와 서버 계층 간의 안전한 데이터 동기화, 라우팅 및 액세스 제어를 담당합니다.

이러한 기능은 두 가지 방법으로 배포할 수 있습니다:

    • 다음을 통해 완벽하게 관리됩니다. 카우치베이스 카펠라에서 호스팅하는 서비스형 데이터베이스입니다.
    • 자체 관리형: 퍼블릭 또는 프라이빗 클라우드, 클라우드 에지 서비스 또는 온프레미스에 Couchbase Mobile 제품을 직접 설치하고 관리하는 경우입니다.

카우치베이스 모바일 제품 스택

동기화 게이트웨이 정보

동기화 게이트웨이는 데이터를 동기화하고 대규모 모바일 및 IoT 애플리케이션에 대한 권한 부여 및 인증을 제공하기 위해 특별히 제작되었습니다.

무엇보다도 클라우드와 에지 간 데이터 동기화를 제공하도록 설계되었습니다. 이는 클라우드의 Couchbase와 Couchbase Lite를 실행하는 기기 간, 그리고 개별 Sync Gateway 배포 간(동기화 게이트웨이와 앱 서비스 간 포함)에 WebSockets 프로토콜을 사용하여 데이터를 동기화하는 기능입니다.

동기화 게이트웨이도 제공합니다:

    • 웹 클라이언트가 동기화 데이터에 액세스할 수 있는 REST API입니다.
    • 배포 구성을 원격으로 작업하기 위한 관리 API입니다.
    • 성능 및 이벤트 통계 모니터링.

클라우드에서 엣지까지 데이터 동기화

카우치베이스 라이트와 동기화

Couchbase Server/Capella와 Couchbase Lite 간의 동기화는 양방향이며 푸시 또는 풀 방식으로 에지 장치에서 시작됩니다. 복제는 일회성, 지속적 또는 필요에 따라 수행될 수 있으며, 다양한 조건과 사용 사례를 지원합니다.

동기화 페이로드는 JSON 데이터 또는 바이너리 첨부 파일입니다. 바이너리/블롭 첨부 파일의 경우 페이로드가 아래 20MB가 복제됩니다. 블롭이 over 20MB의 경우 문서 자체는 복제되지만 블롭은 복제되지 않습니다.

카우치베이스 라이트는 애플리케이션이 리플리케이터의 세분화된 필터를 활용해 어떤 문서가 동기화되고 어디로 라우팅할지 결정할 수 있게 해줍니다. 이를 통해 동기화되는 문서와 시기를 제어할 수 있습니다.

복제본은 웹소켓을 사용하여 전송되므로 단일 TCP 연결을 통해 원격 호스트 간에 전이중 메시징이 가능합니다. 따라서 HTTP를 통한 REST 기반 프로토콜에 비해 대역폭 사용량과 소켓 리소스를 줄여주는 더 빠른 프로토콜입니다.

동기화 게이트웨이/앱 서비스는 이러한 복제에 대해 적절한 일관성을 유지할 책임이 있습니다.

클라우드에서 Couchbase와 동기화되는 Couchbase Lite 임베디드 클라이언트

동기화 게이트웨이 간 복제

동기화 게이트웨이는 동기화 게이트웨이 간 복제라는 기능을 사용하여 Couchbase Lite에서 Couchbase Server 또는 Capella로 직접 데이터를 동기화하는 것 외에도 다른 동기화 게이트웨이 인스턴스 및/또는 Capella 앱 서비스로 복제할 수 있습니다. 

동기화 간 게이트웨이 복제는 Couchbase Lite 동기화와 마찬가지로 웹소켓을 기반으로 하는 양방향 동기화입니다.

동기화 게이트웨이 간 복제는 중단 시 또는 노드가 다시 시작될 때마다 자동으로 재시작을 시도하며, 네트워크 중단이 장기화되는 경우 재시작 시도를 줄이도록 구성할 수 있습니다.

동기화 게이트웨이 간 복제는 기본 제공 고가용성을 제공하며 노드 분산을 사용하여 실행 중인 모든 복제가 원본 노드에 관계없이 사용 가능한 노드에 균일하게 분산되도록 합니다.

동기화 게이트웨이 배포 간에 데이터를 동기화하는 기능을 사용하면 매우 높은 가용성, 짧은 지연 시간, 데이터 프라이버시 및 효율적인 대역폭 사용을 지원하는 다계층 계층형 에지 토폴로지를 설계할 수 있습니다. 

클라우드의 동기화 게이트웨이/앱 서비스와 동기화되는 엣지의 카우치베이스 동기화 게이트웨이

델타 동기화

동기화 게이트웨이/앱 서비스는 전체 문서를 보내지 않고도 변경된 문서 부분을 추적하고 복제할 수 있습니다. 따라서 대역폭이 제한된 네트워크에서 더 적은 데이터를 전송할 수 있으므로 앱이 더 빠르고 효율적으로 작동합니다.

델타 동기화는 전체 문서가 아닌 변경된 데이터만 동기화합니다.

충돌 해결

분산형 데이터 쓰기를 사용하는 모바일 앱의 경우 동일한 데이터가 여러 디바이스에서 동시에 수정되어 충돌이 발생할 수 있습니다. 충돌을 해결하기 위해 기본 제공 충돌 해결 정책 중 하나를 적용하여 자체 복제본에 쉽게 포함할 수 있습니다. 자동 충돌 해결의 목표는 구성된 충돌 해결사 정책의 일관된 적용에 따라 승리한 수정본을 반환하는 것입니다.

동기화 게이트웨이/앱 서비스 충돌 해결은 리비전 트리와 다음과 같은 기본 해결 규칙을 사용합니다. 가장 활발한 지부 수상. 이렇게 하면 충돌이 활동을 기반으로 논리적으로 해결되는 반면, 시스템 클럭 기반 충돌 해결은 가장 최근 변경 사항 승리 접근 방식은 기기 간 클럭 차이로 인한 문제로 인해 문제가 있습니다.

액세스 제어

모델

채널은 동기화 게이트웨이가 문서에 대한 액세스를 공유하고 제어하는 방법을 이해하는 데 있어 핵심적인 요소입니다. 채널은 기본적으로 문서와 사용자 사이의 중개자 역할을 합니다.

다음 다이어그램에서 볼 수 있듯이 데이터베이스의 모든 문서는 다음과 같은 집합에 속합니다.

의 채널에 액세스할 수 있으며, 모든 사용자는 채널 세트에 액세스할 수 있습니다.

문서 액세스 모델

사용자가 문서를 만들면 하나 이상의 채널에 문서가 할당됩니다. 사용자는 액세스 권한이 부여된 채널에 할당된 문서에만 액세스할 수 있으며, 권한 부여는 동기화 게이트웨이에서 처리합니다.

예를 들어 공개 채널에 추가된 문서는 모든 사용자가 볼 수 있습니다. 채널은 비공개로 설정하여 단일 사용자로 액세스를 제한하거나 여러 사용자 간에 공유 액세스를 제공할 수도 있습니다, 

역할은 채널의 모음으로 명명됩니다. 사용자가 역할에 할당되면 해당 역할에 할당된 채널 액세스 권한을 상속받습니다. 이 권한은 언제든지 변경할 수 있으며 부적절한 액세스를 방지하기 위해 취소할 수도 있습니다.

동기화 기능

그리고 동기화 함수는 문서가 새로 수정되거나 업데이트될 때마다 호출되는 자바스크립트 함수입니다.

동기화 기능은 다음과 같은 용도로 사용할 수 있습니다:

    • 문서 유효성 검사
    • 변경 승인
    • 채널에 대한 사용자 액세스 권한 부여
    • 채널에 문서 할당

동기화 기능은 읽기의 경우 문서 수준에서, 쓰기의 경우 필드 수준에서 액세스 제어를 제공할 수 있습니다.

동기화 게이트웨이/카펠라 앱 서비스 요약

카우치베이스 싱크 게이트웨이와 카펠라 앱 서비스의 데이터 동기화 기능은 데이터가 빠르게 변경되고 사용자 및 디바이스의 분산된 에코시스템에 업데이트가 즉시 반영되어야 하는 모바일 및 IoT 애플리케이션에 이상적으로 적합합니다.

다음 표는 적용 가능한 사용 사례를 한눈에 볼 수 있는 목록으로, 애플리케이션에 이러한 기능이 필요한 경우 동기화 게이트웨이/앱 서비스가 솔루션이 될 수 있습니다:

동기화 게이트웨이 / 앱 서비스

클라우드-엣지 데이터 동기화
멀티 티어 엣지 토폴로지를 위해 구축
인증, 권한 부여
정확한 데이터 라우팅
사용자 지정 가능한 충돌 해결
채널 액세스 권한 해지

다음 라이브 데모를 확인하세요. 카우치베이스 동기화 게이트웨이 항공 수하물 시나리오에서

결론

Couchbase는 전 세계에 걸쳐 데이터를 복제하고 동기화하는 기능에서 타의 추종을 불허합니다. 분산 애플리케이션 에코시스템을 통해 클라우드에서 엣지까지 중요한 애플리케이션에 일관성, 무결성 및 재해 복구를 제공합니다. 

이 게시물을 통해 CouchBase XDCR 및 CouchBase Sync Gateway/Capella 앱 서비스의 역할과 용도를 명확히 파악하여 특정 요구 사항에 따라 어느 것을 활용할지 결정할 수 있기를 바랍니다.

카우치베이스 카펠라 무료 체험

작성자

게시자 카우치베이스 제품 마케팅

댓글 남기기