Azure DocumentDB 마이그레이션 확장을 사용하여 MongoDB를 Azure DocumentDB로 온라인 마이그레이션(공개 미리 보기)

이 자습서에서는 Visual Studio Code의 Azure DocumentDB 마이그레이션 확장을 사용하여 MongoDB의 온-프레미스 또는 클라우드 인스턴스에서 Azure DocumentDB로 마이그레이션 작업을 만들고 관리합니다. 이 확장은 서비스 중단 없이 마이그레이션을 수행하기 위한 개발자 친화적인 인터페이스를 제공합니다. 이 확장은 추가 인프라의 필요성을 없애고 안전한 연결, 제로 비용 사용량 및 마이그레이션할 데이터베이스 및 컬렉션에 대한 세분화된 제어를 제공합니다.

이 문서의 초점은 확장의 통합 워크플로를 사용하여 Visual Studio Code 내에서 직접 마이그레이션 단계를 간소화하는 것입니다. 이 접근 방식은 복잡성과 최대 안정성을 최소화하면서 간소화되고 관리되는 환경을 원하는 시나리오에 적합합니다.

필수 조건

  • Azure 구독

  • 기존 Azure DocumentDB 클러스터

마이그레이션을 시작하기 전에 마이그레이션을 위해 Azure DocumentDB 계정 및 기존 MongoDB 인스턴스를 준비합니다.

MongoDB 인스턴스(원본)

  • 미리 배포 평가를 완료하여 원본 인스턴스와 대상 계정 간에 비호환성 및 경고가 있는지 확인합니다.
  • readAnyDatabaseclusterMonitor 권한을 가진 사용자를 추가하십시오. 단, 이미 사용자가 존재하지 않는 경우에 한합니다. 확장에서 마이그레이션 작업을 만드는 동안 이 자격 증명을 사용합니다.

Azure DocumentDB (대상)

  • Azure DocumentDB 계정의 자격 증명을 수집합니다.
  • 사용자에게 createCollection, , dropCollectioncreateIndexinsertlistCollections 권한이 있는지 확인합니다.

필요한 최소 권한

다음 최소 역할을 사용하여 마이그레이션 작업을 만들고 실행합니다.

최소 역할 Scope 연결 모드에 적용됩니다. Purpose
Reader Subscription 퍼블릭 및 프라이빗 구독 및 리소스 그룹을 나열합니다. 각 마이그레이션 작업에 필요합니다.
Azure Database Migration Service 기여자 리소스 그룹 퍼블릭 및 프라이빗 DMS(Azure Database Migration Service 만들기) 모든 마이그레이션에 대해 새 DMS를 만들 필요가 없습니다. 지역당 하나의 DMS로 충분합니다.
Contributor Subscription 퍼블릭 및 프라이빗 구독에 DMS를 등록합니다. 일회성 작업이며 다른 사용자에게 위임할 수 있습니다.
사용자 액세스 관리자 가상 네트워크 프라이빗 전용 DMS 객체 주체에 네트워크 기여자 역할을 할당합니다. 가상 네트워크당 일회성 작업이며 다른 사용자에게 위임할 수 있습니다.
Contributor Azure DocumentDB 퍼블릭 및 프라이빗 마이그레이션 작업을 트리거합니다.

공급자 등록 세부 정보에 대해서는 구독에서 Microsoft.DataMigration 리소스 공급자를 등록하기를 참조하세요.

Important

Microsoft Entra ID 인증은 현재 마이그레이션 작업에서 지원되지 않습니다. 네이티브 DocumentDB 인증을 사용하세요.

마이그레이션 수행

마이그레이션 크기 조정, 속도 및 중단에 대한 계획 지침은 마이그레이션 모범 사례를 참조하세요.

원본에 연결

  1. VS Code용 DocumentDB 확장을 엽니다.
  2. 문서 DB 연결 목록으로 마이그레이션하려는 MongoDB 서버를 추가합니다.
  3. 새 연결 추가를 선택합니다.
  4. 탐색 모음에서 연결 문자열을 선택합니다.
  5. 연결 문자열을 붙여넣습니다. mongodb://<YOUR_USERNAME>:<YOUR_PASSWORD>@localhost:10260/?tls=true&tlsAllowInvalidCertificates=true&authMechanism=SCRAM-SHA-256
  6. DocumentDB 연결에서 연결을 선택하고 확장하여 연결합니다.

