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

최종 업데이트 날짜: 2022년 10월 19일

데이터베이스를 Amazon Relational Database Service(RDS) 또는 Amazon Aurora로 마이그레이션하려고 합니다. 어떻게 하면 가동 중단 시간을 최소화하면서 이 작업을 수행할 수 있나요?

간략한 설명

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

AWS DMS를 사용해 Amazon RDS DB 인스턴스로 마이그레이션:

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

이들 단계는 Amazon RDS for Oracle 및 Amazon Aurora for MySQL DB 인스턴스를 포함하여 모든 Amazon RDS 및 Amazon Aurora 엔진 유형에 사용할 수 있습니다.

해결 방법

참고: AWS DMS는 테이블 데이터를 마이그레이션하기 전에 필요한 경우에만 대상에 프라이머리 키를 포함하는 테이블을 생성합니다. 전체 대상 스키마를 생성하려면 AWS Schema Conversion Tool(AWS SCT)을 사용하세요. 자세한 내용은 스키마 변환을 참조하세요.

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

Amazon CloudWatch Logs는 마이그레이션할 때 잠재적인 문제를 경고해 줍니다. 자세한 내용은 Amazon CloudWatch를 사용하여 복제본 작업 모니터링을 참조하세요.

복제 인스턴스 생성

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

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

  1. AWS DMS 콘솔을 열고 탐색 창에서 Endpoints(엔드포인트)를 선택합니다.
  2. [엔드포인트 생성]을 선택하여 소스 및 대상 데이터베이스를 생성합니다.
  3. Endpoint type(엔드포인트 유형)에서 Source(소스)를 선택합니다.
  4. 엔드포인트의 엔진별 정보를 입력합니다.
  5. Run Test(테스트 실행)를 선택합니다.
  6. 테스트가 완료되면 저장을 저장합니다.
  7. 3~6단계를 반복하고, Endpoint type(엔드포인트 유형)에서 Target(대상)을 선택합니다.
    참고: 대상소스 모두에 대해 이 단계를 완료합니다.

소스 엔드포인트 스키마 새로 고침<b></b>

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

마이그레이션 태스크 생성

  1. AWS DMS 콘솔을 열고 탐색 창에서 Database migration tasks(데이터베이스 마이그레이션 태스크)를 선택합니다.
  2. Create task(태스크 생성)를 선택합니다.
  3. [태스크 식별자(Task identifier)], [복제 인스턴스(Replication instance)], [소스 데이터베이스 엔드포인트(Source database endpoint)], [대상 데이터베이스 엔드포인트(Target database endpoint)] 및 [마이그레이션 유형(Migration type)]을 지정합니다. 다음과 같은 마이그레이션 유형 중 하나를 선택합니다.
    기존 데이터만 마이그레이션 - 일회성 마이그레이션에는 이 마이그레이션 유형을 사용합니다.
    기본 데이터 마이그레이션 및 지속적 변경 복제 – 가동 중지를 최소화하면서 AWS 클라우드로 크기가 큰 데이터베이스를 마이그레이션하려면 이 마이그레이션 유형을 선택합니다.
    지속적 복제 변경 사항 마이그레이션 – 기존 데이터를 이미 마이그레이션했고 소스 데이터베이스를 AWS 클라우드에서 호스팅되는 대상 MySQL 데이터베이스와 동기화하려는 경우 이 마이그레이션 유형을 사용합니다.
  4. Task Settings(태스크 설정) 섹션에서 필요에 따라 태스크를 수정합니다.
  5. Table mappings(테이블 매핑) 섹션에서 Guided UI(안내식 UI)를 선택합니다.
  6. Add new selection rule(새 선택 규칙 추가)을 선택하고 Schema(스키마)Table name(테이블 이름)을 지정합니다.
    참고: 선택한 객체의 일부 또는 전부에 대한 소스 스키마, 테이블 또는 열 이름을 변경하거나 변환할 수 있습니다. 이렇게 하려면 Transformation rules(변환 규칙) 섹션을 확장하십시오. Add new transformation rule(새 변환 규칙 추가)을 선택합니다. 그런 다음 [대상], [스키마 이름] 및 [작업]을 선택합니다.
  7. Create task(태스크 생성)를 선택합니다.

참고: LOB(Large Object) 열이 있는 경우 Limited LOB Mode(제한적 LOB 모드)를 사용합니다. 자세한 내용은 AWS DMS 태스크의 소스 데이터베이스에 대한 LOB 지원 설정을 참조하세요.

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

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

Oracle 마이그레이션

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

MySQL/PostgreSQL/SQL 서버로 마이그레이션

마이그레이션 과정에서 스키마와 테이블은 대상에 동일한 이름으로 마이그레이션됩니다. 테이블을 대상의 다른 스키마/테이블로 마이그레이션하려는 경우, 대상 데이터베이스에 새 스키마/테이블을 지정하는 매핑 규칙을 생성합니다.

{
  "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"
    }
  ]
}

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

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