Amazon DocumentDB로 마이그레이션 - Amazon DocumentDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon DocumentDB로 마이그레이션

Amazon DocumentDB(MongoDB 호환)는 MongoDB API와 호환되는 완전 관리형 데이터베이스 서비스입니다. 이 섹션에서 설명하는 프로세스를 사용하여 온프레미스 또는 Amazon Elastic Compute Cloud(Amazon EC2)에서 실행 중인 MongoDB 데이터베이스에서 Amazon DocumentDB로 데이터를 마이그레이션할 수 있습니다.

마이그레이션 도구

Amazon DocumentDB로 마이그레이션하기 위해 대부분의 고객이 사용하는 두 가지 기본 도구는 AWS Database Migration Service (AWS DMS)mongodumpmongorestore 같은 명령줄 유틸리티입니다. 그리고 이러한 옵션 중 하나는 전체 시간을 줄이고 마이그레이션 속도를 높일 수 있으므로 마이그레이션을 시작하기 전에 먼저 Amazon DocumentDB에 인덱스를 작성하는 것이 좋습니다. 이렇게 하려면 Amazon DocumentDB 인덱스 도구를 사용하면 됩니다.

AWS Database Migration Service

AWS Database Migration Service (AWS DMS) 는 관계형 데이터베이스와 비관계형 데이터베이스를 Amazon DocumentDB로 쉽게 마이그레이션할 수 있게 해주는 클라우드 서비스입니다. 를 AWS DMS 사용하여 온프레미스 또는 EC2에 호스팅된 데이터베이스에서 Amazon DocumentDB로 데이터를 마이그레이션할 수 있습니다. 를 사용하면 일회성 마이그레이션을 수행하거나 진행 중인 변경 사항을 복제하여 원본과 대상을 동기화된 상태로 유지할 수 있습니다. AWS DMS

를 사용하여 Amazon DocumentDB로 AWS DMS 마이그레이션하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

명령줄 유틸리티

Amazon DocumentDB에서 데이터를 마이그레이션하거나 Amazon mongodump DocumentDB에서 데이터를 마이그레이션하는 데 사용되는 일반적인 유틸리티에는,, mongorestore 등이 mongoexport 있습니다. mongoimport 일반적으로 mongodumpmongorestore는 데이터베이스에서 이진 형식으로 데이터를 덤프하고 복원할 때 가장 효율적인 유틸리티입니다. 이것은 일반적으로 가장 성능 기준에 맞는 옵션이며 논리적 내보내기에 비해 데이터 크기가 작아집니다. mongoexportmongoimport는 JSON 또는 CSV 같은 논리적 형식으로 데이터를 내보내고 가져 오려는 경우 유용합니다. 이 데이터는 사람이 읽을 수 있지만 일반적으로 mongodump/mongorestore 보다 느리고 데이터 크기가 커지기 때문입니다.

아래 마이그레이션 접근 방식 섹션에서는 사용 사례 및 요구 사항에 따른 명령줄 AWS DMS 유틸리티와 사용하는 것이 가장 좋은 시기를 설명합니다.

Discovery

각 MongoDB 배포에 대해 다음 두 가지 데이터 세트를 식별하고 기록해야 합니다. 아키텍처 세부 정보운영 특성. 이 정보는 적절한 마이그레이션 접근 방식 및 클러스터 크기를 선택하는 데 도움이 됩니다.

