BLOG

AWS Database Migration Service를 통해 Amazon Aurora에서 Amazon S3로 데이터 복제
작성일: 2018-09-07

이 글에서는 AWS CloudFormation 템플릿을 사용하여 Amazon Aurora와 같은 관계형 데이터베이스 간의 데이터를 Amazon S3(Simple Storage Service)로 복제할 수 있는 구성을 자동화하는 방법에 대해 알아보겠습니다. 요구에 맞게 커스터마이징할 수 있도록 샘플 CloudFormation 템플릿을 살펴보겠습니다.

AWS DMS(AWS Database Migration Service)를 사용하면 데이터 소스를 다른 데이터로 마이그레이션할 수 있습니다. 예를 들어 Oracle에서 Aurora로, NoSQL에서 SQL로 또는 사내에서 클라우드로 가능합니다. 일회성 데이터 마이그레이션에 DMS를 사용하는 것 외에도, 고객은 종종 DMS를 ETL 프로세스의 일부로 활용하여 진행 중인 이기종 데이터 복제를 수행합니다.(이 글의 중점내용입니다.)

 

솔루션 개요

여기 아키텍쳐의 다이어그램이 있습니다.

샘플 CloudFormation 템플릿은 이 예제에 필요한 모든 리소스를 설명하고 프로비저닝합니다. GitHub에서 코드를 찾고 스택 실행 버튼을 사용하여 템플릿을 스택으로 배포할 수 있습니다. 참고: 이 템플릿은 us-east-1 리전에서 RDS DB 클러스터 스냅샷을 사용합니다. 이 스택을 다른 리전에 배포하려면 스냅샷을 원하는 리전으로 복사한 후 CloudFormation 템플릿에서 SnapshotIdentifier 값을 바꿉니다.

 

 

이 작업을 시작하면 스택이 생성되는 데 약 50분이 걸립니다. 템플릿은 다음을 처리합니다.

  1. AWS DMS 샘플 데이터베이스의 스냅샷에서 Aurora MySQL 데이터베이스를 생성합니다.
  2. Aurora MySQL 데이터베이스에서 DMS 필수 설정을 구성합니다. 자세한 내용은 MySQL 호환 데이터베이스를 AWS DMS의 소스로 사용하기를 참조하십시오.
  3. S3 버킷을 만듭니다.
  4. DMS 복제 인스턴스를 생성합니다.
  5. 필요한 IAM 권한 및 역할이 아직 없는 경우 이를 구성하십시오. 자세한 내용은 AWS DMS를 사용하는 데 필요한 IAM 권한을 참조하십시오.
  6. Aurora 데이터베이스를 DMS 소스 엔드포인트로 구성하십시오.
  7. S3 버킷을 DMS 대상 엔드포인트로 구성하십시오.
  8. 기존 데이터를 로드하고 소스 엔드포인트에서 대상 엔드포인트로 지속적인 변경 사항을 복제하는 DMS 마이그레이션 작업을 진행하십시오.

스택이 생성된 후 Aurora에서 S3으로 복제를 테스트할 수 있습니다. 아래 MySQL 데이터베이스와 DMS 작업에 대한 몇 가지 정보를 강조 표시하겠습니다.

 

MySQL 호환 데이터베이스를 DMS의 소스로 사용

이 CloudFormation 템플릿은 Aurora MySQL데이터베이스를 생성하여 DMS의 예제 소스 엔드포인트 역할을 합니다. 또한 다른 MySQL과 호환되는 데이터베이스(MySQL, MariaDB)에서 데이터를 복제하도록 템플릿을 구성할 수도 있습니다. 선택한 MySQL 호환 엔진에 관계없이 먼저 데이터베이스를 DMS의 소스로 사용하도록 특정 필수 구성 요소를 구성합니다. 자세한 내용은 MySQL 호환 데이터베이스를 AWS DMS의 소스로 사용하기를 참조하십시오.

DMS는 여러 마이그레이션 방법을 지원합니다. 기존 데이터만 마이그레이션하거나, 기존 데이터를 마이그레이션하고, 지속적인 변경 내용을 복제하거나, 소스에서 대상 데이터베이스로 데이터 변경 내용만 복제할 수 있습니다. 이 예에서는 기존 데이터를 마이그레이션하고 지속적인 변경(변경 데이터 캡처/CDC) 방법을 선택하여 기존 데이터와 진행중인 모든 데이터를 Aurora에서 S3로 복제합니다. 지속적인 변경 내용을 복제하려면 MySQL 데이터베이스에서 이진 로그도 실행해야 합니다. 템플릿에서 이 작업을 처리합니다. 자세한 내용은 Amazon Aurora MySQL을 실행하는 Amazon RDS 인스턴스에 대해 이진 로그를 사용하도록 설정하는 방법을 참조하십시오.

Aurora MySQL에 대해 진행 중인 복제를 사용할 때 성능 및 충돌 복구 고려 사항이 있습니다. 자세한 내용은 DMS 베스트 프렉티스Amazon Aurora 신뢰성의 충돌 복구 섹션을 참조하십시오.

 

