기존의 데이터 복제는 애플리케이션에서 움직이는 많은 부분을 관리해야 했습니다. 최신 데이터 복제는 백엔드 시스템이 대부분의 작업을 수행하는 클라우드로 데이터를 전송합니다. 하지만 클라우드 데이터 복제는 단순히 데이터를 동기화하거나 원격 서버에 백업 복사본을 만드는 것 이상의 의미를 지닙니다. 이 가이드에서는 클라우드 데이터 복제에 대한 몇 가지 일반적인 사용 사례를 제시하고, 이를 구현하는 몇 가지 방법을 검토하며, 클라우드 데이터 복제가 최신 애플리케이션 개발의 판도를 어떻게 바꾸는지 알아봅니다.

클라우드 컴퓨팅에서 데이터 복제란 무엇인가요?

데이터 복제는 기본 데이터의 중복 사본을 유지하는 프로세스입니다. 이는 내결함성, 고가용성, 읽기 집약적인 애플리케이션, 네트워크 지연 시간 단축, 데이터 주권 요구 사항 지원 등 여러 가지 이유로 중요합니다. 

내결함성: 데이터 복제는 누군가가 전원 케이블에 걸려 넘어지는 것부터 지진과 같은 지역적 재난에 이르기까지 다양한 원인으로 인해 하드웨어 또는 네트워크 장애가 발생하는 경우 애플리케이션이 데이터를 보존해야 할 때 필요합니다. 따라서 모든 애플리케이션은 복원력과 일관성을 위해 데이터 복제가 필요합니다.

고가용성: 많은 사용자 또는 동시 세션에서 자주 액세스하는 데이터에는 데이터 복제가 필요합니다. 이 경우 복제된 데이터는 리더 및 다른 복제본과 일관성을 유지해야 합니다.

지연 시간 단축: 또한 데이터 복제는 최신 클라우드 애플리케이션을 다른 네트워크나 지역에 분산된 데이터로 실행하여 최종 사용자에게 더 나은 서비스를 제공하는 데 도움이 됩니다. 

요컨대, 백업 및 재해 관리뿐만 아니라 애플리케이션 성능에 관한 문제이기도 합니다. 복제가 어떻게 작동하는지 자세히 살펴보고 이러한 요구 사항을 좀 더 깊이 이해해 보겠습니다.

데이터 복제는 어떻게 작동하나요?

적절한 복제 계획은 모든 데이터의 사본을 하나 이상 보관하는 정책을 수립하여 어느 한 부분이 손실되더라도 적어도 하나 이상의 대체 데이터를 사용할 수 있도록 합니다.

애플리케이션 수준에서는 데이터의 일부 레코드를 마스터 위치에 저장하고 백엔드 시스템에서 해당 데이터의 복사본을 복제본으로 유지하는 것처럼 보입니다. 모든 데이터를 다른 사이트에 복사하는 사용자 지정 서비스를 구축하는 것은 복잡할 수 있으며, 동기화 상태를 유지하는 것은 심각한 엔지니어링 과제입니다. 또한 모든 복제본을 동일한 위치에 저장하면 해당 위치에서 재해가 발생하여 모든 복제본이 손실될 수 있습니다.

따라서 복제는 기본 데이터 세트를 파티션이라고 하는 작은 가상 조각으로 나눕니다. 각 파티션은 디스크의 다른 위치, 다른 네트워크, 중복 스토리지 볼륨 또는 여러 클라우드 플랫폼과 분리된 랙의 다른 원격 서버를 사용하여 복제되는 것이 가장 이상적입니다. 

데이터 복제 모범 사례를 구현하려는 기업에게 복잡성의 잠재적 가능성은 종종 제한적인 요소이며, 이를 투명하게 처리하는 프론트엔드 및 백엔드 시스템을 갖추는 것이 필수적입니다.

클라우드 데이터 복제와 기존 데이터 복제 비교