아키텍처 세부 정보
  • 이름

    이 배포를 추적하기 위한 고유한 이름을 선택합니다.

     

  • 버전

    배포가 실행하는 MongoDB의 버전을 기록합니다. 버전을 확인하려면 mongo 셸을 사용하여 복제본 집합 멤버에 연결하고 db.version() 작업을 실행합니다.

     

  • Type

    배포가 독립 실행형 mongo 인스턴스, 복제본 집합 또는 샤드 있는 클러스터인지 기록합니다.

     

  • 회원

    각 클러스터, 복제본 집합 또는 독립 실행형 멤버의 호스트 이름, 주소 및 포트를 기록합니다.

     

    클러스터링된 배포의 경우 mongo 셸을 사용하여 mongo 호스트에 연결하고 sh.status() 작업을 실행하면 샤드 멤버를 찾을 수 있습니다.

     

    복제본 집합의 경우 mongo 셸을 사용하여 복제본 집합 멤버에 연결하고 rs.status() 작업을 실행하면 멤버를 가져올 수 있습니다.

     

  • Oplog 크기

    복제본 집합 또는 샤드 있는 클러스터의 경우 각 복제본 집합 멤버의 oplog 크기를 기록합니다. 멤버의 oplog 크기를 확인하려면 mongo 셸을 사용하여 복제본 집합 멤버에 연결하고 ps.printReplicationInfo() 작업을 실행합니다.

     

  • 복제본 집합 멤버 우선 순위

    복제본 집합 또는 샤드 있는 클러스터의 경우 각 복제본 집합 멤버의 우선 순위를 기록합니다. 복제본 집합 멤버 우선 순위를 확인하려면 mongo 셸을 사용하여 복제본 집합 멤버에 연결하고 rs.conf() 작업을 실행합니다. 우선 순위가 priority 키 값으로 표시됩니다.

     

  • TLS/SSL 사용

    각 노드에서 전송 중 암호화로 TLS(전송 계층 보안)/SSL(보안 소켓 계층)이 사용되는지 여부를 기록합니다.

운영 특성
  • 데이터베이스 특성

    각 모음에 대해 다음 정보를 기록합니다.

    • 명칭

    • 데이터 크기

    • 모음 개수

     

    데이터베이스 통계를 확인하려면 mongo 셸을 사용하여 데이터베이스에 연결하고 db.runCommand({dbstats: 1}) 명령을 실행합니다.

     

  • 모음 통계

    각 모음에 대해 다음 정보를 기록합니다.

    • 네임스페이스

    • 데이터 크기

    • 인덱스 개수

    • 모음 제한이 있는지 여부

     

  • 인덱스 통계

    각 모음에 대해 다음 인덱스 정보를 기록합니다.

    • 네임스페이스

    • ID

    • 크기

    • TTL

    • 희소

    • 배경

     

    인덱스 정보를 확인하려면 mongo 셸을 사용하여 데이터베이스에 연결하고 db.collection.getIndexes() 명령을 실행합니다.

     

  • Opcounters

    이 정보는 현재 MongoDB 워크로드 패턴(읽기 중심, 쓰기 중심 또는 균형적)을 이해하는 데 도움이 됩니다. 또한 초기 Amazon DocumentDB 인스턴스 선택에 대한 지침도 제공합니다.

     

    다음은 모니터링 기간에 수집할 주요 정보입니다(단위: 개수/초).

    • 쿼리

    • 삽입

    • 업데이트

    • 삭제

     

    이 정보는 db.serverStatus() 명령의 출력을 시간 그래프로 작성하여 얻을 수 있습니다. 또한 mongostat 도구를 사용하여 이들 통계의 순간 값을 가져올 수 있습니다. 하지만 이 옵션을 사용할 경우 피크 로드가 아닌 사용 기간에 마이그레이션을 계획하는 위험이 따릅니다.

     

  • 네트워크 통계

    이 정보는 현재 MongoDB 워크로드 패턴(읽기 중심, 쓰기 중심 또는 균형적)을 이해하는 데 도움이 됩니다. 또한 초기 Amazon DocumentDB 인스턴스 선택에 대한 지침도 제공합니다.

     

    다음은 모니터링 기간에 수집할 주요 정보입니다(단위: 개수/초).

    • 연결

    • 수신 네트워크 바이트

    • 송신 네트워크 바이트

     

    이 정보는 db.serverStatus() 명령의 출력을 시간 그래프로 작성하여 얻을 수 있습니다. 또한 mongostat 도구를 사용하여 이들 통계의 순간 값을 가져올 수 있습니다. 하지만 이 옵션을 사용할 경우 피크 로드가 아닌 사용 기간에 마이그레이션을 계획하는 위험이 따릅니다.

계획: Amazon DocumentDB 클러스터 요구 사항

