Atlas Live Migration을 사용하여 MongoDB에서 MongoDB Atlas로 마이그레이션

Last reviewed 2023-03-01 UTC

이 가이드에서는 MongoDB의 Atlas Live Migration Service(Atlas Live Migration)를 사용하여 데이터베이스를 포함하는 자체 관리형 MongoDB 복제본 세트에서 MongoDB Atlas의 완전 관리형 클러스터로의 마이그레이션을 설명하고 구현합니다.

이 가이드는 완전히 호스팅되는 MongoDB 서비스에 관심이 있거나 MongoDB 복제본 세트의 MongoDB 데이터베이스를 MongoDB Atlas 클러스터로의 마이그레이션을 처리하는 데이터베이스 설계자, 데이터베이스 관리자, 데이터베이스 엔지니어를 대상으로 합니다.

목표

  • 문서를 만들고 샘플 MongoDB 복제본 세트에 로드하여 자체 관리형 소스를 구성합니다.
  • MongoDB Atlas에서 마이그레이션 대상 클러스터를 구성합니다.
  • Atlas Live Migration을 사용하여 자체 관리형 MongoDB 복제본 세트의 데이터베이스를 완전 관리형 MongoDB Atlas 클러스터로 마이그레이션합니다.
  • 테스트, 컷오버, 대체 전략을 이해하고 선택합니다.

이 가이드에서는 MongoDB 복제본 세트를 소스로 사용합니다. 샤딩된 MongoDB 클러스터를 MongoDB Atlas로 마이그레이션하는 방법은 이 가이드에서 다루지 않습니다. MongoDB 복제본 세트와 샤딩된 MongoDB 클러스터 간의 아키텍처 차이점은 Stack Exchange: 데이터베이스 관리자 게시물에서 설명합니다.

이 가이드에서는 마이그레이션을 완료하기 위해 Atlas mongomirror 유틸리티가 아닌 Atlas Live Migration을 사용합니다. mongomirror 유틸리티를 사용하려면 소스 MongoDB 환경에 에이전트를 설치해야 하며 이 유틸리티는 더 낮은 수준의 추상화에서 작동합니다.

이 가이드의 마이그레이션 설정은 복사 시맨틱스 기능이 있는 동종 마이그레이션입니다. 마이그레이션 중에는 데이터가 변환되지 않으며 데이터베이스 통합이나 데이터 재샤딩은 발생하지 않습니다. Striim과 같은 통합 기술을 사용하면 복사 시맨틱스 이외의 기능을 구현할 수 있습니다.

이 가이드의 마이그레이션은 소스 MongoDB 복제본 세트에서 대상 MongoDB Atlas 클러스터로의 단방향 마이그레이션입니다. 소스 MongoDB 복제본 세트에서 대상 클러스터로의 컷오버가 완료된 후에는 소스 데이터베이스가 대상 클러스터의 변경사항으로 업데이트되지 않습니다. 따라서 프로덕션 환경에서 이 솔루션을 구현하면 애플리케이션을 대체한 최신 소스 데이터베이스로 전환할 수 없습니다. 대체 프로세스에 대한 자세한 내용은 데이터베이스 마이그레이션: 개념 및 원칙(2부)을 참조하세요.

마이그레이션 아키텍처

다음 다이어그램은 이 가이드에서 만든 배포 아키텍처를 보여줍니다.

Compute Engine의 MongoDB 서버 및 기본에서 MongoDB Atlas로의 마이그레이션 경로

화살표는 Compute Engine에서 실행되는 소스 MongoDB 복제본 세트에서 Google Cloud의 MongoDB Atlas에서 실행되는 대상 클러스터로의 데이터 마이그레이션 경로를 나타냅니다.

배포 아키텍처에는 다음 구성요소가 포함됩니다.

  • 소스 데이터베이스: Compute Engine 인스턴스 3개에서 실행되는 자체 관리형 MongoDB 복제본 세트
  • 대상 데이터베이스: 완전 관리형 MongoDB Atlas 클러스터
  • 마이그레이션 서비스: 데이터를 소스에서 대상으로 마이그레이션하기 위한 Atlas Live Migration 구성

이 가이드에서는 Compute Engine 인스턴스의 자체 관리형 MongoDB 복제본 세트를 사용하지만 온프레미스 데이터 센터 또는 다른 클라우드 환경의 소스 MongoDB 복제본 세트를 배포할 수도 있습니다.

