대답하기 쉽지 않은 질문입니다: 온프레미스, 가상화 또는 퍼블릭 클라우드 솔루션을 가능한 한 중단 없이 새로운 완전 관리형 클라우드 인프라로 옮기려면 어떻게 해야 하나요?
마이그레이션에 대한 우려는 클라우드에서 작업하는 모든 개발자의 관심사이며, 이 블로그 게시물에서 이러한 질문과 우려를 해결하고자 합니다.
이 시리즈의 이전 게시물은 카우치베이스 클라우드 소개. 이 블로그 게시물에는 Couchbase Cloud에 대한 개괄적인 개요, 어떻게 탄생하게 되었는지, 그리고 시작하기 위한 몇 가지 요령이 포함되어 있습니다. 카우치베이스 클라우드 여정. 첫 번째 게시물의 성공에 힘입어 이 시리즈의 다음 글을 쓰게 되었습니다. 논리적으로 다루어야 할 다음 단계는 마이그레이션.
완전 관리형 서비스형 데이터베이스(DBaaS) 버전이 출시되기 전에는 베어메탈 서버, Docker 컨테이너, 가상 머신, 퍼블릭 및 프라이빗 클라우드 등 현재 기술 스택에 맞는 모든 인프라에 NoSQL 플랫폼을 배포할 수 있었습니다. 카우치베이스 는 이 모든 것을 지원하는 것을 목표로 합니다.
이는 또한 다음 마이그레이션 또는 특정 플랫폼 간의 데이터 전송을 최대한 원활하게 진행한다는 의미이기도 합니다(Couchbase Cloud로의 마이그레이션 포함). 하지만, 마이그레이션 는 단순히 데이터를 이전하는 것 이상을 포함합니다. 이전 구성에는 이전해야 하는 서비스, 인덱스, 사용자도 포함될 수 있습니다.
이 글의 목표는 마이그레이션 프로세스를 진행할 때 가장 일반적으로 취해야 할 몇 가지 조치를 가능한 한 간단하게 단계별로 안내하는 것입니다. 몇몇 경우에는 제 동료들이 이미 특정 단계에 대한 자세한 지침을 작성해 놓은 경우도 있으므로 필요할 때 참고하도록 하겠습니다.
이제 Couchbase를 시작해보겠습니다. 클라우드 마이그레이션 여정.
클라우드 만들기
마이그레이션을 시작하기 전에 마이그레이션할 대상이 필요합니다.
In 이전 블로그 게시물에서 Couchbase Cloud에 대한 소개와 시작 방법에 대한 팁을 살펴봤습니다. 아직 시작하지 않으셨다면 먼저 해당 글을 읽고 첫 번째 Cloud를 시작하세요.
가장 먼저 고려해야 할 사항 중 하나는 마이그레이션하려는 클러스터의 규모입니다. 대부분의 경우 원래 인프라의 크기와 형태를 모방하고 싶을 것입니다.
Couchbase Cloud는 배포해야 하는 노드, 크기 또는 서비스 구성에 따라 유연하게 선택할 수 있는 무한한 옵션을 제공합니다. 인스턴스 유형은 Couchbase Cloud에서 정확히 동일한 인프라를 스핀업하기 전에 조사하고 고려해야 할 사항이라는 점에 유의할 필요가 있습니다. 다양한 크기의 머신, 특히 특정 노드의 RAM 및 CPU 용량을 파악하는 것이 중요합니다.
과거에 다음과 같은 경험이 있는 경우 카우치베이스 서버를 통해 서비스마다 리소스를 더 많이 소비한다는 것을 알 수 있습니다. 예를 들어 쿼리 서비스는 메모리보다 CPU를 더 많이 사용하므로 이러한 노드에는 CPU를 많이 사용하는 인스턴스를 선택하는 것이 가장 좋습니다.