마이그레이션이 성공하려면 Amazon DocumentDB 클러스터의 구성과 애플리케이션이 클러스터에 액세스하는 방법을 모두 신중하게 고려해야 합니다. 클러스터 요구 사항을 결정할 때 다음 각 차원을 고려하십시오.

  • 가용성

    Amazon DocumentDB는 복제본 인스턴스 배포를 통해 고가용성을 제공하며, 이러한 인스턴스는 장애 조치라고 하는 프로세스에서 기본 인스턴스로 승격될 수 있습니다. 복제본 인스턴스를 다른 가용 영역에 배포함으로써 한층 높은 수준의 가용성을 확보할 수 있습니다.

     

    다음 표에서는 특정 가용성 목표를 충족하기 위한 Amazon DocumentDB 배포 구성에 대한 지침을 제공합니다.

     

    가용성 목표 인스턴스 합계 복제본 가용 영역
    99% 1 0 1
    99.9% 2 1 2
    99.99% 3 2 3

     

    전체 시스템 안정성이 데이터베이스뿐 아니라 모든 구성 요소를 고려해야 합니다. 전체 시스템 안정성 요구 사항을 충족하기 위한 모범 사례 및 권장 사항은 AWS Well-Architected 안정성 기반 백서를 참조하십시오.

     

  • 성능

    Amazon DocumentDB 인스턴스에서는 클러스터의 스토리지 볼륨에서 읽고 쓸 수 있습니다. 클러스터 인스턴스는 다양한 메모리 및 vCPU 용량으로 구성된 다수의 유형으로 제공되며, 이러한 용량은 클러스터 읽기 및 쓰기 성능에 영향을 미칩니다. 발견 단계에서 수집한 정보를 사용하여 워크로드 성능 요구 사항을 지원할 수 있는 인스턴스 유형을 선택합니다. 지원되는 인스턴스 유형의 목록은 인스턴스 클래스 관리 섹션을 참조하세요.

     

    Amazon DocumentDB 클러스터의 인스턴스 유형을 선택할 때 워크로드 성능 요구 사항의 다음 측면을 고려하십시오.

    • vCPUs—더 많은 연결 수가 필요한 아키텍처에는 vCPUs가 더 많은 인스턴스가 유리할 수 있습니다.

       

    • 메모리—가능할 경우, 작업 데이터 세트를 메모리에 유지하면 성능이 극대화됩니다. 시작 가이드라인은 인스턴스 메모리의 3분의 1을 Amazon DocumentDB 엔진에 예약하고, 2분의 3을 작업 데이터 세트에 남겨두는 것입니다.

       

    • 연결 —최소 최적 연결 수는 Amazon DocumentDB 인스턴스 vCPU당 연결 8개입니다. Amazon DocumentDB 인스턴스 연결 한도는 훨씬 더 높지만, vCPU당 연결 8개를 초과하면 추가 연결로 인한 성능 이점이 줄어듭니다.

       

    • 네트워크—클라이언트 또는 연결 수가 많은 워크로드는 삽입 및 검색된 데이터에 필요한 전체 네트워크 성능을 고려해야 합니다. 대량 작업은 네트워크 리소스를 보다 효율적으로 활용할 수 있습니다.

       

    • 삽입 성능 —단일 문서 삽입은 일반적으로 Amazon DocumentDB에 데이터를 삽입하는 가장 느린 방법입니다. 대량 삽입 작업은 단일 삽입보다 속도가 현격하게 빠를 수 있습니다.

       

    • 읽기 성능—작업 메모리에서 읽기는 스토리지 볼륨에서 읽기보다 항상 빠릅니다. 그러므로 작업 집합을 메모리에 유지하도록 인스턴스 메모리 크기를 최적화하는 것이 이상적입니다.

       

    기본 인스턴스로부터 읽기를 처리하는 이외에, Amazon DocumentDB 클러스터는 복제본 집합으로 자동 구성됩니다. 그러므로 MongoDB 드라이버에서 읽기 기본 설정을 지정하여 읽기 전용 쿼리를 읽기 전용 복제본으로 라우팅할 수 있습니다. 복제본을 추가하여 읽기 트래픽을 확장함으로써 기본 인스턴스의 전체 로드를 줄일 수 있습니다.

     

    동일한 클러스터에 다양한 인스턴스 유형의 Amazon DocumentDB 복제본을 배포할 수 있습니다. 더 큰 인스턴스 유형의 복제본이 임시 분석 트래픽을 처리하도록 설정하는 것이 하나의 사용 사례가 될 수 있습니다. 혼합된 인스턴스 유형의 집합을 배포하는 경우 각 인스턴스에 대한 장애 조치 우선 순위를 구성해야 합니다. 이를 통해 장애 조치 이벤트가 항상 쓰기 로드를 감당하기에 충분한 크기의 복제본을 승격할 수 있습니다.

     

  • 복구

    Amazon DocumentDB 는 데이터가 기록될 때마다 지속적으로 데이터를 백업합니다. 백업 보존 기간이라고 하는 1~35일의 구성 가능한 기간 내에 point-in-time 복구 (PITR) 기능을 제공합니다. 기본 백업 보존 기간은 1일입니다. 또한 Amazon DocumentDB는 스토리지 볼륨의 일별 스냅샷을 자동으로 생성하며, 이 스냅샷도 구성된 백업 보존 기간 동안 보존됩니다.

     

    백업 보존 기간 이후에도 스냅샷을 보존하려는 경우 및 () 를 사용하여 언제든지 수동 스냅샷을 시작할 수 있습니다. AWS Management Console AWS Command Line Interface AWS CLI자세한 정보는 Amazon DocumentDB에서의 백업 및 복원을 참조하세요.

     

    마이그레이션을 계획할 때 다음을 고려하십시오.

    • 복구 시점 목표 (RPO) 를 충족하는 1~35일의 백업 보존 기간을 선택하십시오.

    • 수동 스냅샷이 필요한지, 필요할 경우 어떤 간격으로 필요한지 결정합니다.

