AWS DMS로 실시간 데이터 복제

최두희·2024년 8월 15일
post-thumbnail

1. 요구 사항: 실제 서비스 데이터를 실시간으로 별도 저장하여 데이터 활용 필요
2. 목적: AWS 인프라 환경내에서 운영 DB의 데이터를 실시간 복제
3. 검토: 다양한 방법이 있지만, CDC 방식으로 저렴한 비용, 비교적 빠른 구성이 가능한 AWS DMS 선택

AWS DMS 란?

AWS Database Migration Service(AWS DMS) 는 관계형 데이터베이스, 데이터 웨어하우스, NoSQL 데이터베이스 및 기타 유형의 데이터 저장소를 마이그레이션할 수 있는 클라우드 서비스입니다. 를AWS DMS 사용하여 클라우드와 온-프레미스 설정의 조합으로AWS 클라우드 또는 클라우드 설정 간에 데이터를 마이그레이션할 수 있습니다.
를 사용하여AWS DMS 원본 데이터 저장소를 검색하고, 원본 스키마를 변환하고, 데이터를 마이그레이션할 수 있습니다.
• 소스 데이터 인프라를 검색하려면 DMS 플릿 어드바이저를 사용할 수 있습니다. 이 서비스는 온프레미스 데이터베이스 및 분석 서버에서 데이터를 수집하고AWS 클라우드로 마이그레이션할 수 있는 서버, 데이터베이스 및 스키마의 인벤토리를 구축합니다.
• 다른 데이터베이스 엔진으로 마이그레이션하려면 DMS 스키마 변환을 사용할 수 있습니다. 이 서비스는 소스 스키마를 자동으로 평가하여 새 타겟 엔진으로 변환합니다. 또는AWS Schema Conversion Tool (AWS SCT) 를 로컬 PC에 다운로드하여 소스 스키마를 변환할 수 있습니다.
• 소스 스키마를 변환하고 변환된 코드를 대상 데이터베이스에 적용한 후 를 사용하여 데이터를AWS DMS 마이그레이션할 수 있습니다. 일회성 마이그레이션을 수행하거나 진행 중인 변경 사항을 복제하여 소스와 대상을 동기화된 상태로 유지할 수 있습니다. 서비스의AWS DMS 일부이기 때문에AWS 서비스가 제공하는 비용 효율성, 시장 출시 속도, 보안 및 유연성을 얻을 수 있습니다.AWS 클라우드
기본 수준에서는 복제 소프트웨어를AWS 클라우드 실행하는AWS DMS 서버입니다. 소스 및 대상 연결을 생성하여AWS DMS 어디에서 추출하고 로드할지 지정합니다. 그런 다음 이 서버에서 실행되는 작업을 예약하여 데이터를 이동합니다. AWS DMS테이블 및 관련 기본 키가 대상에 없는 경우 해당 테이블과 관련 기본 키를 생성합니다. 원하는 경우 대상 테이블을 직접 만들 수 있습니다. 또는AWS Schema Conversion Tool (AWS SCT) 를 사용하여 대상 테이블, 인덱스, 뷰, 트리거 등의 일부 또는 전체를 만들 수 있습니다.

1. 사전작업

1) 타겟 데이터 베이스 생성

  • AWS RDS MySQL로 구성 (mysql 8.0)

  • 요금 절약을 위한 같은 VPC내 같은 가용영역에 구성

  • DB 파라미터 미리 생성

    2) 소스 데이터베이스 검토

  • AWS RDS Aurora MySQL8.0 으로 구성

  • DB 클러스터 파라미터 binlog_format = ROW 로 변경한다 -> 인스턴스 재기동 필요

    3) 관련 정책 및 권한 적용

    • 정책:
      -- AmazonDMSCloudWatchLogsRole
      -- AmazonDMSVPCManagementRole (필수)

-- 정책생성(필수)
	--- 'DMS' 로 검색 -> 읽기, 태그 지정, 쓰기 모두 선택 -> 다음:태그 -> 정책 생성

-- 정책에 권한 추가(필수)
	--- 생성한 'DMS' 정책에 권한 추가 선택
	--- IAM 서비스에서 GetRole, CreateRole, AttachRolePolicy 작업 추가 (모든리소스)

-- 역할 편집
	--- IAM의 역할 메뉴에서 dmp-vpc-role 선택



--- 신뢰관계 탭에서 신래 정책 편집을 클릭한다
--- JSON 안의 "Sid": "" 부분을 삭제한다. (위 스크린샷은 이미 삭제한 상태)

4) 복제 서브넷 그룹 생성

2. 복제 인스턴스 구성
1) 복제 인스턴스 생성

1) 복제 인스턴스 세부 세팅

-- 인스턴스 명 생성: service_data_replication
-- 인스턴스 클래스 선택: t2.micro
-- 다중 AZ: 개발 또는 단일 워크로드로 구성

3. 엔드포인트 구성
1) 소스 엔드 포인트 세부 세팅


-- 소스엔드포인트 선택
-- RDS DB 인스턴스 선택: 체크
-- 수동으로 엑세스 정보제공
-- 사용자 이름과 암호 작성(필수)

 2) 대상 엔드포인트 세부 세팅
-- 대상엔드포인트 선택
-- RDS DB 인스턴스 선택: 체크
-- 수동으로 엑세스 정보제공

-- 사용자 이름과 암호 작성(필수)

4. 마이그레이션 테스크 구성

1) 테스크 구성





-- 태스크 식별자 작성: 테이블별 태스크 1개 구성(task-테이블명) 으로 구성
-- 소스 데이터베이스 엔드포인트: 설정 및 구성해 놓은 소스 엔드포인트 선택
-- 대상 데이터베이스 엔드포인트: 설정 및 구성해 놓은 소스 엔드포인트 선택
-- 마이그레이션 유형: CDC 구성을 위해 '기존 데이터 마이그레이션 및 지속적인 변경 사항 복제' 선택

-- DB인스턴스 클래스: db.t2.small
-- 스토리지 자동 조정: 비활성화

-- 컴퓨팅 리소스 연결 암함
-- IPv4
-- VPC: 위 스크린샷 참조
-- 서브넷 그룹: 위 스크린샷 참조
-- VPC 보안 그룹: 기존항목
-- 가용 영역: ap-northeast-2a

-- 위 스크린샷 설정 참조!
-- 자동백업활성화: 비활성화

5. 테스크 실행

profile
안녕하세요!

0개의 댓글