mingming

AWS SCT & DMS 이기종 데이터베이스 마이그레이션 본문

AWS Service

AWS SCT & DMS 이기종 데이터베이스 마이그레이션

mingming_96 2024. 2. 10. 01:11

구현하고자 하는 아키텍쳐는 위와 같습니다. 기존 운영중인 오라클 데이터베이스를 Aurora PostgreSQL로 마이그레이션 하려합니다. 마이그레이션 과정은 다음과 같습니다.

  1. 먼저, SCT를 이용해 오라클 데이터베이스의 스키마를 변환 후 Aurora postgreSQL로 적용시킵니다.
  2. DMS 서비스를 이용해 데이터를 이관합니다.

 

SCT(Schema Conversion Tool)

AWS SCT(AWS Schema Conversion Tool)는 관계형 데이터베이스를 AWS 클라우드의 관리형 데이터베이스 서비스로 마이그레이션하기 위한 도구입니다. 온프레미스 데이터베이스를 Amazon RDS, Amazon Aurora, Amazon Redshift 등의 클라우드 기반 데이터베이스로 이주할 때 사용됩니다. SCT는 데이터베이스 스키마를 변환하고, 마이그레이션할 데이터베이스를 대상 서비스에 맞게 최적화하여 클라우드로의 마이그레이션을 단순화하고 자동화합니다.

 

SCT 설치

SCT가 지원하는 운영체제는 다음 SCT 사용설명서 링크에서 확인할 수 있습니다. 저는 윈도우10 환경에서 설치를 진행하였습니다.

위의 링크에서 설치 파일 다운로드 후 압축을 풀어준  설치파일을 실행하 설치를 진행합니다.

 

설치 완료 후 해당 경로의 SCT 실행 파일을 실행시킵니다.

 

SCT Project

상단의 File을 클릭하여 New Project Wizard를 선택합니다.

 

Step1.

Source engine 과 Target engine을 선택합니다.

 

Step2.

Source Database의 서버 정보를 입력후 연결을 확인합니다. 현재 온프레미스와 Site to Site VPN 연결을 해둔 상태이기 때문에 사설 아이피로 통신이 가능합니다.

 

Step3.

변환할 스키마를 선택합니다. 필요한 스키마만 선택할 수있습니다.

 

Step4.

스키마 이관 적합성 검사를 진행합니다. 평가 보고서를 pdf로 받아볼 수 있습니다.

migration-report-Oracle-2024-01-05-05-19.pdf
0.22MB

 

Step5.

target database의 연결정보를 입력 후 연결을 확인합니다.

 

Mapping rule

Oracle과 PostgreSQL의 스키마를 일치시키기 위해 mapping rule을 추가해주어야 합니다. Oracle의 테이블 과 컬럼은 대문자로 되어있어 이를 소문자로 바꾸는 규칙과 숫자형의 데이터 타입을 바꿔주는 규칙입니다. 룰을 설정 후 json으로 내보낼 수 있습니다.

mapping_rules.json
0.00MB

 

 

mapping rule 설정 후 target database에 스키마 적용 후 스키마가 정상적으로 적용되었는지 확인합니다. 이렇게 스키마 변환 작업은 마무리 됩니다.

 

DMS

SCT를 이용해 스키마 이관 작업은 마무리되었으나 데이터는 넘기지 않은 상태입니다. AWS DMS 서비스를 이용해 데이터를 손쉽게 이관할 수 있습니다. 작업 단계는 다음과 같습니다.

  • Source와 Target Endpoint를 생성하여 연결이 잘 되는지 확인합니다.
  • 서브넷 그룹을 생성합니다. 이때 서브넷 그룹은 Replication Instace가 위치하는 서브넷 그룹입니다.
  • Replication Instance를 생성합니다. 실제 작업을 수행하는 Instance입니다.
  • Source DB에서 Target DB로 마이그레이션 하기 위한 마이그레이션 태스크(task)를 생성합니다.
  • Task를 실행 후 데이터가 잘 넘어갔는지 확인합니다.

 

Migration Task

  • 마이그레이션 유형: 기존 데이터 마이그레이션
  • 대상 테이블 준비 모드: 아무 작업 안함
  • 선택규칙: 소스DB에서 SESAC 스키마의 모든 테이블을 마이그레이션하므로 스키마의 모든 테이블 이름을 다 포함하도록 설정합니다.
  • 변환규칙: PostgreSQL은 기본적으로 소문자를 취급하기 때문에 스키마와 테이블,컬럼들을 소문자 변경하도록 변환규칙을 설정합니다.

 

Task 결과 확인

 

이렇게 데이터베이스 마이그레이션 작업이 완료되었습니다.  오라클과 포스트그레의 데이터 타입이 다르기 때문에 추가해줘야 할 규칙이 많아 애를 먹었습니다. 다만 현재 테이블의 개수가 적고 오브젝트 또한 테이블 뷰 시퀀스로 한정적이여서 그나마 무사히 작업을 마칠 수 있었습니다.