본문 바로가기

AWS(Amazon Web Service)

AWS DMS를 이용해서 Oracle to PostgreSQL 데이터 전송

AWS DMS(Database Migration Service)는 데이터베이스를 빠르고 안전하게 이동이 가능하며, 가동 중단 시간 및 데이터 손실을 방지하는 관리형 마이그레이션/복제 서비스입니다. AWS DMS는 20개 이상의 데이터베이스를 지원합니다.

 

AWS의 DMS를 이용해서 Oracle의 테이블을 PostgreSQL로 이관하는 방법을 소개합니다. 여기에서는 이관에 대한 Schema를 변경하고, Assessment 할 수 있는 SCT(Schema Conversion Tool)에 대한 부분은 제외하고 테이블 데이터만 이관하는 방법에 대해 다루고 있습니다.

 

Database Migration Service

 

서브넷

DMS에서 사용하는 서브넷으로 VPC내 서브넷 중에서 DMS복제 인스턴스를 배치할 서브넷을 생성합니다. 일반적으로 VPC에서 제공된 서브넷에서 두 개의 AZ를 묶어 가상의 서브넷을 생성합니다.

 

복제 인스턴스

데이터를 이관하기 위해서 일을 하는 서버입니다. EC2형태의 인스턴스 클래스를 지정할 수 있으며, 메모리가 부족하게 되면 복제 작업 중 오류가 발생되며, CDC(지속적인 복제) 시 이상 상황으로 인해 지연이 발생된다면 지연데이터를 저장하기 위한 스토리지도 필요하게 됩니다. 복제 인스턴스를 생성합니다.

 

엔드포인트

복제인스턴스에서 소스데이터베이스와 타겟데이터베이스에 연결하기 위한 도구입니다.

소스 데이터베이스에 대한 연결은 소스엔드포인트로 생성하고, 타겟 데이터베이스에 대한 연결은 타겟엔드포인트를 생성합니다. 소스나 타겟의 IP주소, 포트, 계정, 암호 정보로 구성합니다.

엔트포인트 구성후 연결테스트를 해서 복제인스턴스에서 해당 데이터베이스로 연결이 되는지 확인하고,

연결이 안되는 일반적인 경우로는 복제인스턴스에서는 소스나 타겟엔드포인트로 Outbound가 필요하기 때문에 SG(Security Group)에 아웃바운드 정책에 필요합니다. Oracle 서버의 IP, 포트, PostgreSQL서버의 IP, 포트로 정책이 있어야 하며, 또한 Oracle서버와 PostgreSQL에서 사용하는 SG에 인바운드정책으로 복제인스턴스가 들어올 수 있도록 설정해야 합니다.

 

태스크

복제인스턴스와 두개의 엔트포인트를 이용해 실제 할 작업을 생성합니다.

어떤 스키마의 어떤 테이블을 선택할 건지 또는 전체 테이블을 선택할 건지 정의하고, 초기 전체로드만 할 건지 CDC(지속적인 복제)를 할 건지에 맞게 구성을 합니다.

주가로 지속적인 복제를 하기 위해서는 소스 데이터베이스에 추가로 구성해야 하는 부분이 있으나 여기서는 다루지 않겠습니다.

 

CloudWatch

위와 같이 구성이 끝나면 CloudWatch 대시보드를 이용해서 복제인스턴스의 메모리, 스토리지, CPU상태를 모니터링하며, 태스크에 대한 모니터링을 수행합니다.