모범 사례를 찾고 있다면 현재 배포를 살펴보고 이미 가지고 있는 것과 최대한 가깝게 일치하도록 노력하는 것이 좋습니다. 우선은 이 정도면 충분할 것입니다.
사용자 마이그레이션
카우치베이스 클라우드에는 두 가지 유형의 사용자가 있습니다: Couchbase Cloud 사용자와 데이터베이스 사용자.
카우치베이스 클라우드 사용자는 다음에 로그인할 수 있습니다. https://cloud.couchbase.com/ 로 설정하고 주로 컨트롤 플레인과 상호 작용합니다. 이러한 사용자에게는 세 가지 옵션이 있습니다: 관리자, 편집 및 보기. 이러한 사용자는 Couchbase Cloud Platform의 기본 관리를 위해 만들어집니다. 컨트롤 플레인에서 기본 대시보드, 클라우드 서비스 제공업체 연결, 사용자 만들기, 청구 세부 정보 및 기본 클러스터의 기타 활동에 액세스할 수 있습니다.
데이터베이스 사용자도 컨트롤 플레인에 액세스할 수 있습니다. 그러나 이러한 사용자는 개별 클러스터, 서비스 및 기본 데이터에 액세스할 수 있습니다. 이러한 사용자는 버킷을 생성하고, 인덱스를 구축하고, 쿼리를 실행하는 등의 작업을 수행합니다. 이러한 사용자는 애플리케이션 SDK가 클러스터와 상호 작용하는 데 사용하는 자격 증명도 제공합니다. 이러한 데이터베이스 사용자가 조직 내의 여러 클러스터와 버킷에 대해 갖는 액세스 수준과 제어를 제한할 수 있습니다.

두 가지 유형의 사용자를 만드는 방법은 간단합니다. 간단한 양식만 작성하면 됩니다. 그런 다음 이러한 사용자는 방금 제공된 액세스 권한을 알리는 이메일을 받게 됩니다. Couchbase를 오랫동안 사용해 온 사용자라면 누가 어떤 정보에 정확히 어떤 액세스 권한을 가지고 있는지 평가할 수 있는 좋은 기회이기도 합니다.
카우치베이스 클라우드의 프로젝트
카우치베이스 클라우드에서는 프로젝트 개념을 도입했습니다.
많은 카우치베이스 고객이 여러 개의 서로 다른 애플리케이션을 지원하기 위해 카우치베이스를 사용합니다. 프로젝트는 이러한 클러스터를 그룹으로 논리적으로 구성할 수 있는 기회를 제공합니다. 새 프로젝트를 만들고 그 안에 관련 클러스터를 배포하기만 하면 됩니다.
버킷 마이그레이션
카우치베이스 버킷은 많은 사람들이 다음과 같이 말합니다. 데이터베이스클러스터 내의 첫 번째 논리적 스토리지 계층입니다.
이러한 버킷을 만드는 것은 간단하며, 이미 Couchbase Server를 사용 중이라면 더욱 간단합니다. 각 클러스터 안에는 버킷 탭이 있으며, '버킷 추가'를 선택하면 버킷 이름, 메모리 할당 및 충돌 해결 옵션이 포함된 양식 채우기 창이 나타납니다. 새 버킷을 만들고 관련 정보를 제공하기만 하면 클러스터로 데이터 마이그레이션을 시작할 준비가 완료됩니다.

데이터 마이그레이션
이제 쇼의 본론에 들어가겠습니다: 데이터 마이그레이션입니다. Couchbase Cloud에서 데이터를 마이그레이션하는 방법에는 오프라인 마이그레이션과 온라인 마이그레이션의 두 가지 주요 방법이 있습니다.
온라인 데이터 마이그레이션
온라인 데이터 마이그레이션이 가장 일반적이므로 온라인 데이터 마이그레이션부터 시작하겠습니다.
온라인 마이그레이션은 원래 클러스터가 계속 작동하고 트래픽을 처리하는 동안 데이터를 다른 활성 클러스터로 옮기거나 복제하는 프로세스입니다. 이 접근 방식은 다운타임의 필요성을 없애주며, 이는 Couchbase와 같은 NoSQL 기술의 주요 이점 중 하나입니다.
우리가 사용할 도구는 XDCR, 즉 교차 데이터 센터 복제입니다. 이 도구를 사용하면 서로 다른 클러스터에 있는 두 버킷 간에 양방향 또는 단방향 복제 스트림을 구성할 수 있습니다. 이 연속 복제는 데이터 변경 프로토콜(DCP)의 소비자로서 클러스터에서 데이터 변형을 즉시 전파하여 복제가 이러한 변경 사항도 포착하도록 합니다.
몇 단계만 거치면 자체 관리형 클러스터를 Couchbase Cloud에 연결하고 복제 스트림을 설정할 수 있습니다:
- 대상 클러스터가 있는 프로젝트 내에서 자체 관리 클러스터를 연결합니다.