Atlas Live Migration은 다운타임 없는 데이터베이스 마이그레이션 접근 방식을 지원합니다. 소스 MongoDB 복제본 세트에서 마이그레이션하는 동안 애플리케이션은 아무런 영향 없이 소스 데이터베이스에 계속 액세스할 수 있습니다. 초기 로드가 완료되면 Atlas Live Migration은 마이그레이션 시작 후에 변경사항을 마이그레이션합니다.

초기 데이터 세트가 마이그레이션된 후 소스 데이터베이스에서 대상 클러스터로 컷오버를 수행하려면 다음 단계를 따르세요.

  1. 소스 데이터베이스에 대한 쓰기 액세스를 정지합니다.
  2. Atlas Live Migration이 나머지 변경사항을 캡처하고 대상 데이터베이스에 적용할 때까지 기다립니다.
  3. Atlas Live Migration에서 컷오버를 실행합니다.
  4. 소스 데이터베이스를 중지합니다.

모든 데이터가 마이그레이션되면 Atlas Live Migration은 사용자 인터페이스의 진행 상태 표시줄에 알림을 표시합니다. 이 시점에서는 데이터 마이그레이션이 완료되고 애플리케이션 시스템이 대상 클러스터를 새 레코드 시스템으로 액세스할 수 있습니다.

비용

이 튜토리얼에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

이 튜토리얼에서는 MongoDB Atlas 무료 등급을 사용할 수 없습니다. 무료 등급에서 사용 가능한 머신 유형은 Atlas Live Migration을 지원하지 않습니다. MongoDB Atlas에서는 최소 필요 머신 유형(이 문서 작성 현재 M10)의 시간당 서비스 비용이 발생합니다. 예상 가격을 책정하려면 MongoDB Atlas 가격 책정으로 이동하여 Google Cloud Platform을 클릭한 후 안내를 따르세요. 프로덕션 환경에서 이 마이그레이션을 구현하려면 MongoDB Atlas의 일반 호스팅 버전을 사용하는 것이 좋습니다.

이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.

시작하기 전에

  1. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  2. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

자체 관리형 MongoDB 복제본 세트 만들기

먼저 Google Cloud에 MongoDB 복제본 세트를 설치합니다. 이 데이터베이스는 소스 데이터베이스 역할을 합니다. 이제 소스 데이터베이스가 모든 필수 사전 조건을 충족하는지 확인합니다.

사전 조건 확인을 완료한 후에는 인증을 사용 설정하고 소스 MongoDB 인스턴스를 다시 시작해야 합니다. 마지막으로 마이그레이션을 테스트하려면 대상 데이터베이스로 마이그레이션된 소스 MongoDB 인스턴스에 샘플 데이터 세트를 추가합니다.

MongoDB 복제본 세트 설치

  1. Google Cloud Marketplace에서 Compute Engine의 MongoDB 복제본 세트 설치로 이동합니다. 이 문서를 작성 중인 현재 버전은 MongoDB 4.0입니다.

    Cloud Marketplace의 MongoDB로 이동

  2. 실행을 클릭합니다. 여러 Google Cloud APIs가 사용 설정되어 있으므로 실행 프로세스에 다소 시간이 걸릴 수 있습니다.

    여러 프로젝트에 대한 권한이 있는 경우 프로젝트 목록이 표시됩니다. MongoDB를 설치할 프로젝트를 선택합니다.

    MongoDB 복제본 세트는 Deployment Manager 템플릿에 따라 Compute Engine 인스턴스 세트에 배포됩니다.

  3. 모든 기본 구성 설정을 적용합니다.

  4. 배포를 클릭합니다.

  5. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  6. ssh를 사용하여 MongoDB 기본 복제본을 실행하는 Compute Engine 인스턴스에 로그인합니다.

    gcloud compute ssh MONGODB_VM_NAME --project PROJECT_ID --zone ZONE_OF_VM
    

    다음을 바꿉니다.

    • MONGODB_VM_NAME: MongoDB 복제본 세트의 기본 복제본 이름
    • PROJECT_ID: Google Cloud 프로젝트 ID 이름
    • ZONE_OF_VM: 가상 머신(VM) 인스턴스가 있는 영역

      자세한 내용은 위치 및 리전을 참조하세요.

    SSH 키가 생성될 때 시스템에서 암호를 요청합니다. 암호를 제공하지 않으려면 Enter를 누릅니다. 암호를 제공하는 경우 나중에 참조할 수 있도록 기록해 두세요.

    Cloud Shell을 사용하여 연결할 수 없는 경우 Deployment Manager에서 서버 계층 VM에 SSH를 통해 연결을 클릭합니다.

  7. mongo을 실행합니다.

    mongo
    
  8. 기존 데이터베이스를 나열합니다.

    show dbs
    

    출력은 다음과 비슷합니다.

    admin   0.000GB
    config  0.000GB
    local   0.000GB
    

    이후 명령어를 위해 mongo 셸을 열어 둡니다.

