AWS Database Migration Service를 사용하여 EC2 데이터베이스를 Amazon RDS로 자동 마이그레이션 - Amazon Relational Database Service

AWS Database Migration Service를 사용하여 EC2 데이터베이스를 Amazon RDS로 자동 마이그레이션

RDS 콘솔을 사용하여 EC2 데이터베이스를 RDS로 마이그레이션할 수 있습니다. RDS는 AWS Database Migration Service(AWS DMS)를 사용하여 소스 EC2 데이터베이스를 마이그레이션합니다. AWS DMS를 사용하면 관계형 데이터베이스를 AWS 클라우드로 마이그레이션할 수 있습니다. AWS Database Migration Service에 대한 자세한 내용은 AWS Database Migration Service 사용 설명서AWS Database Migration Service이란 무엇인가요?를 참조하세요.

마이그레이션을 시작하려면 데이터를 마이그레이션하기 위해 상응하는 RDS DB 인스턴스를 만들어야 합니다. 대상 데이터베이스를 만든 후 EC2 데이터베이스를 가져올 수 있습니다. 1TiB보다 작은 소스 데이터베이스의 경우 이 마이그레이션 작업은 데이터를 RDS로 마이그레이션하는 데 필요한 시간과 리소스를 줄입니다.

개요

RDS 콘솔을 사용하면 EC2 데이터베이스를 상응하는 RDS 데이터베이스로 마이그레이션할 수 있습니다. 콘솔에서 마이그레이션을 활성화하려면 RDS 데이터베이스를 만들어야 합니다.

다음 데이터베이스 엔진의 EC2 데이터베이스를 마이그레이션할 수 있습니다.

  • MySQL

  • MariaDB

  • PostgreSQL

마이그레이션 프로세스는 다음과 같은 단계로 구성됩니다.

  • RDS에서 상응하는 데이터베이스를 만듭니다. 데이터베이스가 상응하려면 데이터베이스 엔진과 호환되는 엔진 버전이 동일해야 합니다. 또한 동일한 VPC에 있어야 합니다. 데이터베이스 만들기에 대한 지침은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

  • 데이터베이스의 복제 유형을 선택합니다.

    • 전체 로드 마이그레이션 - RDS가 전체 소스 데이터베이스를 대상 데이터베이스에 복사하며 필요한 경우 대상에 새 테이블을 만듭니다.

      참고

      이 옵션을 사용하면 RDS 데이터베이스가 중단됩니다.

    • 전체 로드 및 변경 데이터 캡처(CDC) 마이그레이션 - 전체 로드 마이그레이션과 마찬가지로 이 옵션을 사용하면 RDS가 전체 소스 데이터베이스를 대상으로 복사합니다. 그러나 전체 로드 마이그레이션 후 RDS는 소스에서 캡처된 변경 사항을 대상 데이터베이스에 적용합니다. 변경 데이터 캡처는 데이터베이스 엔진의 기본 API를 사용하여 데이터베이스 로그에 대한 변경 사항을 수집합니다.

      참고

      이 옵션을 사용하면 RDS 데이터베이스가 중단됩니다.

    • 변경 데이터 캡처(CDC) - 마이그레이션 과정 내내 대상 데이터베이스를 계속 사용할 수 있도록 하려면 이 옵션을 사용합니다. RDS는 소스 데이터베이스의 진행 중인 변경 사항을 대상 데이터베이스로 마이그레이션합니다.

  • RDS는 마이그레이션을 용이하게 하는 데 필요한 네트워킹 리소스를 만듭니다. RDS가 필요한 리소스를 만들면 만들어진 리소스에 대해 사용자에게 알리고, 사용자는 데이터 전송을 시작할 수 있습니다.

    마이그레이션을 완료하는 데 필요한 시간은 복제 유형과 소스 데이터베이스 크기에 따라 다릅니다.

사전 조건

MySQL 및 MariaDB

소스 데이터베이스로 MySQL 또는 MariaDB 데이터베이스를 사용하기 전에 다음 사전 조건을 충족하는지 확인해야 합니다. 이러한 사전 요구 사항은 AWS 관리형 소스에 적용됩니다.

Replication Admin 역할이 할당된 AWS DMS용 계정이 있어야 합니다. 역할에는 다음 권한이 있어야 합니다.

  • REPLICATION CLIENT - 이 권한은 변경 데이터 캡처(CDC) 작업에만 필요합니다. 즉, 전체 로드 전용 작업에서는 이 권한이 필요하지 않습니다.

  • REPLICATION SLAVE - 이 권한은 변경 데이터 캡처(CDC) 작업에만 필요합니다. 즉, 전체 로드 전용 작업에서는 이 권한이 필요하지 않습니다.

또한, AWS DMS 사용자에게는 복제를 위해 지정된 원본 테이블에 대해 SELECT 권한이 있어야 합니다.

MySQL별 사전 마이그레이션 평가를 사용하는 경우 다음 권한을 부여합니다.

grant select on mysql.user to <dms_user>; grant select on mysql.db to <dms_user>; grant select on mysql.tables_priv to <dms_user>; grant select on mysql.role_edges to <dms_user> #only for MySQL version 8.0.11 and higher

PostgreSQL

AWS 관리형 PostgreSQL 소스 데이터베이스에서 데이터를 마이그레이션하기 전에 다음을 수행합니다.

  • PostgreSQL DB 인스턴스에 필요한 최소 권한이 있는 AWS 사용자 계정을 AWS DMS의 PostgreSQL 소스 엔드포인트 사용자 계정으로 사용하는 것이 좋습니다. 마스터 계정을 사용하는 것은 권장되지 않습니다. 계정에는 rds_superuser 역할과 rds_replication 역할이 있어야 합니다. rds_replication 역할은 논리적 슬롯을 관리하고 논리적 슬롯을 사용하여 데이터를 스트리밍할 수 있는 권한을 부여합니다.

참고

일부 AWS DMS 트랜잭션은 DMS 엔진에서 다시 사용하기 전까지 얼마 동안 유휴 상태입니다. PostgreSQL 버전 9.6 이상에서 idle_in_transaction_session_timeout 파라미터를 사용하면 유휴 트랜잭션이 시간 초과되어 실패하도록 할 수 있습니다.

제한 사항

자동 마이그레이션 프로세스에는 다음 제한 사항이 적용됩니다.

  • 소스 데이터베이스 마이그레이션을 시작하려면 대상 데이터베이스 상태가 사용 가능이어야 합니다.

  • MySQL 소스 데이터베이스에서 마이그레이션할 때 RDS 계정에 복제 관리자 역할이 있어야 합니다. 또한 해당 역할에 적절한 권한이 적용되어 있어야 합니다.

  • EC2 인스턴스와 대상 데이터베이스는 동일한 VPC에 있어야 합니다.

  • EC2 데이터베이스에서 데이터 마이그레이션 작업을 사용할 때는 EC2 데이터베이스를 다음 대상 데이터베이스로 마이그레이션할 수 없습니다.

    • 클러스터의 멤버인 데이터베이스

    • Oracle, SQL Server 및 Db2 데이터베이스

    • MySQL 버전이 5.7 미만인 데이터베이스

    • PostgreSQL 버전이 10.4 미만인 데이터베이스

    • MariaDB 버전이 10.2 미만인 데이터베이스