데이터 복제 옵션에는 여러 가지 수준이 있으며, 클라우드 데이터 복제도 그 중 하나입니다. 기존 데이터 복제에는 모바일 장치에서 로컬 PC로 또는 로컬 PC에서 네트워크로 연결된 데이터베이스로 데이터를 복제하는 등 다른 소스로 데이터를 복제하는 몇 가지 옵션이 있습니다. 네트워크에 연결된 데이터베이스는 백업 목적으로 외부 네트워크에 복제할 수도 있습니다. 

이러한 사용 사례는 대부분 단순하고 장애 발생 시 데이터를 보존하기 위한 것이었지만, 오프라인 상태에서 조각을 재조립하려면 수작업이 필요했습니다. 복제본은 일반적으로 기본 노드에 장애가 발생하고 복제본이 '활성'이 되어 해당 마스터를 대신할 때까지 애플리케이션에서 직접 액세스할 수 없었습니다.

클라우드 데이터 복제는 한 단계 더 나아가 애플리케이션이 여러 클라우드 기반 데이터 또는 스토리지 서비스에 데이터를 전송하고, 이 서비스는 다시 다른 클라우드 기반 리소스에 복제본을 전송할 수 있도록 합니다. 이러한 리소스는 몇 가지 면에서 기존 데이터 복제를 모방하지만 클라우드로 확장합니다. 

클라우드 리소스 계획에 대한 가장 기본적인 시나리오부터 가장 고급 시나리오까지 스택을 한 단계씩 올라가 보겠습니다. 

가장 기본적인 복제는 동일한 데이터 센터, 즉 여러 노드가 있는 데이터베이스 클러스터, 심지어 동일한 네트워크의 동일한 서버 랙에 있는 여러 클라우드 기반 머신을 사용합니다. 다음으로, 랙 수준 분산은 데이터 노드를 둘 이상의 하드웨어 랙에 분산합니다. 

다음 단계에서는 데이터를 네트워크의 여러 지리적 위치(예: 지역 또는 구역)에 분산시킵니다. 데이터베이스는 마스터 데이터를 샌프란시스코에 저장하고 복제본을 뉴욕과 런던에 저장할 수 있습니다. 이는 데이터 센터 간 복제와 같은 시스템에서 볼 수 있듯이 백그라운드에서 노드 배포를 관리합니다.

클라우드 간 데이터 복제란 무엇인가요?

복제 사다리의 또 다른 계층은 여러 클라우드 사이입니다. AWS의 클라우드 복제는 Google Cloud와 비슷해 보일 수 있지만, 정교한 애플리케이션의 경우 둘 이상의 클라우드 서비스 제공업체 간에 데이터 서비스를 복제함으로써 상당한 이점을 얻을 수 있습니다. 

최신 하이브리드 클라우드 옵션은 로컬 네트워크를 마스터 복사본으로 사용하고 여러 클라우드 서비스 또는 하나의 클라우드 내의 다양한 지역을 복제의 일부로 사용합니다. 이 설계의 모든 노드는 재해가 발생하지 않을 때에도 애플리케이션(읽기 및 쓰기용)에서 액세스할 수 있는 것이 이상적입니다.

자세한 내용을 살펴보기 전에 다양한 수준의 중복성과 성능을 위해 복제 토폴로지를 설계하는 방법에는 여러 가지가 있다는 것을 알아두는 것이 중요합니다. 단방향, 양방향, 허브 앤 스포크, 원형 등 다양한 설계가 있습니다. 이 가이드에서는 특정 토폴로지를 자세히 설명하지는 않지만 일반적으로 이러한 토폴로지의 기본이 되는 몇 가지 개념을 공유합니다.

좀 더 복잡한 복제 토폴로지

 

데이터를 클라우드로 복제하는 이유는 무엇인가요?