MongoDB 복제본 세트를 만들고 액세스한 후 작동하는지 확인했습니다.

소스 데이터베이스의 사전 조건 확인

Atlas Live Migration을 사용하려면 소스 MongoDB 복제본 세트가 특정 구성 기준 또는 사전 조건을 충족해야 합니다. 확인 방법은 Atlas 마이그레이션 개요Atlas 문서에 설명되어 있습니다. 다음 명령어는 이러한 리소스에서 파생됩니다. 이러한 사전 조건을 확인하고 필요한 사항을 변경한 후에는 소스 데이터베이스에 추가 구성을 적용한 후 다시 시작해야 합니다.

모든 사전 조건이 충족되었는지 확인하려면 다음을 수행하세요.

  1. mongo 셸에서 MongoDB 버전이 2.6 이상인지 확인합니다. 프로덕션 데이터베이스 인스턴스에서 mongo 셸을 열고 SSH 연결을 사용하여 MongoDB 서버에 연결한 다음, 아래 명령어를 실행하여 버전을 확인합니다.

    db.version()
    

    출력에 버전이 표시됩니다. 버전이 2.6 이전인 경우 업그레이드 안내를 따라야 합니다.

  2. 현재 배포가 MongoDB 복제본 세트인지 확인합니다.

    rs.status()
    

    출력은 MongoDB 복제본 세트의 상태입니다. 다음 출력은 MongoDB 복제본 세트가 사용 설정되지 않은 상태로 MongoDB 인스턴스가 시작되었음을 보여줍니다.

    {
        "ok" : 0,
        "errmsg" : "not running with --replSet",
        "code" : 76,
        "codeName" : "NoReplicationEnabled"
    }
    

    이 경우 MongoDB 인스턴스를 중지했다가 MongoDB 복제본이 설정된 상태로 다시 시작합니다. MongoDB의 독립형 인스턴스가 있다면 MongoDB 복제본 세트로 MongoDB 인스턴스를 업그레이드하세요.

  3. 로그인하여 소스 클러스터에 인증이 사용 설정되어 있는지 확인합니다.

    mongo -u YOUR_ADMIN_USERNAME -p --authenticationDatabase admin
    

    다음을 바꿉니다.

    • YOUR_ADMIN_USERNAME: 배포의 관리자 이름

    앞에서 만든 MongoDB 복제본 세트에는 인증이 사용 설정되지 않았습니다.

    인증이 사용 설정되어 있지 않으면 인증 사용 설정 안내를 따라야 합니다. 다음은 사용자 이름 및 비밀번호의 예시로 인증을 사용 설정하는 명령어 예시입니다.

    use admin
    db.createUser(
      {
        user: "myUserAdmin",
        pwd: "myUserAdminPassword",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase", "clusterMonitor" ]
      }
    )
    

    인증이 사용 설정된 후 rs.status()를 실행하려면 MongoDB 역할 clusterMonitor가 필요합니다. 앞의 명령어는 이 역할을 지정합니다.

  4. 관리자에게 MongoDB 복제본 세트의 버전에 적합한 역할이 할당되었는지 확인합니다. 특정 버전에 해당하는 역할 목록은 Atlas Live Migration 문서에서 소스 클러스터 보안에 대한 설명을 참조하세요

    use admin
    db.getUser("YOUR_ADMIN_USERNAME")
    

    사용자 이름은 따옴표로 묶어야 합니다.

  5. (선택 사항) MongoDB 배포가 4.2 이전 버전을 기반으로 하는 경우 1,024바이트 색인 키 제한을 초과하는 키의 색인이 포함됩니다. 이 경우 Atlas Live Migration 절차를 시작하기 전에 MongoDB 서버 매개변수 failIndexKeyTooLong를 false로 설정합니다.

