AWS DMS를 사용하여 Amazon RDS 또는 Aurora MySQL DB 인스턴스로 마이그레이션하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 30일

최소한의 가동 중단과 간소화된 접근 방식을 갖춘 데이터베이스 마이그레이션 전략이 필요합니다. AWS Database Migration Service(AWS DMS)를 사용하여 Amazon Relational Database Service(Amazon RDS) 또는 Amazon Aurora MySQL DB 인스턴스로 마이그레이션하려면 어떻게 해야 합니까?

간략한 설명

참고: 동종 마이그레이션을 수행하는 경우 가능하면 엔진의 기본 도구(예: MySQL 덤프 또는 MySQL 복제 등)를 사용하십시오.

AWS DMS를 사용하여 Amazon RDS 또는 프로비저닝된 Aurora MySQL DB 인스턴스로 마이그레이션하려면 다음을 수행하십시오.

  • 복제 인스턴스 생성
  • 대상 및 소스 엔드포인트 생성
  • 소스 엔드포인트 스키마 새로 고침
  • 마이그레이션 태스크 생성
  • 마이그레이션 태스크 모니터링

​해결 방법

참고: AWS DMS는 테이블 데이터를 마이그레이션하기 전에 필요한 경우 기본 키가 있는 테이블만 대상에 생성합니다. 전체 대상 스키마를 생성하려면 AWS Schema Conversion Tool을 사용하십시오. 자세한 내용은 스키마 변환을 참조하십시오.

(선택 사항) Amazon CloudWatch를 사용한 로깅 활성화

Amazon CloudWatch Logs는 마이그레이션 시 잠재적인 문제에 대한 알림을 제공할 수 있습니다. 자세한 내용은 Amazon CloudWatch를 사용하여 복제 태스크 모니터링을 참조하십시오.

복제 인스턴스 생성

  1. AWS DMS 콘솔을 열고 탐색 창에서 [복제 인스턴스]를 선택합니다.
  2. [복제 인스턴스 생성]를 선택합니다.
  3. 복제 인스턴스 이름, 설명, 인스턴스 클래스, Amazon Virtual Private Cloud(Amazon VPC) 및 다중 AZ 기본 설정을 입력합니다.
    참고: 마이그레이션 워크로드에 충분한 인스턴스 클래스를 선택해야 합니다. 인스턴스가 워크로드에 충분하지 않은 경우 나중에 복제 인스턴스를 수정할 수 있습니다.
  4. [고급] 섹션에서 VPC 보안 그룹을 선택하거나 기본 옵션을 선택합니다.
  5. [복제 인스턴스 생성]를 선택합니다.

대상 및 소스 엔드포인트 생성

  1. AWS DMS 콘솔을 열고 탐색 창에서 [엔드포인트]를 선택합니다.
  2. [엔드포인트 생성]을 선택하여 소스 및 대상 데이터베이스를 생성합니다.
  3. [엔드포인트 유형]에서 [소스]를 선택합니다.
  4. Amazon S3를 소스로 사용하는 경우 서버 이름, 포트, SSL 모드 또는 Amazon Simple Storage Service(Amazon S3) 버킷 이름과 같은 엔드포인트의 엔진 관련 정보를 입력합니다.
  5. [테스트 실행]을 선택합니다.
  6. 테스트가 완료되면 [저장]을 선택합니다.
  7. 3~6단계를 반복하되 [엔드포인트 유형]으로 [대상]을 선택합니다.
    참고: [대상]과 [소스]에 대해 이 단계를 모두 완료해야 합니다.

소스 엔드포인트 스키마 새로 고침

  1. AWS DMS 콘솔을 열고 탐색 창에서 [엔드포인트]를 선택합니다.
  2. 소스 엔드포인트를 선택하고 [스키마 새로 고침]을 선택합니다.
  3. [스키마 새로 고침]을 선택합니다.
    참고: 소스를 새로 고쳐야 AWS DMS 태스크를 생성할 때 소스 스키마가 테이블 매핑에 나타납니다.