마이그레이션 확장 호출

DocumentDB 연결에서 마이그레이션 확장을 호출할 수 있습니다.

  1. 확장된(연결된) 연결을 마우스 오른쪽 단추로 클릭합니다.

  2. 상황에 맞는 메뉴에서 데이터 마이그레이션 을 선택합니다.

    Visual Studio Code의 상황에 맞는 메뉴 스크린샷

  3. 명령 팔레트에서 Azure DocumentDB로의 마이그레이션을 선택하세요. Visual Studio Code의 명령 팔레트에 마이그레이션 도구가 나열된 스크린샷.

  4. 그런 다음 Azure DocumentDB로 마이그레이트를 선택합니다. Visual Studio Code의 명령 팔레트에 마이그레이션 옵션이 표시된 스크린샷입니다.

  5. 마이그레이션 마법사는 프로세스를 안내합니다.

마이그레이션 작업 만들기

마이그레이션 작업은 원본에서 대상 Azure DocumentDB로 컬렉션 그룹을 마이그레이션하는 데 사용됩니다. 마이그레이션 작업 만들기 마법사에는 6단계가 있습니다.

1단계: 작업 만들기

이 단계에서는 작업에 대한 기본 세부 정보를 제공합니다.

  • 작업 이름: 마이그레이션 작업을 식별하기 위해 사용자에게 친숙한 이름을 제공합니다.

  • 마이그레이션 모드: 사용 사례에 가장 적합한 마이그레이션 모드를 선택합니다.

    • 온라인 마이그레이션은 컬렉션 데이터를 복사하여 프로세스 중에 업데이트도 복제되도록 합니다. 이 방법은 가동 중지 시간을 최소화하면서 비즈니스 연속성을 위한 지속적인 운영을 가능하게 하는 장점이 있습니다. 진행 중인 작업이 중요하고 가동 중지 시간을 줄이는 것이 우선 순위인 경우 이 옵션을 사용합니다.
    • 오프라인 마이그레이션은 처음에 데이터베이스의 스냅샷을 캡처하여 더 간단하고 예측 가능한 접근 방식을 제공합니다. 데이터베이스의 정적 복사본을 사용할 수 있고 실시간 업데이트가 필수가 아닌 경우 잘 작동합니다.

    Important

    MongoDB에서 온라인 마이그레이션을 성공적으로 수행하려면 원본 MongoDB 서버에서 ChangeStream을 사용하도록 설정해야 합니다. ChangeStream이 없으면 초기 마이그레이션 후 데이터를 수정한 내용은 캡처되지 않습니다. 따라서 원본 MongoDB 서버에서 ChangeStream을 사용하도록 설정한 경우에만 온라인 마이그레이션 모드를 사용합니다.

  • 연결: 조직의 보안 의무 및 네트워크 설정에 따라 퍼블릭프라이빗에서 선택합니다.

    • 공용 IP를 통해 인터넷을 통해 원본 및 대상 서버에 액세스할 수 있는 경우 공용 을 사용합니다. 외부 접근성이 필요한 서비스를 지원할 수 있습니다.
    • 원본 또는 대상 서버가 가상 네트워크 내의 개인 IP를 통해서만 액세스할 수 있는 경우 Private 을 사용합니다. 공용 인터넷에 대한 노출을 제거하여 보안을 강화합니다.

다음을 선택하여 작업을 계속할 수 있습니다.

마법사에서 작업 만들기 단계의 스크린샷.

2단계: 대상 선택

이 단계에서는 기존 Azure DocumentDB 계정을 선택하고 해당 연결 문자열을 제공합니다.

  1. 드롭다운에서 구독, 리소스 그룹 및 Azure DocumentDB 계정을 선택합니다.

  2. Azure DocumentDB 계정에 연결 문자열을 제공합니다.

  3. 화면에 나열된 IP가 Azure DocumentDB 방화벽에서 허용되는지 확인합니다.

  4. 다음을 선택하여 작업을 계속할 수 있습니다.