인증 사용 설정 및 MongoDB 복제본 세트 다시 시작

인증을 사용 설정하려면 관리자를 만드는 것 외에 키 파일이 필요합니다. 다음 단계에서는 키 파일을 수동으로 만드는 방법을 보여줍니다. 프로덕션 환경에서는 스크립트를 사용하여 프로세스를 자동화할 수 있습니다.

  1. Cloud Shell에서 키 파일을 만듭니다.

    openssl rand -base64 756 > PATH_TO_KEY_FILE
    

    다음을 바꿉니다.

    • PATH_TO_KEY_FILE: SSH 키가 저장된 위치(예: /etc/mongo-key)
  2. 3개의 VM 각각에 대해 승인을 사용 설정합니다.

    1. 키 파일을 VM에 복사합니다.

      gcloud compute copy-files PATH_TO_KEY_FILE NAME_OF_THE_VM:PATH_TO_KEY_FILE --zone=ZONE_OF_VM
      

      다음을 바꿉니다.

      • NAME_OF_THE_VM: 복제본 세트의 복제본을 실행하는 VM 중 하나의 이름
      • ZONE_OF_VM: NAME_OF_THE_VM에서 참조되는 VM이 있는 Google Cloud 영역
    2. ssh를 사용하여 VM에 로그인하고 소유자와 키 파일의 액세스 권한을 변경합니다.

      sudo chown mongodb:mongodb PATH_TO_KEY_FILE
      
      sudo chmod 400 PATH_TO_KEY_FILE
      
    3. 선호하는 텍스트 편집기에서 수정 모드로 mongod.conf 파일을 엽니다. 변경사항을 다시 작성하려면 sudo 명령어를 사용하여 텍스트 편집기를 시작해야 할 수 있습니다.

    4. 다음과 같이 security 섹션을 수정합니다.

      security:
        authorization: enabled
        keyFile: PATH_TO_KEY_FILE
      
    5. 복제본을 다시 시작합니다.

      sudo service mongod restart
      
  3. MongoDB 복제본 세트의 기본 복제본에 로그인할 수 있는지 확인합니다.

    mongo -u YOUR_ADMIN_USERNAME -p --authenticationDatabase admin
    

샘플 데이터 삽입

다음 단계에서는 샘플 데이터를 소스 데이터베이스에 삽입한 후 문서가 성공적으로 삽입되었는지 확인합니다.

  1. Cloud Shell에서 ssh를 사용하여 MongoDB 기본 Compute Engine 인스턴스에 연결합니다.

    gcloud compute ssh MONGODB_VM_NAME --project PROJECT_ID --zone ZONE_OF_VM
    

    SSH 키의 암호를 제공해야 할 수도 있습니다.

  2. mongo 셸을 시작합니다.

    mongo -u YOUR_ADMIN_USERNAME -p --authenticationDatabase admin
    

    관리자의 사용자 이름을 만들 때 지정한 비밀번호를 입력합니다.

  3. 데이터베이스를 만듭니다.

    use migration
    
  4. 컬렉션을 만듭니다.

    db.createCollection("source")
    
  5. 컬렉션이 비어 있는지 확인합니다.

    db.source.count()
    
  6. 다음 문서 5개를 초기 데이터 세트로 추가합니다.

    db.source.insert({"document_number": 1})
    db.source.insert({"document_number": 2})
    db.source.insert({"document_number": 3})
    db.source.insert({"document_number": 4})
    db.source.insert({"document_number": 5})
    

    각 명령어의 출력은 다음과 비슷합니다.

    WriteResult({ "nInserted" : 1 })
    
  7. 문서 5개가 컬렉션 마이그레이션에 추가되었는지 확인합니다. 결과는 5여야 합니다.

    db.source.count()
    

데이터베이스 마이그레이션이 설정되고 시작된 후에는 이 문서가 MongoDB Atlas의 대상 클러스터로 마이그레이션됩니다.

MongoDB Atlas에서 클러스터 만들기

