AWS Database Migration Service에서 복제 설정 - AWS Database Migration Service

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

AWS Database Migration Service에서 복제 설정

이 항목에서는 소스 데이터베이스와 대상 데이터베이스 간의 복제를 설정합니다.

1단계: AWS DMS 콘솔을 사용하여 복제 인스턴스 생성

AWS DMS를 시작하기 위해 복제 인스턴스를 생성합니다.

복제 인스턴스는 소스 엔드포인트와 대상 엔드포인트 간에 실제 데이터 마이그레이션을 수행합니다. 소스 데이터베이스에서 대상 데이터베이스로 데이터를 마이그레이션하는 작업을 수행하려면 인스턴스에 충분한 스토리지 및 처리 능력이 필요합니다. 이 복제 인스턴스의 크기는 마이그레이션할 데이터의 양과 인스턴스가 수행해야 하는 태스크에 따라 달라집니다. 복제 인스턴스에 대한 자세한 내용은 AWS DMS 복제 인스턴스 사용 섹션을 참조하세요.

복제 인스턴스 생성
콘솔을 사용하여 복제 인스턴스를 생성하려면
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/dms/v2/에서 AWS DMS 콘솔을 엽니다.

  2. 탐색 창에서 복제 인스턴스를 선택하고, 복제 인스턴스 생성을 선택합니다.

  3. 복제 인스턴스 생성 페이지에서 복제 인스턴스 구성을 지정합니다.

    1. 이름DMS-instance를 입력합니다.

    2. 설명에 복제 인스턴스에 대한 간단한 설명을 입력합니다(선택 사항).

    3. 인스턴스 클래스에서 dms.t3.medium을 선택한 상태로 둡니다.

      인스턴스에는 마이그레이션을 위한 충분한 스토리지, 네트워킹 및 처리 능력이 필요합니다. 인스턴스 클래스를 선택하는 방법에 대한 자세한 내용은 마이그레이션에 적합한 AWS DMS 복제 인스턴스 선택 섹션을 참조하세요.

    4. 엔진 버전에서 기본값을 그대로 사용합니다.

    5. 다중 AZ에서 개발 또는 테스트 워크로드(단일 AZ)를 선택합니다.

    6. 할당된 스토리지(GiB)에서 기본값인 50GiB를 그대로 사용합니다.

      AWS DMS에서는 스토리지가 로그 파일 및 캐시된 트랜잭션에 주로 사용됩니다. 캐시 트랜잭션에서 스토리지는 캐시된 트랜잭션을 디스크에 기록해야 할 때에만 사용됩니다. 따라서 AWS DMS는 스토리지를 많이 사용하지 않습니다.

    7. 네트워크 유형에서 IPv4를 선택합니다.

    8. VPC에서 DMSVPC를 선택합니다.

    9. 복제 서브넷 그룹에서 현재 선택한 복제 서브넷 그룹을 그대로 둡니다.

    10. 퍼블릭 액세스 가능 확인란의 선택을 취소합니다.

  4. 필요한 경우 고급 보안 및 네트워크 구성 탭을 선택하여 네트워크 및 암호화 설정에 대한 값을 설정합니다.

    1. 가용 영역에서 us-west-2a를 선택합니다.

    2. VPC 보안 그룹에서 기본 보안 그룹을 선택합니다(이미 선택되지 않은 경우).

    3. AWS KMS key에서 (기본값) aws/dms를 선택한 상태로 둡니다.

  5. 유지 관리 탭의 설정을 그대로 둡니다. 기본값은 AWS 리전별로 8시간의 시간 블록 중 임의로 선택한 30분의 기간이며, 발생하는 요일은 무작위입니다.

  6. 생성을 선택합니다.

AWS DMS가 마이그레이션을 수행할 복제 인스턴스를 생성합니다.

2단계: 소스 및 대상 엔드포인트 지정

복제 인스턴스가 생성되는 동안 앞서 생성한 Amazon RDS 데이터베이스를 위한 소스 및 대상 데이터 스토어를 지정할 수 있습니다. 각 엔드포인트를 개별적으로 생성합니다.