마법사의 대상 선택 단계 스크린샷

3단계: DMS(Database Migration Service) 선택

Azure Database Migration Service는 로컬 리소스를 사용하는 대신 데이터 전송을 위해 클라우드 인프라를 사용하여 Azure 데이터 플랫폼 간에 데이터를 마이그레이션하는 서비스입니다. 드롭다운에서 기존 Azure Database Migration Service 인스턴스를 선택하거나 DMS 만들기를 선택하여 새 마이그레이션 서비스를 만듭니다.

다음을 선택하여 작업을 계속할 수 있습니다.

마법사의 '데이터베이스 마이그레이션 서비스 선택' 단계의 스크린샷입니다.

4단계: 연결 구성

이 화면은 1단계에서 선택한 연결 모드에 따라 달라집니다.

공용 연결

공용 연결에서 마이그레이션 작업은 공용 인터넷을 사용하여 원본 및 대상에 연결합니다. 통신을 사용하려면 원본 및 대상 방화벽을 업데이트해야 합니다. DMS 서버에서 통신을 사용하도록 설정하려면 화면에 나열된 IP 주소를 원본 및 대상 방화벽에 추가합니다. 네트워킹 모델에 대한 자세한 내용은 공용 연결을 참조하세요. 방화벽 구성 지침은 Azure DocumentDB 클러스터 방화벽 구성을 참조하세요.

마법사의 공용 연결 구성 단계 스크린샷.

프라이빗 연결

프라이빗 연결에서 마이그레이션 작업은 가상 네트워크 내에서 실행됩니다. 가상 네트워크와 안전하게 통신하기 위해 가상 네트워크 피어링을 사용합니다. 네트워킹 모델에 대한 자세한 내용은 프라이빗 연결을 참조하세요.

  1. 이 도구를 사용하면 원본에 대해 하나씩, 다른 하나는 대상에 대한 두 개의 가상 네트워크와 피어링할 수 있습니다. 네트워크 구성에 따라 드롭다운에서 구독, 리소스 그룹 및 가상 네트워크를 선택합니다.

  2. DMS 구성 섹션에서 가상 네트워크와 충돌하지 않는 CIDR 범위를 선택합니다.

  3. 화면에 제공된 PowerShell 스크립트를 실행하여 가상 네트워크 통합을 사용하도록 설정합니다.

  4. 다음을 선택하여 작업을 계속할 수 있습니다.

마법사의 프라이빗 연결 구성 단계 스크린샷.

5단계: 컬렉션 선택

이 단계에서는 마이그레이션 작업에 포함할 컬렉션을 선택합니다. 제공된 검색 옵션을 사용하여 컬렉션 목록에서 선택합니다. 대상에 이미 있는 컬렉션은 대상 열의 Exists에서 자동으로 Yes로 표시됩니다.

Tip

마이그레이션 작업이 만들어지면 컬렉션 목록을 추가할 수 없으므로 포함하려는 모든 컬렉션을 선택해야 합니다.

다음을 선택하여 작업을 계속할 수 있습니다.

마법사의 컬렉션 선택 단계 스크린샷.

6단계: 확인 및 시작

마이그레이션 시작을 선택하기 전에 마이그레이션 작업 세부 정보를 검토 합니다. 세부 정보를 업데이트해야 하는 경우 [세부 정보 편집] 단추를 사용합니다.

마이그레이션 작업이 성공적으로 만들어지면 기존 작업 보기 페이지로 자동으로 리디렉션됩니다.

Tip

데이터 마이그레이션 작업은 Azure Database Migration Service에서 실행됩니다. 따라서 데이터 마이그레이션 중에 원본 및 대상 환경에 연결할 필요가 없습니다. 상태는 대시보드에서 자주 업데이트됩니다.

기존 마이그레이션 작업 모니터링