MongoDB 복제본 세트는 MongoDB Atlas에서 클러스터라고 합니다. 대상 데이터베이스로 설정된 클러스터가 없으면 이 섹션의 단계를 따르세요. 이 단계는 MongoDB 문서를 기반으로 합니다. 클러스터를 대상 데이터베이스로 이미 설정한 경우 이 섹션을 건너뛸 수 있습니다.

  1. Cloud Marketplace에서 MongoDB Atlas - 무료 등급 설치 페이지로 이동합니다.

    Marketplace에서 MongoDB Atlas로 이동

  2. Visit MongoDB Site to Sign Up(MongoDB 사이트를 방문하여 가입)을 클릭합니다.

  3. Launch your first cluster(첫 번째 클러스터 실행)을 클릭합니다.

  4. 필수 정보를 입력하고 Get started free(무료로 시작하기)를 클릭합니다. 제공한 정보를 기록해 둡니다.

  5. Advanced Configuration Options(고급 구성 옵션)를 클릭합니다.

  6. Cloud Provider & Region(클라우드 제공업체 및 리전)에서 Google Cloud PlatformIowa(us-central1)를 선택합니다.

  7. Cluster Tier(클러스터 등급) 탭을 클릭한 다음 M10을 선택합니다.

  8. Additional Settings(추가 설정) 탭을 클릭하고 MongoDB 4.0 또는 MongoDB 4.2를 선택한 다음 백업을 사용 중지합니다.

  9. 클러스터 만들기를 클릭합니다.

    클러스터 만들기가 완료될 때까지 기다립니다. 프로젝트 이름은 Project 0(공백 있음)이고 클러스터 이름은 Cluster0(공백 없음)입니다.

대상 클러스터가 MongoDB Atlas로 설정되고 실행됩니다.

MongoDB Atlas 클러스터의 장애 조치 테스트

마이그레이션이 완료되면 MongoDB Atlas의 클러스터가 순차적으로 다시 시작을 실행합니다. 각 클러스터 구성원은 차례로 다시 시작됩니다. 이 프로세스가 작동하는지 확인하려면 MongoDB 문서의 단계를 따라 장애 조치를 테스트합니다.

라이브 마이그레이션 시작

소스에서 대상 데이터베이스로 데이터를 마이그레이션하려면 다음 단계를 따르세요.

  1. MongoDB Atlas에 로그인합니다.

  2. 클러스터 페이지로 이동한 후 마이그레이션할 클러스터를 선택합니다.

  3. 대상 클러스터(Cluster 0) 창에서 생략 기호 버튼 을 클릭합니다.

  4. Migrate Data to this Cluster(이 클러스터로 데이터 마이그레이션)를 선택합니다.

  5. 창이 열리면 정보를 검토합니다. 마이그레이션할 준비가 되면 I'm ready to migrate(마이그레이션 준비 완료)를 클릭합니다.

    데이터 마이그레이션 안내가 있는 창이 표시됩니다. 나열된 IP 주소는 MongoDB 복제본 세트에 액세스할 수 있어야 합니다. 이러한 주소에 대한 방화벽 규칙을 만들지 않았다면 Cloud Shell을 사용하여 다음 예시 명령어에 따라 방화벽 규칙을 추가합니다.

    gcloud compute firewall-rules create "allow-mongodb-atlas" --allow=tcp:27027 --source-ranges="35.170.231.208/32,3.92.230.111/32,3.94.238.78/32,54.84.208.96/32" --direction=INGRESS
    
  6. Hostname:Port of the primary of your replica set(복제본 세트의 기본 인스턴스 호스트 이름:포트) 필드에 MongoDB 복제본 세트의 기본 인스턴스 IP 주소와 포트를 입력합니다(예: IP_ADDRESS:PORT_FOR_PRIMARY).

    1. 기본 인스턴스를 결정하려면 Google Cloud 프로젝트에서 실행 중인 한 인스턴스의 mongo 셸에서 다음 명령어를 실행합니다.

      rs.isMaster().primary

    2. 해당 외부 IP 주소를 찾으려면 Compute Engine VM 인스턴스 페이지로 이동합니다. 표준 MongoDB 포트는 27017입니다.

  7. MongoDB 복제본 세트의 관리자의 사용자 이름과 비밀번호를 입력합니다.

    다른 설정은 모두 기본값 그대로 둡니다.

  8. 검증을 클릭한 후 다음 중 하나를 수행합니다.

    • 검증에 성공하면 마이그레이션 시작을 클릭합니다.
    • 검증이 성공하지 못하면 제공된 안내를 사용하여 문제를 해결합니다. 예를 들어 MongoDB Atlas를 MongoDB 복제본 세트에 연결할 수 없는 경우 MongoDB Atlas가 연결을 시도하는 IP 주소를 제공합니다. 이러한 주소에 대해 MongoDB 복제본 세트의 서버에서 포트 27017을 통해 TCP 트래픽을 허용하는 방화벽 규칙을 추가합니다.

    MongoDB Atlas 화면에 진행 상황이 표시됩니다. 진행률 표시줄에 초기 동기화가 완료되었습니다라는 메시지가 나타날 때까지 기다립니다.