엔드포인트 생성
AWS DMS 콘솔을 사용하여 소스 엔드포인트와 데이터베이스 엔드포인트를 지정하려면
  1. 콘솔의 탐색 창에서 엔드포인트를 선택하고 엔드포인트 생성을 선택합니다.

  2. 엔드포인트 생성 페이지에서 소스 엔드포인트 유형을 선택합니다. RDS DB 인스턴스 선택 확인란을 선택하고 dms-mariadb 인스턴스를 선택합니다.

  3. 엔드포인트 구성 섹션에서 엔드포인트 식별자dms-mysql-source를 입력합니다.

  4. 소스 엔진에서 MySQL을 선택한 상태로 둡니다.

  5. 엔드포인트 데이터베이스 액세스에서 수동으로 액세스 정보 제공을 선택합니다. 포트, 보안 소켓 계층(SSL) 모드, 사용자 이름암호가 올바른지 확인합니다.

  6. 엔드포인트 연결 테스트(선택 사항) 탭을 선택합니다. VPC에서 DMSVPC를 선택합니다.

  7. 복제 인스턴스에서 dms-instance를 선택한 상태로 둡니다.

  8. 테스트 실행을 선택합니다.

    테스트 실행을 선택하면 AWS DMS가 제공된 세부 정보로 엔드포인트를 생성하고 엔드포인트에 연결합니다. 연결이 실패할 경우 엔드포인트 정의를 편집하고 연결을 다시 테스트하세요. 엔드포인트를 수동으로 삭제할 수도 있습니다.

  9. 테스트에 성공하면 엔드포인트 생성을 선택합니다.

  10. AWS DMS 콘솔을 사용하여 대상 데이터베이스 엔드포인트를 지정합니다. 이렇게 하려면 다음 설정을 사용하여 이전 단계를 반복합니다.

    • 엔드포인트 유형: 대상 엔드포인트

    • RDS 인스턴스: dms-postgresql

    • 엔드포인트 식별자: dms-postgresql-target

    • 대상 엔진: PostgreSQL을 선택한 상태로 둡니다.

엔드포인트에 대한 모든 정보를 모두 제공했다면 AWS DMS는 데이터베이스 마이그레이션 중에 사용할 소스 및 대상 엔드포인트를 생성합니다.

3단계: 태스크 생성 및 데이터 마이그레이션

이 단계에서는 생성한 데이터베이스 간에 데이터를 마이그레이션하는 태스크를 생성합니다.

마이그레이션 태스크 생성
마이그레이션 태스크를 생성하고 데이터베이스 마이그레이션을 시작하려면
  1. 콘솔 탐색 창에서 데이터베이스 마이그레이션 태스크를 선택한 다음 태스크 생성을 선택합니다. 데이터베이스 마이그레이션 태스크 생성 페이지가 열립니다.

  2. 태스크 구성 섹션에서 다음 태스크 옵션을 지정합니다.

    • 태스크 식별자: dms-task를 입력합니다.

    • 복제 인스턴스: 복제 인스턴스를 선택합니다(dms-instance-vpc-<vpc id>).

    • 소스 데이터베이스 엔드포인트: dms-mysql-source를 선택합니다.

    • 대상 데이터베이스 엔드포인트: dms-postgresql-target을 선택합니다.

    • 마이그레이션 유형: 기존 데이터 마이그레이션 및 진행 중 변경 사항 복제를 선택합니다.

  3. 태스크 설정 탭을 선택합니다. 다음 설정을 지정합니다.

    • 대상 테이블 준비 모드: 아무 작업 안 함

    • 전체 로드 완료 후 태스크 중지: 중지 안 함

  4. 테이블 매핑 탭을 선택하고 선택 규칙을 확장합니다. 선택 규칙 추가를 선택합니다. 다음 설정을 지정합니다.

    • 스키마: 스키마 입력

    • 스키마 이름: dms_sample

  5. 마이그레이션 태스크 시작 구성 탭을 선택한 다음 생성 시 자동으로를 선택합니다.

  6. [태스크 생성]을 선택합니다.

그러면 AWS DMS가 마이그레이션 태스크를 생성하고 시작합니다. 초기 데이터베이스 복제는 약 10분이 걸립니다. AWS DMS가 데이터 마이그레이션을 완료하기 전에 자습서의 다음 단계를 수행해야 합니다.

4단계: 복제 테스트

이 단원에서는 초기 복제 도중 및 이후에 소스 데이터베이스에 데이터를 삽입하고 대상 데이터베이스에서 삽입된 데이터를 쿼리합니다.