기존 작업 보기 탭을 사용하여 초기화된 작업의 마이그레이션 상태를 모니터링합니다. 작업은 선택한 DMS에 따라 나열됩니다. DMS 변경 단추를 사용하여 선택을 변경합니다.

상태는 자주 업데이트됩니다. 선택한 컬렉션 스냅샷이 대상에 복사되면 오프라인 작업이 자동으로 완료됩니다. 그러나 온라인 마이그레이션은 수동으로 중단해야 합니다.

기존 작업 보기 화면의 스크린샷

컬렉션별 상태를 보려면 테이블에서 행을 선택합니다.

오프라인 마이그레이션에 대한 컬렉션별 상태를 보여 주는 스크린샷

온라인 마이그레이션 모니터링

온라인 마이그레이션은 오프라인 마이그레이션과 달리 자동으로 완료되지 않습니다. 대신 컷오버를 선택하여 수동으로 완료될 때까지 계속 실행됩니다.

온라인 마이그레이션을 완료하려면 지정된 순서대로 다음 단계를 수행합니다.

  1. 모든 컬렉션에 대해 초기 데이터 로드가 완료되면 잘라내기 단추가 활성화됩니다. 이 단계에서 작업은 복제 단계에 있으며, 원본 인스턴스에서 대상 인스턴스로 업데이트를 지속적으로 복사하여 최신 변경 사항으로 최신 상태를 유지합니다.

  2. 마이그레이션 중단을 수행할 준비가 되면 마이그레이션 중인 원본 컬렉션에 들어오는 모든 트랜잭션을 중지합니다.

  3. 복제 간격은 마지막 업데이트와 현재 시간 사이의 시간 간격을 보여 줍니다.

  4. 테이블의 복제 변경 내용을 모니터링하고 복제 변경 내용 재생 메트릭이 안정화될 때까지 기다립니다. 안정적인 복제 변경 내용 재생 메트릭은 원본의 모든 업데이트가 대상에 성공적으로 복사되었음을 나타냅니다.

  5. 모든 컬렉션에 대해 복제 간격이 최소화되고 복제 변경 반영 메트릭이 안정적일 때 전환을 선택합니다.

  6. 행 수가 원본 컬렉션과 대상 컬렉션 간에 동일한지 수동으로 확인합니다.

비고

원본과 대상이 동기화되었는지 검증하지 않고 전환 작업을 수행하면 데이터가 손실될 수 있습니다.

온라인 마이그레이션에 대한 컬렉션별 상태를 보여 주는 스크린샷

마이그레이션 시나리오

Azure DocumentDB 마이그레이션 확장은 Azure 실행되는 MongoDB 인스턴스, 온-프레미스 데이터 센터 및 기타 클라우드 공급자를 비롯한 여러 원본 환경을 지원합니다. 확장은 다양한 네트워크 구성 및 보안 요구 사항을 수용할 수 있는 유연한 연결 옵션을 제공합니다.

지원되는 원본 환경

다음 표에서는 지원되는 마이그레이션 원본을 요약합니다.

원본 환경 Description
Azure 내 Azure Virtual Machines 또는 기타 Azure 호스팅 서비스에서 실행되는 MongoDB 인스턴스
On-premises 로컬 데이터 센터 또는 프라이빗 인프라에서 실행되는 MongoDB 서버
다른 클라우드 공급자 다른 클라우드 플랫폼에서 호스트되는 MongoDB 인스턴스

공용 연결

공용 연결 모드에서 DMS(Azure Database Migration Service)는 공용 인터넷을 통해 원본 및 대상 서버에 연결합니다. DMS는 원본 서버와 대상 서버 모두에서 방화벽 허용 목록에 추가하는 고정 IP 주소를 제공합니다. DMS는 지정된 지역 내의 모든 마이그레이션에 공유 공용 가상 네트워크를 사용합니다. 이 가상 네트워크는 고객 간에 공유되지만 각 마이그레이션 작업은 자체 격리된 프라이빗 작업자 노드에서 실행되어 작업 수준 격리를 보장합니다.