마이그레이션 접근 방식

데이터를 Amazon DocumentDB로 마이그레이션하는 세 가지 기본 접근 방식이 있습니다.

참고

Amazon DocumentDB에서 언제든 인덱스를 생성할 수 있지만 대규모 데이터셋을 가져오기 전에 인덱스를 생성하는 속도가 전반적으로 더 빠릅니다. 가장 좋은 방법은 아래의 각 접근 방법에 대해 마이그레이션을 수행하기 전에 먼저 Amazon DocumentDB에서 인덱스를 생성하는 것입니다. 이렇게 하려면 Amazon DocumentDB 인덱스 도구를 사용하면 됩니다.

오프라인

오프라인 접근 방식은 mongodumpmongorestore 도구를 사용하여 소스 MongoDB 배포에서 Amazon DocumentDB 클러스터로 데이터를 마이그레이션할 수 있습니다. 오프라인은 가장 간편한 마이그레이션 접근 방식이지만 클러스터에 대해 가장 많은 다운타임이 발생합니다.

오프라인 마이그레이션에 대한 기본 프로세스는 다음과 같습니다.

  1. MongoDB 소스에 대한 쓰기를 중단합니다.

  2. 소스 MongoDB 배포에서 컬렉션 데이터 및 인덱스를 덤프합니다.

  3. Elastic Cluster로 마이그레이션하는 경우 명령을 사용하여 샤딩된 컬렉션을 생성하세요. sh.shardCollection() 인스턴스 기반 클러스터로 마이그레이션하는 경우 다음 단계로 건너뛰세요.

  4. Amazon DocumentDB 클러스터에 인덱스를 복원합니다.

  5. 컬렉션 데이터를 Amazon DocumentDB 클러스터로 복원합니다.

  6. Amazon DocumentDB 클러스터에 쓰도록 애플리케이션 엔드포인트를 변경합니다.


               다이어그램: Amazon DocumentDB로 마이그레이션하기 위한 오프라인 접근 방식

온라인

온라인 접근 방식은 AWS Database Migration Service (AWS DMS)를 사용합니다. 소스 MongoDB 배포에서 Amazon DocumentDB 클러스터로 전체 데이터 로드를 수행합니다. 그런 다음 변경 데이터 캡처(CDC) 모드로 전환하여 변경 사항을 복제합니다. 온라인 접근 방식은 클러스터 가동 중단을 최소화하지만 세 가지 방법 중 가장 느립니다.

온라인 마이그레이션에 대한 기본 프로세스는 다음과 같습니다.

  1. 애플리케이션은 일반적으로 소스 DB를 사용합니다.

  2. Elastic 클러스터로 마이그레이션하는 경우 명령을 사용하여 샤딩된 컬렉션을 생성하십시오. sh.shardCollection() 인스턴스 기반 클러스터로 마이그레이션하는 경우 다음 단계로 건너뛰세요.

  3. Amazon DocumentDB 클러스터에서 인덱스를 미리 생성합니다.

  4. 전체 로드를 수행하는 AWS DMS 작업을 생성한 다음 원본 MongoDB 배포에서 Amazon DocumentDB 클러스터로 CDC를 활성화합니다.

  5. AWS DMS 작업이 전체 로드를 완료하고 Amazon DocumentDB에 변경 내용을 복제하고 나면 애플리케이션의 엔드포인트를 Amazon DocumentDB 클러스터로 전환합니다.


               다이어그램: Amazon DocumentDB로 마이그레이션하기 위한 온라인 접근 방식