이제 MongoDB 복제본 세트의 초기 로드가 완료되었습니다. 다음 단계는 초기 로드가 성공했는지 확인하는 것입니다.

초기 마이그레이션이 완료된 후 MongoDB Atlas는 대상 클러스터로 컷오버를 수행해야 하는 시점까지 남은 시간을 추산합니다. MongoDB에서 남은 시간 및 남은 시간을 연장하는 기능과 지정된 시간 내에 최종 컷오버가 수행되지 않으면 마이그레이션이 취소됨을 알리는 이메일을 받을 수도 있습니다.

데이터베이스 마이그레이션 확인

데이터베이스 마이그레이션이 성공했는지 확인하려면 데이터베이스 마이그레이션 확인 전략을 설계하고 구현하는 것이 중요합니다. 특정 확인 전략은 구체적인 사용 사례에 따라 다르지만 다음 확인을 수행하는 것이 좋습니다.

  • 완료 확인. 초기 문서 세트가 소스 데이터베이스에서 성공적으로 마이그레이션되었는지 확인합니다(초기 로드).
  • 동적 확인. 소스 데이터베이스의 변경사항이 대상 데이터베이스로 전송되고 있는지 확인합니다(진행 중인 마이그레이션).

먼저 초기 로드가 성공했는지 확인합니다.

  1. MongoDB Atlas에서 클러스터를 클릭합니다.

  2. 컬렉션을 클릭합니다.

  3. migrations라는 데이터베이스가 있고 source라는 컬렉션에 문서가 5개 있는지 확인합니다.

다음으로 소스 데이터베이스에서 진행 중인 변경사항이 대상 데이터베이스에 반영되는지 확인합니다.

  1. Cloud Shell에서 ssh를 사용하여 소스 MongoDB 복제본 세트의 기본 VM에 로그인합니다.

  2. mongo 셸을 시작합니다. mongo

  3. 다른 문서를 삽입합니다.

    use migration
    db.source.insert({"document_number": 6})
    
  4. 마이그레이션 컬렉션의 MongoDB Atlas 컬렉션 페이지에서 새로고침을 클릭하여 문서 1개가 컬렉션 source에 추가되는지 확인합니다.

소스의 모든 원래 데이터와 진행 중인 변경사항이 Atlas Live Migration에 의해 자동으로 대상으로 마이그레이션된 것을 확인했습니다.

Atlas 대상 클러스터 테스트

프로덕션 환경에서는 테스트가 가장 중요합니다. 대상 데이터베이스에 액세스하는 애플리케이션을 테스트하여 제대로 작동하는지 확인해야 합니다. 이 섹션에서는 몇 가지 테스트 전략을 설명합니다.

마이그레이션 도중 대상 데이터베이스에서 애플리케이션 테스트

이전 섹션에서 설명한 것처럼 데이터베이스 마이그레이션이 진행되는 동안 애플리케이션 테스트를 수행할 수 있습니다. 이 접근 방식은 애플리케이션이 소스 데이터베이스에서 마이그레이션되는 데이터와 충돌하지 않는 방식으로 대상을 변경하는 경우에 효과적입니다. 이러한 접근 방식의 옵션은 환경과 종속 항목에 따라 달라집니다. 테스트 애플리케이션이 대상 데이터베이스에 데이터를 쓰는 경우 진행 중인 마이그레이션과 충돌할 수 있습니다.

임시 대상 데이터베이스에서 애플리케이션 테스트

프로덕션 데이터베이스 마이그레이션 중에 애플리케이션을 테스트할 수 없는 경우 테스트용으로만 사용하는 임시 대상 데이터베이스로 데이터를 마이그레이션한 다음 테스트 마이그레이션 후에 테스트 대상을 삭제할 수 있습니다.