다음과 같은 경우 공용 연결을 사용합니다.

  • 원본 및 대상 서버는 공용 IP 주소를 통해 액세스할 수 있습니다.
  • 조직의 보안 정책은 공용 인터넷을 통해 연결을 허용합니다.
  • 가상 네트워크 구성 없이 더 간단한 설정이 필요합니다.

공용 연결을 위한 네트워크 아키텍처를 보여 주는 다이어그램

공용 연결을 사용하려면 다음을 수행합니다.

  1. 마이그레이션 마법사에서 연결 모드로 공용 을 선택합니다.

  2. 마법사에 표시되는 고정 IP 주소를 확인합니다.

  3. 원본 MongoDB 서버의 방화벽 허용 목록에 이러한 IP 주소를 추가합니다.

  4. 이러한 IP 주소를 Azure DocumentDB 방화벽 추가합니다.

프라이빗 연결

프라이빗 연결 모드에서 DMS는 각 마이그레이션 작업에 대한 전용 프라이빗 가상 네트워크를 프로비전하고 원본 및 대상 가상 네트워크와 피어링합니다. 즉, 모든 작업이 격리된 작업자 노드와 격리된 네트워크를 모두 가져오면 작업 간에 트래픽이 교차하지 않고 고객 간에 공유 네트워크 경로가 존재하지 않습니다.

확장은 최대 두 개의 가상 네트워크를 지원합니다.

  • 원본 가상 네트워크: 원본 MongoDB 서버에 액세스할 수 있는 가상 네트워크입니다.
  • 타겟 가상 네트워크: Azure DocumentDB 클러스터에 액세스할 수 있는 가상 네트워크입니다.

다음과 같은 경우 프라이빗 연결을 사용합니다.

  • 원본 또는 대상 서버는 공용 인터넷을 통해 액세스할 수 없습니다.
  • 조직에는 모든 트래픽이 프라이빗 네트워크를 통해 전달되어야 합니다.
  • 공용 인터넷 노출을 피해야 합니다.

다른 클라우드 공급자 또는 온-프레미스에서

선호하는 VPN 도구를 사용하여 다른 클라우드 또는 온-프레미스에서 Azure 원본 환경 간에 네트워크 연결을 설정합니다.

다른 클라우드 공급자 또는 온-프레미스에서 프라이빗 연결을 위한 네트워크 아키텍처를 보여 주는 다이어그램

Azure 프라이빗 엔드포인트에서

원본 및 대상 가상 네트워크에 대한 프라이빗 엔드포인트를 설정합니다.

Azure 내의 프라이빗 연결을 위한 네트워크 아키텍처를 보여주는 다이어그램입니다

프라이빗 연결을 사용하려면 다음을 수행합니다.

  1. 마이그레이션 마법사에서 연결 모드로 프라이빗 을 선택합니다.

  2. 원본 환경에 대한 구독, 리소스 그룹 및 가상 네트워크를 선택합니다.

  3. 대상 환경에 대한 구독, 리소스 그룹 및 가상 네트워크를 선택합니다.

  4. DMS 구성 섹션에서 기존 가상 네트워크와 충돌하지 않는 CIDR 범위를 선택합니다.

  5. 마법사에 제공된 PowerShell 스크립트를 실행하여 가상 네트워크 통합 및 피어링을 사용하도록 설정합니다.

Important

프라이빗 액세스를 사용하는 경우 단일 가상 네트워크는 한 번에 하나의 활성 마이그레이션 작업만 지원할 수 있습니다. 여러 동시 작업을 실행하려면 각 작업에 서로 다른 가상 네트워크를 사용합니다.

구독에서 Microsoft.DataMigration 리소스 공급자를 등록하십시오.

구독에 Microsoft.DataMigration 리소스 공급자가 등록되어 있는지 확인하려면 다음 단계를 따르십시오.

Azure 포털

  1. Azure 포털로 이동하여 구독으로 이동합니다.

  2. 왼쪽 메뉴에서 설정에서 리소스 공급자를 선택합니다.

  3. 위쪽의 검색 상자에서 Microsoft.DataMigration 을 검색합니다.

  4. 등록되지 않은 경우 해당 단추를 선택하고 등록 단추를 선택합니다.