마이그레이션에 사용하는 AWS DMS 방법에 대한 자세한 내용은 Amazon DocumentDB를 AWS Database Migration Service대상으로 사용하기 및 사용 설명서의 관련 자습서를 참조하십시오.AWS Database Migration Service

하이브리드

하이브리드 접근 방식은 mongodumpmongorestore 도구를 사용하여 소스 MongoDB 배포에서 Amazon DocumentDB 클러스터로 데이터를 마이그레이션할 수 있습니다. 그런 다음 CDC AWS DMS 모드에서 사용하여 변경 내용을 복제합니다. 하이브리드 접근 방식은 마이그레이션 속도와 다운타임의 균형을 맞추지만, 세 가지 접근 방식 중 가장 복잡합니다.

하이브리드 마이그레이션에 대한 기본 프로세스는 다음과 같습니다.

  1. 애플리케이션은 일반적으로 소스 MongoDB DB 배포를 사용합니다.

  2. 소스 MongoDB 배포에서 컬렉션 데이터 및 인덱스를 덤프합니다.

  3. Amazon DocumentDB 클러스터에 인덱스를 복원합니다.

  4. Elastic 클러스터로 마이그레이션하는 경우 명령을 사용하여 샤딩된 컬렉션을 생성하십시오. sh.shardCollection() 인스턴스 기반 클러스터로 마이그레이션하는 경우 다음 단계로 건너뛰세요.

  5. 컬렉션 데이터를 Amazon DocumentDB 클러스터로 복원합니다.

  6. 소스 MongoDB 배포에서 Amazon DocumentDB 클러스터로 CDC를 활성화하는 AWS DMS 작업을 생성합니다.

  7. AWS DMS 작업이 허용 범위 내에 변경 내용을 복제하는 경우 Amazon DocumentDB 클러스터에 쓰도록 애플리케이션 엔드포인트를 변경합니다.


               다이어그램: Amazon DocumentDB로 마이그레이션하는 하이브리드 접근 방식
중요

현재 AWS DMS 작업은 단일 데이터베이스만 마이그레이션할 수 있습니다. MongoDB 원본에 데이터베이스가 매우 많을 경우 마이그레이션 작업 생성을 자동화하거나 오프라인 방법의 사용을 고려해야 합니다.

어떤 마이그레이션 방법을 선택하든 데이터를 마이그레이션하기 전에 Amazon DocumentDB 클러스터에서 인덱스를 미리 생성하는 것이 가장 효율적입니다. 왜냐하면 Amazon DocumentDB 인덱스는 병렬로 삽입되는 데이터이지만, 기존 데이터에 대한 인덱스 생성은 단일 스레드 작업이기 때문입니다.

인덱스를 마이그레이션하지 AWS DMS 않으므로 (데이터만), 인덱스를 다시 생성하지 않아도 되는 추가 단계는 없습니다.

마이그레이션 원본

MongoDB 원본이 독립 실행형 mongo 프로세스일 때 온라인 또는 하이브리드 마이그레이션 접근 방식을 사용하려는 경우 먼저 CDC 원본으로 사용할 oplog가 생성되도록 독립 실행형 mongo를 복제본 집합으로 변환합니다.

MongoDB 복제본 집합 또는 샤드 있는 클러스터로부터 마이그레이션하는 경우 각 복제본 집합 또는 샤드에 대해 마이그레이션 원본으로 사용할 묶이거나 숨겨진 보조 복제본 집합 또는 샤드를 생성할 것을 고려하십시오. 데이터 덤프를 수행할 경우 작업 집합 데이터가 메모리를 벗어나게 되어 프로덕션 인스턴스에서의 성능에 악영향을 미칠 수 있습니다. 프로덕션 데이터를 처리하지 않는 노드로부터 마이그레이션함으로써 이 위험을 완화할 수 있습니다.

마이그레이션 원본 버전

소스 MongoDB 데이터베이스 버전이 대상 Amazon DocumentDB 클러스터의 호환성 버전과 다른 경우, 성공적인 마이그레이션을 위해 다른 준비 단계를 수행해야 할 수 있습니다. 가장 일반적인 두 가지 요구 사항은 소스 MongoDB 설치를 마이그레이션을 위해 지원되는 버전(MongoDB 버전 3.0 이상)으로 업그레이드해야 하는 것과 대상 Amazon DocumentDB 버전을 지원하도록 애플리케이션 드라이버를 업그레이드해야 하는 것입니다.