AWS DMS에 대한 IAM 권한 구성

AWS DMS를 사용하려면 몇 가지 IAM 사용 권한과 역할이 필요합니다. 사용 권한 및 역할이 아직 생성되지 않은 경우 이 템플릿은 DMS가 EC2 인스턴스를 생성하고 복제 인스턴스를 위한 네트워크를 구성할 수 있도록 dms-vpc-role이라는 IAM 역할을 구성합니다. 또한 복제 인스턴스 메트릭 및 로그를 볼 수 있도록 dms-cloudwatch-logs-role이라는 역할도 생성합니다. 자세한 내용은 AWS DMS 사용에 필요한 IAM 권한을 참조하십시오.

또한 Amazon S3을 DMS 대상으로 사용하려면 추가 IAM 사용 권한이 필요하며 템플릿은 대상 S3 버킷에 대한 특정 사용 권한을 허용하는 dms-s3-target-role이라는 역할을 생성합니다. 자세한 내용은 Amazon S3를 대상으로 사용하기 위한 필수 구성 요소를 참조하십시오.

 

예제 테스트

스택이 생성된 후 CloudFormation 콘솔의 Outputs 탭에서 S3 버킷 이름과 Aurora 엔드포인트 정보를 기록해 두십시오. 아래 예제 콘솔에서 확인할 수 있습니다. 이 정보는 나중에 사용됩니다.

그런 다음 DMS 콘솔에서 다음 단계를 수행하여 DMS 작업을 시작합니다.

  1. 왼쪽 탐색 창에서 작업을 선택합니다.
  2. 생성된 작업을 선택합니다.
  3. 시작/재개를 선택합니다.

작업을 시작하면 DMS가 소스 엔드포인트에서 대상으로 데이터 로드를 시작합니다. S3 콘솔에서 S3 버킷 이름을 선택합니다.

버킷에는 여러 개의 폴더를 포함하는 dms_sample이라는 폴더가 있습니다. 각 폴더는 소스 데이터베이스의 테이블에 해당합니다. 각 폴더에는 샘플 데이터의 CSV가 있습니다. 초기 데이터 로드가 완료되는 데 최대 10분이 걸릴 수 있습니다. 아래 예제 콘솔에서 확인할 수 있습니다.

DMS 콘솔에서 작업 진행률을 모니터링할 수도 있습니다. 아래에 예시 콘솔이 있습니다. 작업 상태가 로드 완료로 표시되면 소스 데이터베이스에 대해 쿼리를 실행하여 변경 데이터 캡처를 테스트할 수 있습니다.

MySQL 클라이언트를 사용하여 Aurora 데이터베이스에 연결할 수 있습니다. 이 데모에서는 Linux mysql 클라이언트를 사용하는 명령을 보여 줍니다.

터미널/셸에서 데이터베이스에 연결:

$ mysql -h AURORA_ENDPOINT -u admin –p

 

암호를 입력하라는 메시지가 나타나면 암호를 입력합니다. 연결한 후 dms_sample 데이터베이스를 사용합니다.

use dms_sample;

 

샘플 데이터베이스에는 트랜잭션을 생성하도록 설계된 절차가 포함됩니다. 트랜잭션을 생성하려면 다음 SQL 문장을 실행하십시오.

call generateTicketActivity(50, 0.01);

 

이 문구는 각각 0.01초씩 지연된 50장의 티켓을 연속으로 “판매”합니다. 티켓은 1-6인 임의의 그룹으로 임의의 가격에 팔립니다. 각 거래의 기록은 ticket_purchase_hist 테이블에 기록됩니다. 데이터가 Aurora 데이터베이스에서 S3 버킷으로 마이그레이션될 때까지 잠시 기다려야 할 수도 있습니다. 복제가 시작되면 dms_sample 폴더에 생성된 새 ticket_purchase_hist 폴더를 볼 수 있습니다. CSV 파일은 변경 내용이 들어 있습니다. 이것은 여기 스크린샷에서 볼 수 있습니다.

테스트할 수 있는 자세한 절차는 SampleDB GitHub 페이지를 참조하십시오.

 

끝으로

DMS를 사용한 지속적인 복제를 위한 CloudFormation 템플릿이 도움이 되기를 바라며, 비즈니스 요구사항을 지원하기 위해 CloudFormation 템플릿을 수정할 것을 권장합니다.

이제 데이터가 Amazon S3에 있으므로 S3와 통합된 다른 AWS 서비스를 사용하여 새 워크로드에 힘을 줄 수 있습니다. 예를 들어 데이터를 별도의 분석 시스템으로 이동하지 않고 S3의 데이터에 대해 빅데이터 분석을 실행할 수 있습니다. Amazon에는 다음과 같은 다양한 툴이 있습니다.

 

원문 URL: https://aws.amazon.com/ko/blogs/database/replicate-data-from-amazon-aurora-to-amazon-s3-with-aws-database-migration-service/

** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.