데이터를 클라우드에 복제하는 이유는 여러 가지가 있습니다. 회사의 사설 네트워크는 중복성이 있지만 더 많은 지리적 분산이 필요할 수 있습니다. 클라우드 복제를 통해 조직은 사설 네트워크 데이터를 유지하면서 재해에 대비한 중복성을 확보할 수 있습니다. 위에서 설명한 다양한 수준의 클라우드 기반 중복성은 로컬, 데이터센터별, 랙 장애 등 다양한 수준의 재해로 인한 피해를 방지하는 데 도움이 됩니다.

클라우드 복제는 또 다른 수준의 중복성을 추가하여 고가용성에 기여할 뿐만 아니라 공급업체 종속을 방지하는 데도 도움이 됩니다. 한 클라우드 서비스 공급업체에 문제가 발생하면 중단을 최소화하면서 다른 공급업체로 신속하게 전환할 수 있습니다.

애플리케이션 성능 이점

클라우드 데이터 복제를 사용하는 이유는 재해 시나리오뿐 아니라 애플리케이션, 특히 모바일 애플리케이션을 더 빠르게 실행할 수 있기 때문이기도 합니다. 최신 시스템에서는 애플리케이션이 복제본을 애플리케이션의 데이터 소스로 사용할 수 있습니다. 기존의 방식은 필요에 따라 활성화할 수 있는 단순한 백업으로 유지하여 마스터 복사본을 하나만 보유함으로써 의도적으로 동기화를 단순화했습니다.

활성 복제본을 사용하면 애플리케이션 개발자는 다른 위치 또는 네트워크의 데이터에서 실행할지 여부를 선택할 수 있습니다. 이는 고성능 애플리케이션의 네트워크 지연 시간을 줄이는 데 매우 중요합니다. 

예를 들어 게임의 경우 고속 및 고대역폭 작업이 필요하므로 애플리케이션은 가능한 한 가장 가까운 서버로 라우팅됩니다. 데이터 복제본은 여전히 전 세계적으로 사용할 수 있지만 한 위치가 선호됩니다. 예를 들어, 북미에서 데이터에 액세스하는 경우 사용자가 거주하는 아시아에서 사본을 사용할 수 있는 경우보다 액세스하는 데 시간이 더 오래 걸립니다. 

재해 복구를 위한 클라우드 데이터 복제

오늘날의 재해 복구 요구사항에는 단순히 전 세계에 분산된 데이터 사본 이상의 것이 필요합니다. 효과적인 복구 정책은 지리적 재해에 대비해 데이터를 이중으로 분산하는 동시에 장애가 발생했을 때 실시간으로 전환할 수 있어야 합니다. 

기업은 장애가 발생할 때까지 기다렸다가 팀을 보내 문제를 해결할 여유가 없습니다. 대신 설계자는 장애를 예측하고, 지능적으로 새 노드로 장애 조치하여 장애를 완화하며, DevOps 팀이 최대한 빨리 문제를 해결할 수 있도록 지원하는 데이터 시스템을 설계합니다. 수동 개입은 아무도 원하지 않는 다운타임을 초래하는 경우가 많으므로 장애 조치 및 복구를 위한 자동화된 백엔드는 필수적입니다.

위의 내용은 클라우드 및 로컬 데이터에 모두 적용되지만, 시스템에서 클라우드 기반 리소스를 사용하여 몇 가지 다른 방식으로 장애를 식별하고 해결할 수 있다는 점을 제외하면 다릅니다. 

클라우드 서비스의 백엔드 네트워킹은 네트워크 전반에 걸친 강력한 상호 연결성 덕분에 분산된 노드를 서로 최신 상태로 유지하는 데 도움이 될 수 있습니다. 예를 들어, 지리적으로 분산되어 있더라도 Google Cloud의 여러 노드를 사용하면 로컬 회사 서버를 트리거하여 다른 위치로 데이터를 다시 보낼 필요 없이 빠르고 간편하게 동기화 상태를 유지할 수 있습니다.

데이터 서비스의 성장 지원