마이그레이션에 이러한 요구 사항이 있을 경우 마이그레이션 계획에 이러한 단계를 포함시켜 드라이버 변경 사항을 업그레이드 및 테스트하도록 하십시오.

마이그레이션 연결

데이터 센터에서 실행 중인 소스 MongoDB 배포 또는 Amazon EC2 인스턴스에서 실행 중인 MongoDB 배포에서 Amazon DocumentDB로 마이그레이션할 수 있습니다. EC2에서 실행되는 MongoDB로부터 마이그레이션은 간단하며 보안 그룹 및 서브넷만 올바로 설정하면 됩니다.


            다이어그램: 아마존 EC2 소스에서 아마존 DocumentDB로 마이그레이션

온프레미스 데이터베이스로부터 마이그레이션하려면 MongoDB 배포와 가상 사설 클라우드(VPC) 간 연결이 필요합니다. 가상 사설망 (VPN) 연결을 통해 또는 서비스를 사용하여 이 작업을 수행할 수 있습니다. AWS Direct Connect 인터넷을 통해 VPC로 마이그레이션할 수 있지만, 이 연결 방법은 보안 측면에서 가장 바람직하지 않습니다.

다음 다이어그램은 VPN 연결을 통해 온프레미스 소스에서 Amazon DocumentDB로 마이그레이션하는 것을 보여줍니다.


            다이어그램: 온프레미스 소스 (VPN) 에서 Amazon DocumentDB로 마이그레이션

다음은 AWS Direct Connect을 사용한 온프레미스 소스에서 Amazon DocumentDB로의 마이그레이션입니다.


            다이어그램: 온프레미스 소스에서 Amazon DocumentDB로 마이그레이션 ()AWS Direct Connect

온라인 및 하이브리드 마이그레이션 접근 방식을 사용하려면 Amazon VPC의 Amazon EC2에서 실행해야 하는 AWS DMS 인스턴스를 사용해야 합니다. 모든 접근 방식에서 마이그레이션 서버가 mongodumpmongorestore를 실행해야 합니다. Amazon DocumentDB 클러스터에 대한 연결이 크게 단순화되므로 Amazon DocumentDB 클러스터가 시작된 VPC의 Amazon EC2 인스턴스에서 마이그레이션 서버를 실행하는 것이 일반적으로 더 쉽습니다.

테스트

다음은 마이그레이션 전 테스트의 목표입니다.

  • 선택한 접근 방식이 원하는 마이그레이션 결과를 달성하는지 확인합니다.

  • 인스턴스 유형 및 읽기 기본 설정 선택이 애플리케이션 성능 요구 사항을 충족하는지 확인합니다.

  • 장애 조치 시 애플리케이션 동작을 확인합니다.

마이그레이션 계획 테스트 고려 사항

Amazon DocumentDB 마이그레이션 계획을 테스트할 때는 다음 사항을 고려하십시오.

인덱스 복원

기본적으로 mongorestore가 덤프된 모음의 인덱스를 생성하지만, 데이터가 복원된 이후에 생성합니다. 데이터를 클러스터로 복원하기 전에 Amazon DocumentDB에서 인덱스를 생성하는 것이 전반적으로 더 빠릅니다. 이는 데이터 로드 도중 인덱싱 작업이 병행되기 때문입니다.

인덱스를 사전 생성하기로 선택한 경우 -–noIndexRestore 옵션을 지정하면 mongorestore을 사용하여 데이터를 복원할 때 인덱스 생성 단계를 건너뛸 수 있습니다.

데이터 덤핑

mongodump 도구는 원본 MongoDB 배포에서 데이터를 덤핑하는 기본 방법입니다. 마이그레이션 인스턴스에서 사용 가능한 리소스에 따라 –-numParallelCollections 옵션을 사용하여 덤핑되는 병렬 연결 수를 기본 4개에서 더 늘려 mongodump 속도를 높일 수 있습니다.

데이터 복구