복제를 테스트하려면
  1. 데이터베이스 마이그레이션 태스크의 상태가 실행 중으로 표시되지만 이전 단계에서 시작한 초기 데이터베이스 복제가 완료되지 않았는지 확인합니다.

  2. Amazon EC2 클라이언트에 연결하고 다음 명령을 사용하여 MySQL 클라이언트를 시작합니다. MySQL 데이터베이스 엔드포인트를 제공합니다.

    mysql -h dms-mysql.abcdefg12345.us-west-2.rds.amazonaws.com -P 3306 -u admin -pchangeit dms_sample
  3. 다음 명령을 실행하여 소스 데이터베이스에 레코드를 삽입합니다.

    MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User1', 'User1', 'Test'); Query OK, 1 row affected (0.00 sec)
  4. MySQL 클라이언트를 종료합니다.

    MySQL [dms_sample]> exit Bye
  5. 복제가 완료되기 전에 대상 데이터베이스에서 새 레코드를 쿼리합니다.

    다음 명령으로 Amazon EC2 인스턴스에서 대상 데이터베이스 엔드포인트를 제공하여 대상 데이터베이스에 연결합니다.

    psql \ --host=dms-postgresql.abcdefg12345.us-west-2.rds.amazonaws.com \ --port=5432 \ --username=postgres \ --password \ --dbname=dms_sample

    메시지가 표시되면 암호(changeit)를 제공합니다.

  6. 복제가 완료되기 전에 대상 데이터베이스에서 새 레코드를 쿼리합니다.

    dms_sample=> select * from dms_sample.person where first_name = 'Test'; id | full_name | last_name | first_name ----+-----------+-----------+------------ (0 rows)
  7. 마이그레이션 태스크가 실행되는 동안 데이터베이스 마이그레이션의 진행 상황을 모니터링할 수 있습니다.

    • DMS 콘솔 탐색 창에서 데이터베이스 마이그레이션 태스크를 선택합니다.

    • dms-task를 선택합니다.

    • 테이블 통계를 선택합니다.

    모니터링에 대한 자세한 내용은 AWS DMS 태스크 모니터링 섹션을 참조하세요.

  8. 복제가 완료되면 대상 데이터베이스에서 새 레코드를 다시 쿼리합니다. AWS DMS는 초기 복제가 완료된 후 새 레코드를 마이그레이션합니다.

    dms_sample=> select * from dms_sample.person where first_name = 'Test'; id | full_name | last_name | first_name ---------+------------+-----------+------------ 7077784 | Test User1 | User1 | Test (1 row)
  9. psql 클라이언트를 종료합니다.

    dms_sample=> quit
  10. 1단계를 반복하여 소스 데이터베이스에 다시 연결합니다.

  11. person 테이블에 다른 레코드를 삽입합니다.

    MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User2', 'User2', 'Test'); Query OK, 1 row affected (0.00 sec)
  12. 3단계 및 4단계를 반복하여 소스 데이터베이스의 연결을 끊고 대상 데이터베이스에 연결합니다.

  13. 대상 데이터베이스에서 복제된 데이터를 다시 쿼리합니다.

    dms_sample=> select * from dms_sample.person where first_name = 'Test'; id | full_name | last_name | first_name ---------+------------+-----------+------------ 7077784 | Test User1 | User1 | Test 7077785 | Test User2 | User2 | Test (2 rows)

5단계: AWS DMS 리소스 정리

시작하기 자습서를 완료하면 생성한 리소스를 삭제할 수 있습니다. AWS 명령을 사용하여 제거할 수도 있습니다. 복제 인스턴스 및 엔드포인트를 삭제하기 전에 마이그레이션 태스크를 삭제해야 합니다.

콘솔을 사용하여 마이그레이션 태스크를 삭제하려면
  1. AWS DMS 콘솔 탐색 창에서 데이터베이스 마이그레이션 태스크를 선택합니다.

  2. dms-task를 선택합니다.

  3. 작업, 삭제를 선택합니다.

콘솔을 사용하여 복제 인스턴스를 삭제하려면
  1. AWS DMS 콘솔 탐색 창에서 복제 인스턴스를 선택합니다.

  2. DMS-instance를 선택합니다.

  3. 작업, 삭제를 선택합니다.

AWS DMS가 복제 인스턴스를 삭제하고 복제 인스턴스 페이지에서 제거합니다.

콘솔을 사용하여 엔드포인트를 제거하려면
  1. AWS DMS 콘솔 탐색 창에서 엔드포인트를 선택합니다.

  2. dms-mysql-source를 선택합니다.

  3. 작업, 삭제를 선택합니다.

AWS DMS 리소스를 삭제한 후에는 다음 리소스도 삭제해야 합니다. 다른 서비스의 리소스를 삭제하는 데 도움이 필요하면 각 서비스의 설명서를 참조하세요.

  • RDS 데이터베이스.

  • RDS 데이터베이스 파라미터 그룹.

  • RDS 서브넷 그룹.

  • 데이터베이스 및 복제 인스턴스와 함께 생성된 모든 Amazon CloudWatch 로그

  • Amazon VPC 및 Amazon EC2 클라이언트용으로 생성된 보안 그룹. launch-wizard-1 보안 그룹에 대한 기본값에서 인바운드 규칙을 제거해야 합니다. 이는 보안 그룹을 삭제하는 데 필요합니다.

  • Amazon EC2 클라이언트.

  • Amazon VPC.

  • Amazon EC2 클라이언트용 Amazon EC2 키 페어