AWS DMS 동작원리 , Q&A

DMS 구축 프로젝트를 진행하면서 DMS 전반의 동작원리 및 실제 사용 관리에 대하여 적어보았습니다.
왕너구리's avatar
Oct 23, 2024
AWS DMS 동작원리 , Q&A
DMS(Data Migration Service) 는 IDC 환경 On-premise에서 AWS Cloud 로 데이터를 마이그레이션 할 수 있게 도움을 주는 CDC(Change Data Capture) 솔루션이다. 동종 데이터베이스 , 이기종 데이터베이스 등 여러 Target 으로 정합성을 보장하면서 마이그레이션 할 수 있는 장점이 있다. 기존 CDC 솔루션의 같은 경우 라이센스 정책에 의해서 “라이센스 계약” + “인건비”가 소요 된다. AWS DMS 경우 RI 인스턴스 사용료 만 내면 된다. 물론 여기에 RI 사용료 + 스토리지 사용료 비용이며, 데이터 전송 비용은 무료(Free)이다. 다른 EC2 보다 사용료가 비싸지만 타 솔루션 보다는 마이그레이션 용도로 사용하기에 적합하다 생각한다.
 

DMS 동작원리

Source Database에서 REDOLOG 변경사항을 읽어와 DMS Replication Instance에서 변경하고 TARGET에 반영하는 방식이다. Oracle이 Source일 경우, 바이너리 방식과 로그 마이너 방식이 있고 Redolog, Archivelog 를 읽고 DMS RI에서 변경 후 TARGET에 적용하는 프로세스 입니다. 로그마이너 방식을 사용할 경우 Oracle Source에 DBMS 패키지를 사용하여 LOG을 읽기 때문에 부하가 더 많이 감. 바이너리 모드를 권장함.

DMS RI(Replication Instance)

내부 엔진에는 Repository DB (SQLITE) 와 여러 컴포넌트들로 구성이 되어있다. RI는 중단할 수 없으며, 중단 하고 싶다면 삭제해야한다. 사용하지 않는다면 TYPE을 가장 낮은 것으로 줄이면 된다.

DMS Endpoint (엔드포인트)

Source, Target을 지정하는 부분 이며, Oracle Database 경우 Binary mode등 , Connection 관련 파라미터를 관리한다. Config 파일 같은것이라고 생각하면 편하다. 변경 하려면 TASK를 완전 중단 하고 변경해야함.
notion image
 

유지기간 기간 (M/A 기간)

DMS는 유지기간 관리가 있으며, 해당 기간에 “DMS 자동 업그레이드” 기능을 켰다면 자동으로 재기동 되며 업그레이드 해준다. 마이그레이션 용도가 아닌 운영 모드로 운영할 경우 해당 기간에는 장애가 발생 할 수 있다. 따라서 DMS 자동 업그레이드 기능을 해지하는 것을 권장한다. 해당 기간에 그외 중단되는 이유가 한가지 더 있다. DMS OS Patch가 내부적으로 계획되어 있으면 적용한다. 그러면서 TASK 중단이 발생 한다. 해당 기간 유의 하여 사용이 필요하다.
notion image
 

Q&A

알맞은 TASK개수는 몇개인가요 ?
—> TASK 개수를 증가 할 경우 Source 부하가 커집니다. 주기적으로 실시간 Log 체크, Archive로그 감지 , 아카이브 디렉토리 위치 확인 등 약 5개의 쿼리를 실시간으로 TASK마다 계속 수행됩니다. Source 리소스에 맞게 TASK 개수를 조정 하는 것이 바람직 합니다.
Source에 부하를 주나요 ?
—> 네 부하가 발생합니다. TASK에서 매초 마다 리두로그를 감지하는 쿼리를 수행합니다. TASK가 10개면 60초면 최소 600번의 쿼리가 수행됩니다.
RI 선정은 어떻게하나요 ?
—> FULL LOAD는 메모리를 많이 사용합니다. 따라서 빠르게 초기적재하기 위해 RI TYPE을 적절한 것으로 설정하시고, CDC 모드에서는 적절한 RI로 낮추어 사용 하는 것을 권장드립니다. 또한 LOB도 메모리를 많이 소요합니다. LOB이 많다면 조금더 큰 RI로 변경을 권장드립니다. 테스트 후 적절한 RI 를 찾는 것이 중요합니다.
Mview 동기화는 어떻게 하나요 ?
—> Oracle to PG는 일부 Mview 동기화를 지원합니다.
—> 전체 DELETE 후 INSERT가 발생하며, 동기화에 상당한 리소스를 사용합니다.
—> Mview 원천 테이블을 동기화 하고, PG에서 Mview를 생성 하는 것을 권장드립니다.
구성에 필요한 사항은 무엇 인가요 ?
—> Supplement Log (PK,MIN,UI) 등 설정.
—> Archivelog 모드 필수
—> 넉넉한 백업 보관주기 (Default 7일)
 
DMS 고려서항
—> Archivelog Switch 사이즈 조회, 클 수록 Redo를 많이 읽어야 하기 때문에 지연시간 발생 할 수 있음.
—> DML 발생 시간 확인.
Archivelog가 없어 DMS 동기화 실패시 복구 방법
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Log.html
—> 복구 확인 ( select text from table(rdsadmin.rds_file_util.read_text_file(‘BDUMP’,’dbtask-xxxxxxxxxx-44.log’));
FULLLOAD + CDC 모드 운영시 문제 발생할 경우
—> Table 1개가 동기화가 안될 경우 -> 1개만 다시 Full Load & CDC
—> TASK 전체가 안될 경우 —> TASK중지 -> TASK 전체 다시로드  Full Load & CDC
 
 
Share article

guri-tech-blog