mongorestore 도구는 덤프된 데이터를 Amazon DocumentDB 인스턴스에 복원하는 데 선호되는 방법입니다. 복원 시 -–numInsertionWorkersPerCollection 옵션을 사용하여 각 모음의 작업자 수를 늘려 복원 성능을 개선할 수 있습니다. Amazon DocumentDB 클러스터 기본 인스턴스의 vCPU당 작업자 한 명부터 시작하는 것이 좋습니다.

Amazon DocumentDB는 현재 mongorestore 도구의 --oplogReplay 옵션을 지원하지 않습니다.

기본적으로 mongorestore는 삽입 오류를 건너뛰고 복원 프로세스를 계속합니다. 이 오류는 지원하지 않는 데이터를 Amazon DocumentDB 인스턴스로 복원할 경우 발생할 수 있습니다. 예를 들어 null 문자열이 있는 키 또는 값을 포함하는 문서가 있을 경우 이런 현상이 생길 수 있습니다. 어떤 복원 오류가 발생하더라도 mongorestore 작업이 완전히 실패하도록 하려면 --stopOnError 옵션을 사용하십시오.

Oplog 크기 설정

MongoDB 작업 로그(oplog)는 데이터베이스에 대한 모든 데이터 수정을 포함하는 제한 모음입니다. 복제본 집합 또는 샤드 번호에서 db.printReplicationInfo() 작업을 실행하여 포함된 oplog의 크기 및 시간 범위를 확인할 수 있습니다.

온라인 또는 하이브리드 접근 방식을 사용하는 경우, 각 복제 세트 또는 샤드의 oplog가 전체 데이터 마이그레이션 프로세스 (전체 로드를 통해서든 AWS DMS 작업 전체 로드를 mongodump 통해서든) 동안 이루어진 모든 변경 사항과 적절한 버퍼를 포함할 수 있을 만큼 충분히 커야 합니다. 자세한 내용은 MongoDB 설명서의 Oplog 크기 확인 단원을 참조하십시오. mongodump 또는 mongorestore 프로세스 또는 AWS DMS 전체 로드 작업의 첫 번째 테스트 실행에 소요된 시간을 기록하여 필요한 최소 oplog 크기를 결정합니다.

AWS Database Migration Service 구성

AWS Database Migration Service 사용 설명서에서는 MongoDB 소스 데이터를 Amazon DocumentDB 클러스터로 마이그레이션하는 데 필요한 구성 요소 및 단계를 다룹니다. 다음은 온라인 또는 하이브리드 마이그레이션을 수행하는 AWS DMS 데 사용하는 기본 프로세스입니다.

다음을 사용하여 마이그레이션을 수행하려면 AWS DMS
  1. MongoDB 원본 엔드포인트를 생성합니다. 자세한 내용은 AWS DMS에서 MongoDB를 원본으로 사용 단원을 참조하십시오.

  2. Amazon DocumentDB 대상 엔드포인트를 생성합니다. 자세한 내용은 AWS DMS 엔드포인트를 사용한 작업 단원을 참조하십시오.

    대상 엔드포인트를 엘라스틱 클러스터로 구성하는 경우 기존 Amazon DocumentDB SSL 인증서는 엘라스틱 클러스터에서 작동하지 않으므로 다음 단계를 사용하여 엔드포인트에 새 SSL 인증서를 연결해야 합니다.

    a. https://www.amazontrust.com/repository/SFSRootCAG2.pem을 방문하여 콘텐츠를 “SFSrootCag2.pem” 파일로 저장하십시오. 이 파일은 이후 단계에서 가져올 인증서 파일입니다.

    b. 엘라스틱 클러스터 엔드포인트를 생성할 때 엔드포인트 구성에서 새 CA 인증서 추가를 선택합니다.

    • 인증서 식별자SFSRootCAG2.pem을 입력합니다.

    • 인증서 파일 가져오기에서 파일 선택을 선택하고 이전에 다운로드한 SFSRootCAG2.pem 파일로 이동합니다. 파일을 선택하고 엽니다. 인증서 가져오기를 선택한 다음 인증서 선택 SFSRootCAG2.pem 드롭다운에서 선택합니다.

  3. AWS DMS 복제 인스턴스를 하나 이상 생성하십시오. 자세한 내용은 AWS DMS 복제 인스턴스 작업을 참조하십시오.

  4. AWS DMS 복제 작업을 하나 이상 생성하십시오. 자세한 내용은 AWS DMS 작업을 사용한 작업 단원을 참조하십시오.

    온라인 마이그레이션의 경우 마이그레이션 작업이 기존 데이터의 마이그레이션 및 지속적인 변경 복제 마이그레이션 유형을 사용합니다.

    하이브리드 마이그레이션의 경우 마이그레이션 작업이 데이터 변경 사항만 복제 마이그레이션 유형을 사용합니다. mongodump 작업의 덤프 시간에 맞춰 CDC 시작 시간을 선택할 수 있습니다. MongoDB oplog는 멱동성(idempotent)을 갖습니다. 변경 사항 누락을 방지하려면 mongodump 종료 시간과 CDC 시작 시간을 몇 분 동안 중첩시키는 것이 좋습니다.