이 방법의 경우 데이터베이스 마이그레이션이 완료된 것처럼 어떤 시점에 테스트 마이그레이션을 중지하고 이 테스트 데이터베이스에 대해 애플리케이션을 테스트합니다. 테스트가 완료되면 대상 데이터베이스를 삭제하고 프로덕션 데이터베이스 마이그레이션을 시작하여 데이터를 영구 대상 데이터베이스로 마이그레이션합니다. 이 전략의 이점은 대상 데이터베이스를 테스트 전용이므로 읽고 쓸 수 있다는 것입니다.

마이그레이션 완료 후 대상 데이터베이스에서 애플리케이션 테스트

처음 두 가지 전략 중 어느 것도 사용할 수 없는 경우 남은 전략은 마이그레이션이 완료된 후 데이터베이스에서 애플리케이션을 테스트하는 것입니다. 모든 데이터가 대상 데이터베이스에 저장되면 사용자에게 제공하기 전에 애플리케이션을 테스트합니다. 테스트에 데이터 쓰기가 포함된 경우 프로덕션 데이터의 불일치가 발생하지 않도록 하려면 프로덕션 데이터가 아닌 테스트 데이터를 쓰는 것이 중요합니다. 테스트가 완료된 후 테스트 데이터를 삭제하여 대상 데이터베이스의 데이터 불일치 또는 방대한 데이터를 방지하세요.

애플리케이션 시스템의 프로덕션 액세스를 허용하기 전에 대상 데이터베이스를 백업하는 것이 좋습니다. 이 단계는 필요한 경우 일관된 시작 지점을 다시 만들 수 있어 도움이 됩니다.

소스 MongoDB 복제본 세트에서 대상 클러스터로 컷오버

테스트를 완료하고 진행 중인 변경사항이 대상 데이터베이스에 반영되는지 확인한 후 컷오버를 계획할 수 있습니다.

먼저 소스 데이터베이스에 대한 변경을 중지하여 Atlas Live Migration이 아직 마이그레이션되지 않은 변경사항을 대상으로 드레이닝할 수 있도록 해야 합니다. 대상의 모든 변경사항이 캡처된 후에는 Atlas Live Migration 컷오버 프로세스를 시작할 수 있습니다. 이 프로세스가 완료되면 클라이언트를 소스에서 대상 데이터베이스로 전환할 수 있습니다.

  1. MongoDB Atlas에서 클러스터를 클릭합니다.

  2. Cluster0 창에서 Prepare to Cutover(컷오버 준비)를 클릭합니다. 컷오버 프로세스 및 대상 클러스터에 대한 연결 문자열의 단계별 설명이 표시됩니다.

  3. Cut over(컷오버)를 클릭합니다.

    마이그레이션이 완료되면 Success! Your cluster migration is complete(성공! 클러스터 마이그레이션이 완료되었습니다)가 표시됩니다.

MongoDB 복제본 세트를 MongoDB Atlas 클러스터로 성공적으로 마이그레이션했습니다.

대체 전략 준비

컷오버가 완료되면 대상 클러스터가 레코드 시스템이 되고, 소스 데이터베이스는 최신이 아니게 되므로 결국 삭제됩니다. 그러나 새 대상 데이터베이스에서 심각한 오류가 발생할 경우 소스 데이터베이스로 돌아가야 할 수 있습니다. 예를 들어 테스트 중에 애플리케이션의 비즈니스 로직이 실행되지 않고 나중에 제대로 작동하지 않으면 오류가 발생할 수 있습니다. 또 다른 오류는 성능 또는 지연 시간 동작이 소스 데이터베이스와 일치하지 않아 오류가 발생하는 경우입니다.

이러한 오류에 대응하려면 원본 소스 데이터베이스를 대상 데이터베이스 변경사항에 따라 최신 상태로 유지해야 할 수 있습니다. Atlas Live Migration은 대체 메커니즘을 제공하지 않습니다. 대체 전략에 대한 자세한 내용은 데이터베이스 마이그레이션: 개념 및 원칙(2부)을 참조하세요.

삭제

Google Cloud 프로젝트 삭제

이 튜토리얼에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 이 튜토리얼에서 만든 Google Cloud 프로젝트를 삭제하면 됩니다.

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

MongoDB Atlas 클러스터 일시중지 또는 종료

MongoDB Atlas 클러스터에 대해 추가 요금이 청구되지 않도록 하려면 클러스터를 일시중지하거나 종료해야 합니다. 결제와 관련된 사항에 대한 자세한 내용은 클러스터 일시중지 또는 종료를 참조하세요.

다음 단계