Azure CLI

  1. Azure Cloud Shell 또는 로컬 터미널을 엽니다.

  2. 리소스 공급자를 등록하는 다음 명령을 실행합니다.

    az provider register --namespace Microsoft.DataMigration
    

PowerShell

  1. Azure Cloud Shell 또는 로컬 PowerShell을 엽니다.

  2. 리소스 공급자를 등록하는 다음 명령을 실행합니다.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"
    

FAQ

Azure DocumentDB에서 보기를 지원할 때 컬렉션 선택 화면 단계에서 보기가 누락되는 이유는 무엇인가요?

Azure DocumentDB는 새 뷰 만들기를 지원합니다. 그러나 마이그레이션 확장은 기존 뷰 마이그레이션을 지원하지 않습니다.

마이그레이션이 완료된 후에는 언제든지 보기를 다시 생성할 수 있습니다.

MongoDB에서 Azure DocumentDB로 마이그레이션할 때 건너뛰는 컬렉션 및 데이터베이스는 무엇입니까?

MongoDB의 내부 데이터베이스 및 컬렉션은 다음과 같습니다.

카테고리 Description
데이터베이스 관리자, 로컬, 시스템 설정
컬렉션 접두사를 가진 모든 컬렉션 system.

마이그레이션 작업이 내 컴퓨터에서 로컬로 실행됩니까?

VS Code의 마이그레이션 마법사를 사용하려면 로컬 컴퓨터에서 원본 및 대상 환경으로의 네트워크 연결이 필요합니다. 이 연결은 데이터베이스 및 컬렉션을 열거하고 마이그레이션 작업을 제출하는 데 사용됩니다. 작업이 제출되면 VS Code를 닫거나 원본 및 대상 환경에서 연결을 끊을 수 있습니다.

데이터 마이그레이션은 모든 데이터 이동을 관리하는 Azure 호스팅 서비스인 DMS(Azure Database Migration Service)에 의해 완전히 실행됩니다. DMS는 작업 실행을 위해 로컬 컴퓨터 또는 VS Code를 사용하지 않으므로 작업 제출 후에는 로컬 연결이 필요하지 않습니다.

마이그레이션하는 동안 데이터베이스 및 컬렉션의 이름을 바꿀 수 있나요?

확장은 마이그레이션 중에 데이터베이스 및 컬렉션 이름 바꾸기를 지원하지 않습니다.

연결 문제를 방지하려면 원본 서버 방화벽을 어떻게 구성해야 하나요?

필요한 네트워크 구성은 선택한 연결 모드에 따라 달라집니다.

  • 공용 모드: 통신을 사용하려면 원본 방화벽과 대상 방화벽 모두에서 마법사에 표시되는 IP 주소를 허용해야 합니다.
  • 프라이빗 모드: DMS 서버가 가상 네트워크 내의 원본 및 대상 엔드포인트와 안전하게 통신할 수 있도록 가상 네트워크 통합을 사용하도록 설정해야 합니다.

VS Code 연결도 참조하세요.

단일 마이그레이션에서 마이그레이션할 수 있는 데이터베이스 및 컬렉션은 몇 개입니까?

단일 마이그레이션에 컬렉션 수를 무제한으로 포함할 수 있습니다.

동시에 실행할 수 있는 마이그레이션 작업은 몇 개입니까?

공용 액세스를 사용할 때 여러 마이그레이션 작업을 실행할 수 있습니다. 그러나 프라이빗 액세스를 사용하는 경우 단일 가상 네트워크는 한 번에 하나의 활성 작업만 지원할 수 있습니다. 프라이빗 액세스 권한으로 여러 작업을 실행하려면 각 작업에 서로 다른 가상 네트워크를 사용해야 합니다.

확장에서 생성하는 로그 유형은 무엇인가요?

확장은 기본 로그 디렉터리에 오류, 경고 및 기타 진단 로그를 기록합니다.

  • Windows - C:\Users\<username>\.dmamongo\logs\
  • 리눅스 - ~/.dmamongo/logs
  • Macos - /Users/<username>/.dmamongo/logs

다음 단계