샤드 있는 클러스터로부터 마이그레이션

MongoDB 공유 클러스터에서 Amazon DocumentDB 인스턴스로 데이터를 마이그레이션하는 프로세스는 기본적으로 여러 복제본 세트 마이그레이션을 병렬로 수행하는 프로세스입니다. 샤드 있는 클러스터 마이그레이션을 테스트할 때 중요한 고려 사항은 일부 샤드가 다른 샤드보다 빈번히 사용된다는 것입니다. 이러한 상황 때문에 데이터 마이그레이션 소요 시간이 달라집니다. 계획 및 테스트 시 각 샤드의 oplog 요구 사항을 평가해야 합니다.

다음은 샤드 있는 클러스터를 마이그레이션할 때 고려할 몇 가지 구성 문제입니다.

  • mongodump를 실행하거나 AWS DMS 마이그레이션 작업을 시작하기 전에 샤드 있는 클러스터 밸런서를 비활성화하고 프로세스 내 마이그레이션이 모두 완료될 때까지 기다려야 합니다. 자세한 내용은 MongoDB 설명서의 밸런서 비활성화 단원을 참조하십시오.

  • 를 사용하여 AWS DMS 데이터를 복제하는 경우 마이그레이션 작업을 실행하기 전에 각 샤드에서 cleanupOrphaned 명령을 실행하십시오. 이 명령을 실행하지 않을 경우 작업이 중복 문서 ID 때문에 실패할 수 있습니다. 이 명령은 성능에 영향을 미칠 수 있습니다. 자세한 내용은 MongoDB 설명서에서cleanupOrphaned를 참조하십시오.

  • mongodump 도구를 사용하여 데이터를 덤핑하는 경우 샤드당 1개의 mongodump 프로세스를 실행해야 합니다. 가장 시간 효율적인 접근 방식은 여러 마이그레이션 서버를 사용하여 덤프 성능을 극대화하는 것입니다.

  • 를 사용하여 데이터를 AWS Database Migration Service 복제하는 경우 각 샤드에 대해 원본 엔드포인트를 생성해야 합니다. 또한 마이그레이션하는 각 샤드에 대해 하나 이상의 마이그레이션 작업을 실행합니다. 가장 시간 효율적인 접근 방식은 여러 복제 인스턴스를 사용하여 마이그레이션 성능을 극대화하는 것입니다.

성능 테스트

성공적으로 데이터를 테스트 Amazon DocumentDB 클러스터로 마이그레이션했으면 클러스터에 대해 테스트 워크로드를 실행합니다. Amazon CloudWatch 지표를 통해 성능이 MongoDB 소스 배포의 현재 처리량을 충족하거나 초과하는지 확인하십시오.

다음과 같은 주요 Amazon DocumentDB 지표를 확인하십시오.

  • 네트워크 처리량

  • 쓰기 처리량

  • 읽기 처리량

  • 복제본 지연 시간

자세한 정보는 Amazon DocumentDB 모니터링을 참조하세요.

장애 조치 테스트

Amazon DocumentDB 장애 조치 이벤트 중 애플리케이션의 동작이 사용자의 가용성 요구 사항을 충족하는지 확인합니다. 콘솔에서 Amazon DocumentDB 클러스터의 수동 장애 조치를 시작하려면 클러스터 페이지의 작업 메뉴에서 장애 조치 작업을 선택합니다.

또한 AWS CLI에서 failover-db-cluster 작업을 실행하여 장애 조치를 시작할 수도 있습니다. 자세한 내용은 failover-db-cluster참조의 Amazon DocumentDB 섹션을 참조하십시오. AWS CLI

추가 리소스

AWS Database Migration Service 사용 설명서의 다음 항목을 참조하십시오.