- 자체 관리 클러스터에 대한 정보를 입력하고 필요한 경우 인증서를 업로드한 다음 저장을 누릅니다.

- 고급 필터링을 포함하여 소스 및 대상 버킷에서 복제 스트림을 추가하고 복제를 시작하세요.

여기에서 필요한 만큼 복제 스트림을 추가하고 추가 자체 관리 클러스터에 대해 이 과정을 반복합니다.
데이터가 복제된 후에는 애플리케이션 및 성능 관점에서 모든 것을 테스트하여 전환이 원활하게 이루어질 수 있다는 확신이 들 때까지 테스트할 수 있는 좋은 기회입니다. 새 클러스터가 애플리케이션에 연결되고 작동하면 모든 준비가 완료된 것입니다. 이 시점에서 자체 관리 클러스터를 그대로 두거나 프로젝트에서 제거하고 적절한 경우 이러한 노드를 해제하세요.
간단하죠?
오프라인 데이터 마이그레이션
오프라인 데이터 마이그레이션은 활발하게 쓰여지지 않는 데이터를 마이그레이션하는 데 사용됩니다. 이러한 시나리오에서는 데이터를 있는 그대로 캡처한 다음, 캡처한 데이터를 Couchbase Cloud로 가져와야 합니다.
이 프로세스를 시작하려면 가져올 준비가 된 고정 데이터 세트가 필요합니다. 기존 Couchbase 클러스터가 있는 경우, 다음을 사용하세요. cbexport 를 클릭해 기존 데이터를 내보낼 수 있습니다. 하지만 데이터가 올바른 형식이라면 어떤 소스에서든 가져올 수 있습니다.
이 방법으로 가져올 수 있는 데이터 세트는 다음과 같습니다:
-
- JSON 목록
- JSON 라인
- CSV
- 아카이브
적절한 데이터 세트가 있으면 Couchbase Cloud 컨트롤 플레인 내의 가져오기 기능을 사용하여 데이터를 기존 버킷으로 수집합니다. 이 기능은 클러스터 내의 '도구' 드롭다운에서 찾을 수 있습니다.

여기에서 "가져오기"를 클릭하면 대상 버킷, 가져오기 파일 유형, 키 생성 및 추가 구성을 명시적으로 정의할 수 있는 대화 상자가 나타납니다. 모든 것이 준비되면 '가져오기'를 선택하여 데이터 가져오기를 시작합니다.

오프라인 데이터 마이그레이션에 대한 자세한 내용은 제 동료인 Prasad Doddi가 다음과 같은 훌륭한 글을 작성했습니다. 카우치베이스 클라우드의 새롭고 개선된 가져오기 프로세스.
N1QL 인덱스 마이그레이션
위의 처음 몇 섹션에서는 Couchbase의 키-값 캐시를 활용하는 대부분의 사용 사례를 다룹니다. 그러나 일부 클러스터는 Couchbase 쿼리 언어를 통해 쿼리 기능을 활용하도록 확장되었습니다, N1QL (예: JSON용 SQL).
SQL과 마찬가지로 N1QL 쿼리도 쿼리를 성공적으로 실행하려면 인덱스가 필요합니다. 아시다시피 인덱스는 특정 쿼리에 맞게 최적화하기 위해 미세 조정이 필요합니다. 이러한 인덱스에 많은 시간을 들인 만큼 인덱스가 제대로 전송되는지 확인하고 싶을 것입니다.
인덱스를 마이그레이션하는 첫 번째 방법은 수동 접근 방식입니다. 기존 클러스터에서, 주어진 UI의 인덱스 섹션에서 인덱스 정의를 검색합니다. 이러한 정의를 Couchbase Cloud 클러스터 옆에 불러오고, 쿼리 워크벤치로 이동한 다음, 원래 환경과 일치하는 완전한 인덱스 세트가 나올 때까지 인덱스 정의 명령을 실행하세요.