또한 클라우드 서비스는 필요에 따라 탄력적으로 확장할 수 있도록 설계되었습니다. 예를 들어 노드의 디스크에 장애가 발생하면 클라우드 서비스는 새 리소스를 가동하여 데이터를 복제하고 장애가 발생한 리소스를 제거할 수 있습니다. 자동화된 클라우드 시스템은 데이터 관리자가 문제가 있음을 알아차리는 데 걸리는 시간보다 더 빠르게 이 작업을 수행할 수 있습니다.

또한 클라우드에서는 리소스가 사실상 무제한이므로 리소스/데이터 사용량이 증가하면 클라우드 서비스에서 파티셔닝을 재조정하고 필요에 따라 더 큰 머신으로 전환하거나 노드를 추가할 수 있습니다.

클라우드 서비스가 전 세계에 존재하므로 애플리케이션은 위치에 따라 특정 사용자에게 가장 적합한 데이터 복제본을 테스트하고 찾을 수 있습니다. 데이터 서비스를 사용할 수 없게 되거나 지연 시간이 특정 임계값에 도달하면 애플리케이션은 다른 지역으로 이동하여 계속 작동할 수 있습니다.

복제를 관리하는 사용자 지정 코드

보시다시피, 클라우드 기반 서비스를 통해 무결점 데이터 복제의 잠재력을 실현할 수 있게 되었습니다. 그러나 잠재력이 커진 만큼 복잡성도 증가하기 때문에 애플리케이션에 인텔리전스를 코딩하는 것은 어려울 수 있습니다. 

강력한 솔루션을 맞춤 개발하는 것은 비용이 많이 들고 유지 관리가 복잡합니다. 데이터 관리 백엔드에서 이 모든 것을 처리하는 것이 가장 이상적입니다. 시스템에 노드, 랙, 지역 등에 걸쳐 복제본을 설정하는 데 사용하기 쉬운 옵션이 있는지 확인하세요. 그렇지 않다면 직접 구축하는 데 수천 시간을 투자하기 전에 더 나은 대안을 찾아보세요.

Couchbase는 이 모든 것을 관리할 수 있는 데이터베이스의 한 예로, 고가용성과 고성능 사이의 균형을 맞추는 방법을 선택할 수 있는 옵션을 제공합니다. 이러한 옵션이 있으면 첫날부터 재해 복구 계획을 구현하고 향후 인프라 비용을 관리할 수 있습니다.

자세히 알아보기

요약하자면, 기존 복제는 점점 더 큰 규모의 서버가 필요하지만, 클라우드 데이터 복제는 성장에 따른 유연성을 제공하고 모든 것을 원활하게 실행할 수 있는 옵션을 제공합니다. 백서를 읽어보세요: 전 세계에 분산된 데이터를 위한 고가용성 및 재해 복구 에서 권장하는 다양한 토폴로지와 접근 방식에 대한 자세한 정보를 확인하세요.

자체 애플리케이션으로 클라우드 데이터 복제의 이점을 사용해 볼 준비가 되셨나요?
카우치베이스 카펠라 시작하기:

    • 시작하기 무료 평가판 를 통해 Couchbase를 시작하는 것이 얼마나 쉬운지 알아보세요.
    • 자세히 알아보기 카펠라에 대해 알아보고 데모 동영상을 시청하세요.
    • 더 많은 카우치베이스 동영상을 살펴보세요. YouTube 채널 

 

작성자

게시자 타일러 미첼 - 선임 제품 마케팅 매니저

카우치베이스에서 선임 제품 마케팅 매니저로 일하면서 제품에 대한 지식을 대중에게 알리는 동시에 가치 있는 콘텐츠로 현장 팀을 지원하고 있습니다. 경력 절반을 GIS 분야에서 일한 그는 지리공간에 대한 개인적인 열정을 가지고 있습니다. 지금은 AI와 벡터 검색을 가장 중요하게 생각합니다.

댓글 남기기