[AWS] DMS(Database Migration Service)란?

startingfindmistake·2025년 12월 22일

AWS DMS(Database Migration Service)

AWS DMS는 AWS Database Migration Service 에 약자이다.

AWS DMS는 데이터베이스를 빠르고 안전하게 AWS로 마이그레이션하도록 돕는 클라우드 서비스입니다.

여기서 마이그레이션(Migration)이란 시스템, 데이터, 애플리케이션 등을 한 환경에서 다른 환경으로 옮기는 과정을 의미한다.

AWS DMS의 가장 큰 특징은 마이그레이션 중에 원본 데이터베이스가 완전히 작동 상태를 유지하여, 애플리케이션 가동 중지 시간을 최소화할 수 있다는 점이다.

  • 동종 마이그레이션: Oracle에서 Oracle로, MySQL에서 MySQL로 이동하는 경우(엔진이 같음)
  • 이기종 마이그레이션: Oracle에서 Amazon Aurora(PostgreSQL 호환)로 이동하는 경우 (엔진이 다름). 이 경우 AWS SCT(Schema conversion Tool)를 함께 사용해야 합니다.
  • 지속적 데이터 복제(CDC): 초기 데이터 로드 후 발생하는 변경 사항을 지속적으로 타켓 DB에 동기화 합니다.

DMS는 크게 세 가지 구성 요소로 작동합니다.

A. 복제 인스턴스(Replicatio Instance)

마이그레이션 작업을 수행하는 컴퓨팅 서버입니다.

원본 (Source)와 대상(Target)데이터베이스 사이의 중개자 역활을 하며,
데이터를 읽고 포맷을 변환하여 대상에 씁니다.

  • 데이터는 복제 인스턴스의 메모리에서 처리되며,
    대용량 트랜잭션의 경우 디스크에 버퍼링 될 수 있습니다.



B. 엔드포인트(Endpoints)

DMS가 데이터베이스에 접속하기 위한 연결 정보 입니다.

  • 소스 엔드포인트: 데이터를 추출할 원본 DB
  • 타켓 엔드포인트: 데이터를 적재할 대상 DB (주로 Amazon RDS, Aurora, Redshift, S3 등).



C. 마이그레이션 태스크(Database Migration Task)

복제 인스턴스 내에서 실행되는 실제 작업 단위입니다.
어떤 테이블을 옮길지, 어떤 방식으로 옮길지(전체 로드 vs CDC)를 정의합니다.






마이그레이션 절차

그러면 어떻게 연결하는지 공식문서에서 권장하는 표준 워크플로우를 살펴보자

step1. 사전 준비 및 네트워크 구성

  • VPC 및 보안 그룹 설정: 복제 인스턴스가 소스 DB와 타켓 DB 양쪽 모두에 네트워크 접근이 가능해야 합니다.(포트 오픈 등)
  • I AM권한 설정: DMS를 사용하기 위한 적절한 IAM 역활(Role)이 필요합니다.
  • DB엔진이 다를 경우(스키마 변환): 엔진이 다를 경우 AWS SCT를 사용하여 소스 DB의 스키마(테이블 구조, 인덱스, 뷰 등)를 타켓 DB에 맞게 변환하여 미리 생성해 두어야 합니다.
    DMS는 데이터 자체를 옮기는 데 집중하기 때문입니다.


setp2. 복제 인스턴스 생성

  1. AWS콘솔 -> DMS -> Replication instances 선택
  2. 인스턴스 클래스(성능), VPC, 다중 AZ(고가용성 여부)등을 선택하여 생성합니다.
    • Tip: 대량의 데이터를 옮길 때는 메모리 최적화 인스턴스(r5 등)이 유리합니다.


step3. 엔드포인트 지정

  1. Source Endpoint: 온프레미스 DB 또는 다른 클라우드 DB정볼르 입력하고 연결 테스트를 수행합니다.
  2. Target Endpoint: 데이터를 받을 AWS 내의 DB(RDS 등) 정보를 입력하고 연결 테스트를 수행 합니다.


Step4. 마이그레이션 태스크 생성 및 실행

마이 그레이션 유형을 선택합니다.
1. 기존 데이터 마이그레이션(Full Load): 현재 있는 데이터만 한 번에 옮깁니다.
2. 기존 데이터 마이글에ㅣ션 및 지속적인 변경 사항 복제(Full Load + CDC): 기존 데이터를 옮기는 동안 발생하는 변경 사항을 캡처하여, 마이그레이션이 끝난 후에도 실시간 동기화를 유지합지다.
(다운타임 최소화 전략에 필수)
3. 데이터 변경 사항만 복제(CDC only): 이미 데이터가 있는 상태에서 변경분만 동기화 합니다.



Step5. 모니터링 및 컷오버(Cutover)

  1. CloudWatch를 통해 지연 시간(Latency)와 에러를 모니터링 합니다.
  2. 소스와 타켓의 데이터가 동기화(Sync)상태가 되면, 애플리케이션 DB 연결 문자열을 타켓 DB로 변경하여 서비스를 전환(Cutover)합니다.





참고 정리 내용

AWS SCT (Schema Conversion Tool)
다른 종류의 데이터베이스 마이그레이션(ex: Oracle -> PostgreSQL)시 필수 도구 입니다.
로컬 PC에 설치하여 사용하며, 소스 DB 스키마를 분석하여 타켓 DB용 SQL로 변환해 줍니다.
변환되지 않는 부분(Stored Procedure 등)은 리포트로 알려주어 수동 수정이 필요함을 경고합니다.



CDC (Change Data Capture)
DMS는 소스 테이터베이스의 로그(Oracle의 Redo Log, MySQL의 Binlog 등)를 읽어서 변경 사항을 추적합니다.
따라서 소스 DB설정에서 바이너리 로그 활성화등의 사전 작업이 필수적 입니다.






참고문헌
AWS DMS 사용자 가이드
https://docs.aws.amazon.com/ko_kr/dms/latest/userguide/Welcome.html
AWS SCT 사용자 가이드
https://docs.aws.amazon.com/ko_kr/SchemaConversionTool/latest/userguide/CHAP_Welcome.html
마이그레이션 소스 및 대상 지원 목록 (현재 지원되는 DB 버전과 엔진을 확인)
https://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Source.html

profile
도움이되었다면 그것으로 충분 합니다.

0개의 댓글