대규모 환경이나 쿼리가 데이터를 검색하는 주된 방법인 환경의 경우, 인덱스 정의에 대한 이러한 접근 방식은 너무 장황해지기 시작합니다. 이 경우 마이그레이션해야 할 인덱스가 너무 많으므로 더 간단한 방법이 필요합니다.
인덱스를 마이그레이션하기 위한 프로그래밍 방식도 있으며, 이를 위해서는 cbshell 명령줄 도구를 사용하세요. 네 가지 간단한 단계로 인덱스를 마이그레이션할 수 있습니다:
- 설치
cbshell를 두 클러스터 모두에 인터넷 접속이 가능한 시스템에 설치합니다. - 만들기
구성파일에 소스 자체 관리 클러스터와 대상 클라우드 클러스터를 모두 정의합니다. - 소스 클러스터를 입력하고 정의를 클라우드 클러스터로 마이그레이션합니다.
- 대상 클라우드 클러스터를 입력하고 새 인덱스를 빌드합니다.
제 동료가 작성한 이 글에서는 다음에 대해 자세히 설명합니다. Couchbase Server에서 Couchbase Cloud로 마이그레이션하기인덱스 마이그레이션을 포함합니다.
개인적으로 저는 수동 접근 방식이 프로그래밍 방식보다 빠르지는 않더라도 비슷하게 빠르다고 생각합니다. 수동 인덱스 마이그레이션 접근 방식은 현재 배포된 인덱스를 검토할 수 있는 좋은 기회이기도 합니다. 더 이상 필요하지 않은 인덱스를 찾거나 성능 향상을 위해 이전 인덱스 정의를 조정해야 할 수도 있습니다.
반면에 일부 구현에서는 쿼리 및 인덱싱이 엄청나게 클 수 있습니다. 여러 클러스터에 걸쳐 수백 개의 인덱스가 있을 수 있습니다. 수동 접근 방식은 너무 많은 시간이 소요되는 단일 작업이 될 수 있습니다. 이 시나리오에서는 반드시 프로그래밍 방식을 채택하세요.
전체 텍스트 검색 인덱스 마이그레이션
일부 클러스터에는 다음이 있을 수 있습니다. 전체 텍스트 검색(FTS) 서비스 풀에서 활성화된 기능입니다.
쿼리와 마찬가지로 전체 텍스트 검색에도 인덱스가 필요합니다. 이러한 FTS 인덱스를 Couchbase Cloud로 복제하려면 위에서 설명한 수동 인덱스 마이그레이션과 유사한 접근 방식이 필요합니다.
이 수동 마이그레이션을 수행하려면 전체 텍스트 검색 인덱스의 인덱스 정의를 가져와서 새 Couchbase Cloud 클러스터로 복사하세요. 이 작업은 현재 수동 프로세스이지만 완료하기가 그리 어렵지는 않습니다.

결론
사용자, 버킷, 데이터 및 모든 종류의 인덱스를 포함하여 Couchbase Cloud로 마이그레이션하기 위한 단계별 가이드입니다. 이 소개가 도움이 되셨기를 바라며, 앞으로 Couchbase Cloud 소개 시리즈에서 더 많은 글을 작성할 수 있기를 바랍니다.
이 시리즈의 나머지 포스팅을 통해 Couchbase Cloud 시작하기에 대해 알아보세요: