BLOG

AWS DMS (Database Migration Service) 사용자 가이드
작성일: 2016-08-23

AWS DMS (Database Migration Service) 사용자 가이드

 

작성 : 메가존 SA팀

 

 

AWS DMS(Database Migration Service)는 여러분의 온프레미스 데이터베이스를 아마존 환경으로 이전하기 위해서 제공되는 아마존의 데이터베이스 마이그레이션 서비스 입니다. 또는 아마존에 있는 데이터베이스 소스를 온프레미스에 마이그레이션도 가능합니다. 마이그레이션에서 사용되는 소스와 타겟 중 하나는 반드시 아마존 리소스(EC2 DB, AWS RDS) 여야만 됩니다. 같은 데이터베이스가 아닌 다른 데이터베이스를 사용할 경우에는 AWS Schema Conversion Tool을 통해서 스키마와 저장 프로시저 등 기존 환경에 대한 정보를 별도로 먼저 이동 시킨 후 데이터를 DMS로 이전하면 됩니다.

 

 

여기서는 테스트로 EC2에 있는 MySQL 을 RDS의 MySQL로 데이터 마이그레이션을 하도록하겠습니다.

 

먼저, 온프레미스 환경에서의 접속환경 정보와 RDS의 접속환경정보를 확보하셔야 합니다. 또한 DMS에서 접속할 수 있도록 방화벽 정책도 살펴보고 오픈을 해줘야 합니다.

 

다음과 같은 구성도를 가지고 있습니다.

 

 

AWS DMS (Database Migration Service) 사용자 가이드

 

 

작성 : 메가존 SA팀

 

 

AWS DMS(Database Migration Service)는 여러분의 온프레미스 데이터베이스를 아마존 환경으로 이전하기 위해서 제공되는 아마존의 데이터베이스 마이그레이션 서비스 입니다. 또는 아마존에 있는 데이터베이스 소스를 온프레미스에 마이그레이션도 가능합니다. 마이그레이션에서 사용되는 소스와 타겟 중 하나는 반드시 아마존 리소스(EC2 DB, AWS RDS) 여야만 됩니다. 같은 데이터베이스가 아닌 다른 데이터베이스를 사용할 경우에는 AWS Schema Conversion Tool을 통해서 스키마와 저장 프로시저 등 기존 환경에 대한 정보를 별도로 먼저 이동 시킨 후 데이터를 DMS로 이전하면 됩니다.

 

 

 

 

마이그레이션 순서

  • 리플리케이션 인스턴스 생성
  • 엔드포인트 생성 (소스, 타겟)
  • 마이그레이션 태스크 만들기

 

 

 

  • 리플리케이션 인스턴스 생성

먼저 서비스 중에서 DMS 서비스로 이동합니다.

 

 

 

 

[DMS] 클릭 후 (1) [Replication instances]를 클릭합니다. (2) [Create replication Instance]를 클릭하여 리플리케이션에 사용할 인스턴스를 생성해 줍니다.

 

 

 

 

 

 

아래의 그림과 같이 적거나 자신의 환경에 맞게 적어줍니다. Publicly accessible 은 아마존 인프라내에서 사용시에는 체크할필요가 없으나, 온프레미스에서 데이터베이스를 가져올때는 반드시 체크해야합니다. 체크하지 않으면 인터널 아이피를 가지므로 데이터를 가져올 방법이 없습니다.

 

 

 

 

저는 아래와 같이 생성했으며, 본인에 맞는 환경으로 설정하세요. KMS의 경우에는 별도로 키를 생성하세요. 좀더 아래에 생성방법이 있으니 참고하세요.

 

[Allocated Storage (GB)]는 인스턴스가 가질 용량을 Relication Subnet Group은 사용할 subnet을

 

그리고, VPC Security Group은 현재 존재하는 것중 하나를 선택하시길 바랍니다.

 

 

 

 

KMS 키 생성방법은

[IAM] 서비스로 이동 후 맨 아래의 [Encryption Keys]로 이동하면 됩니다.

 

 

 

 

DMS를 할 Seoul 존으로 선택하고 [Create Key]로 생성하면 됩니다. 아래 그림을 참조하세요.

 

 

 

 

[Next Step] 클릭하면 생성됩니다. 생성은 너무도 쉽습니다. 키 관리자를 체크해서 선태만 해주시면 됩니다.

 

 

리플리케이션 인스턴스는 약 5-10분내에 생성이 됩니다.

 

MyDMS 리플리케이션 인스턴스가 생성되면 아래아 같이 Available 상태로 됩니다. 이제 Endpoint를 생성하겠습니다. “Endpoint”는 소스와 타겟이 있습니다. 먼저 소스를 선택하겠습니다.

 

 

 

 

  • 엔드포인트 생성 (소스, 타겟)

[Create endpoint]를 클릭하여 새로운 소스 엔드포인트를 생성하겠습니다.

 

 

 

 

소스 생성시에는 데이터베이스 접속정보를 먼저 확인하신 후 아래와 같이 입력하고 [Run Test]를 클릭하여 접속을 확인합니다.

 

 

 

 

 

[Run Test]를 클릭하여 정상 접속을 확인하고 Save 합니다.

 

 

 

이제 타겟에 대한 (RDS) 엔드포인트를 생성해 보겠습니다.

 

[타겟] 콤보를 찍고 Endpoint 이름은 식별하기 편한 이름으로 설정합니다. 엔진은 mysql로 설정하고 서버네임에는 RDS의 Endpoint를 적어줍니다. 포트는 3306으로하고, 사용자 이름과 패스워드는 RDS 생성시 넣어준 정보로 넣어주면 됩니다. 마지막으로 [Run Test]를 클릭해서 확인해 봅니다.

 

 

 

 

 

 

두개의 엔드포인트가(소스, 타겟) 성공적으로 생성된 화면입니다.

 

 

 

 

  • 마이그레이션 태스트 만들기

접속테스트가 성공적이면 이제 [Tasks]로 이동하여 마이그레이션을 실행합니다.

 

 

 

 

 

먼저 [Tasks]에서 [Create Task]를 클릭하여 아래아같이 태스크를 생성합니다.

 

 

 

 

[Task Name]에는 자신의 태스크를 식별할 이름을 입력합니다. [Replication instance]에는 위에서 만든 인스턴스를 선택합니다. Source와 target은 위에서 만든 것을 선택하면됩니다. [Migration Type]은 데이터를 선택했습니다. 생성후에 태스크를 시작하려면 [Start task on create]를 체크하면됩니다.

나머지는 기본으로 설정하고 [Create Task]를 생성하겠습니다.

 

 

 

 

 

생성한 마이그레이션 태스트를 선택하고 상단의 [Start/Resume] 버튼을 클릭하여 마이그레이션을 생성합니다. 마이그레이션 상태는 Complete를 보면 확인이 가능합니다.

 

 

 

 

현재 100% 마이그레이션이 진행되었고, 이를 확인할수 있는 방법은 RDS에서 다음과 같이 테이블들이 정상적으로 들어갔는지 확인하거나, 또는 [Table statistics]를 학인하면 확인이 가능합니다.

 

 

 

 

 

 

 

지금까지 DMS를 사용하는 방법을 알아보았습니다. 별도의 DMS사용법이 AWS Korea Blog에 올라와 있으니 그것을 참고해도 좋을 것 같습니다.

 

https://aws.amazon.com/ko/blogs/korea/aws-database-migration-service/

 

 

지금까지 읽어주셔서 감사합니다.