마이그레이션 태스크 생성

  1. AWS DMS 콘솔을 열고 탐색 창에서 [데이터베이스 마이그레이션 태스크]를 선택합니다.
  2. [태스크 생성]을 선택합니다.
  3. [태스크 식별자], [복제 인스턴스], [소스 데이터베이스 엔드포인트], [대상 데이터베이스 엔드포인트] 및 [마이그레이션 유형]을 지정합니다. 다음 마이그레이션 유형 중 하나를 선택합니다.
    [기존 데이터만 마이그레이션] – 일회성 마이그레이션의 경우 이 마이그레이션 유형을 사용합니다.
    [기존 데이터를 마이그레이션하고 지속적 변경 사항 복제] – 이 마이그레이션 유형을 사용하면 가동 중지 시간을 최소화하면서 대규모 데이터베이스를 AWS 클라우드로 마이그레이션할 수 있습니다.
    [지속적 복제 변경 사항 마이그레이션] – 기존 데이터를 이미 마이그레이션했고 소스 데이터베이스를 AWS 클라우드에서 호스팅되는 대상 MySQL 데이터베이스와 동기화하려는 경우 이 마이그레이션 유형을 사용합니다.
  4. [태스크 설정] 섹션에서 필요에 따라 태스크를 수정합니다. 
  5. [테이블 매핑] 섹션에서 [UI 안내]를 선택합니다.
  6. [새 선택 규칙 추가]를 선택하고 [스키마] 및 [테이블 이름]을 지정합니다.
    참고: 선택한 객체의 일부 또는 전부에 대한 소스 스키마, 테이블 또는 열 이름을 변경하거나 변환하려면 [변환 규칙] 섹션을 확장합니다. [새 변환 규칙 추가]를 선택합니다. 그런 다음 [대상], [스키마 이름] 및 [작업]을 선택합니다.
  7. [태스크 생성]을 선택합니다.

참고: 대형 객체(LOB) 열이 있는 경우 [제한적 LOB 모드]가 권장됩니다. 자세한 내용은 AWS DMS 태스크의 원본 데이터베이스에 대한 LOB 지원 설정을 참조하십시오.

마이그레이션 태스크 모니터링

  1. [태스크 모니터링] 보기를 사용하여 마이그레이션 태스크를 모니터링합니다. 성공적으로 마이그레이션된 테이블과 마이그레이션이 진행 중인 테이블을 확인할 수 있습니다. 다음 메시지 유형에 주의하십시오.
    I - 정보 메시지를 나타냅니다.
    W - 경고를 나타냅니다.
    E - 데이터베이스를 마이그레이션할 때 발생한 오류를 나타냅니다.
  2. 터미널을 통해 소스 및 대상 인스턴스에 연결하여 데이터베이스가 성공적으로 마이그레이션되었는지 확인합니다.

Oracle 마이그레이션

Oracle을 소스 데이터베이스로 사용하는 경우 지정된 대상 엔드포인트 사용자로 테이블이 마이그레이션됩니다. 변환 규칙을 사용하여 Oracle 대상에 대한 스키마를 변경할 수 있습니다. 자세한 내용은 Oracle 대상에 대한 사용자 및 스키마 변경을 참조하십시오.

MySQL 마이그레이션

MySQL에서 Amazon Aurora로 마이그레이션할 때는 가능한 경우 엔진 기본 도구를 사용하십시오. 마이그레이션 중에 대상의 동일한 이름으로 스키마와 테이블이 마이그레이션됩니다. 테이블을 대상의 다른 스키마로 마이그레이션하려면 매핑 규칙을 생성하여 대상 데이터베이스의 새 스키마를 지정합니다.

{
  "rules": [{
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "test",
        "table-name": "%"
      },
      "rule-action": "include"
    }, {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "rename",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "test"
      },
      "value": "newtest"
    }
  ]
}

로그를 검토하여 오류가 없는지 확인합니다.

새 대상 데이터베이스로 전환하기 전에 지연 시간을 모니터링하고 소스와 대상 데이터베이스의 데이터 수를 비교합니다. 자세한 내용은 마이그레이션 태스크 문제 해결을 참조하십시오.