본문 바로가기

PRODUCT/DBMS

Oracle을 Azure Database for PostgreSQL로 마이그레이션 하기

 

최근 많은 기업이 클라우드 이용을 확대하면서 기존 데이터베이스 환경에도 변화를 주고 있습니다. 이를 움직이는 힘은 애플리케이션 현대화입니다. 실제로 많은 기업이 점진적인 현대화 여정의 하나로 직접 구축해 내부에서 운영하던 상용 데이터베이스를 클라우드 기반 완전 관리형 오픈 소스  데이터베이스 서비스로 옮기고 있습니다. 이번 포스팅에서는 레거시에서 가장 중요한 임무를 맡아 온 Oracle 데이터베이스를 Azure Database for PostgreSQL로 마이그레이션 하는 것에 대해 알아보겠습니다.

 

, 옮기는가?

 

상용 데이터베이스를 오픈 소스 데이터베이스로 바꾸는 이유는? 불과 10년 전만 해도 결단을 내리기 쉽지 않은 선택이었습니다. 하지만 2021년 시점으로 보면 옮기지 않을 이유가 없습니다. 관리형 오 소스 데이터베이스 서비스로 옮기면 경제성, 유연성, 최적화 모두가 유리합니다. 경제성은 새삼 강조할 필요가 없습니다. Oracle과 오픈 소스 데이터베이스는 이리 라이선스와 유지보수 비용 측면에서 비교 불가입니다. 유연성도 마찬가지입니다. 기업의 IT 투자에 있어 클라우드는 모든 것의 전제 조건입니다. 하이브리드, 멀티 클라우드를 염두에 두고 투자를 하는 것이 새로운 관행으로 자리 잡고 있습니다. 오픈 소스 데이터베이스는 어떤 클라우드 사업자의 서비스를 이용하건 특정 기업에 종속될 우려가 없습니다. 사내에서 직접 운영하건, 클라우드 서비스를 쓰건 매우 유연하게 배포할 수 있습니다. 관리 방식 역시 직접 챙기는 것부터 내부에 전문 인력이 없어도 완전 관리형 서비스를 통해 데이터베이스 관리 부담을 덜고 애플리케이션 개발과 최적화에 전념할 수 있습니다. 최적화의 경우 Oracle 같은 상용 데이터베이스는 성능 튜닝 등을 위해 외부 전문 인력 투입하랴, 관련 도구 이하랴 이래저래 추가 비용이 발생합니다. 오픈 소스는 상대적으로 최적화를 위한 선택지가 다양하며, 완전 관리형 서비스를 쓰면 최적화의 편의성까지 높습니다.

 

어떻게 옮길 것인가?

 

이득이 아무리 커도 기술적으로 어렵다면 아무도 마이그레이션에 나서지 않을 것입니다. 데이터베이스 이전은 매우 부담스럽습니다. 살펴야 할 것이 너무 많습니다. 사람, 프로세스, 기술 전체를 봐야 하므로 마이그레이션 경험이 없다면 선뜻 나서기 어렵습니다. 다행 2021년 기준으로 보면 Oracle Azure Database for PostgreSQL 바꾸는 것은 이제 매우 쉬운 일입니다. 의지만 있다면 바로 시작할 수 있는 과제가 되었습니다. 마이그레이션 도구는 이제 꽤 지능적입니다. 여기에 락플레이스처럼 오픈 소스 데이터베이스 이전 프로젝트 수행 경험이 풍부한 전문 조직의 도움을 받으면 매우 빠르고 효율적으로 옮길 수 있습니다.

 

이행 전략

 

Oralce 데이터베이스를 Azure Database for PostgreSQL로 전환하는 과정은 크게 환경 분석, 진단 및 계획, 마이그레이션, 검증 및 튜닝, 교육 및 기술 이전으로 나눌 수 있습니다. 환경 분석 단계에서는 As-Is, To-Be 분석을 합니다. 이를 거친 후 호환성 확인과 함께 프로젝트 수행 기간과 투입 인력 산출 작업을 진단 및 계획 과정에서 합니다. 본격적인 마이그레이션 작업에 들어가면 데이터베이스 스키마, 데이터 및 오브젝트 전환 작업을 합니다. 이전이 마무리되면 데이터 정합성 확보, 기능 및 성능 테스트와 튜닝이 뒤따릅니다. 여기까지 마친 다음 교육과 기술 이전이 이루어집니다.

 

CloudPilot을 이용한 평가

 

전체 절차 중 사전 준비와 이전 과정을 간략히 살펴보겠습니다. Oracle Azure Database for PostgreSQL로 이전하기에 앞서 CloudPilot을 이용해 평가를 수행합니다. CloudPilot은 애플리케이션 현대화를 위해 많이들 사용하는 도구입니다.

 

CloudPilot을 사용하면 Oralce 아니라, 이 위에서 운영하는 애플리케이션까지 투명하게 사전 평가를 할 수 있습니다. 애플리케이션 측면에서 VM/Container/PaaS 중 어떤 클라우드 환경으로 옮기는 것이 적합한지, 코드나 데이터베이스 변경이 필요한지, 비용 효율은 어느 정도인 등을 일목요연하게 파악할 수 있습니다. 다음은 Oracle 데이터베이스를 Azure Database for PostgreSQL로 전환하는 것에 대한 적합도 평가 및 소요 비용을 보여주는 화면입니다. 이 외에도 CloudPilot은 마이그레이션 상세 가이드, TCO 분석까지 친절히 안내합니다.

 

ora2pg 도구로 마이그레이션 수행

 

본격적인 마이그레이션 단계에서는 PostgreSQL 커뮤니티가 개발해 오픈 소스로 제공하는 유용한 도구인 ora2pg와 애저가 제공하는 Azure Database Migration Service를 이용해 작업합니다. 먼저 ora2pg를 이용해 마이그레이션 작업을 평가하여 특별한 주의가 필요한 Oracle 객체가 무엇인지 파악하고, 이전에 필요한 인력과 시간 등을 추정합니다. 그러고 나서 ora2pg를 이용해 Oracle 스키마와 Oracle 객체를 Azure Database for PostgreSQL과 호환되는 스키마로 변환합니다. 이후 과정은 Azure Database Migration Service에서 마이그레이션 파이프라인에 따라 진행됩니다.

 

Azure Database Migration Service 인스턴스는 매우 직관적인 환경을 제공합니다. 마이그레이션 서비스, 프로젝트, 잡 생성 과정을 거친 다음 이관을 시작합니다. 작업자는 대시보드를 통해 데이터 로드 과정을 모니터링할 수 있습니다.

참고로 마이그레이션 증분 데이터 확인은 다음과 같이 Oracle에서 할 수 있습니다.

예로 소개한 Oracle 데이터베이스를 Azure Database for PostgreSQL로 전환하는 것은 작은 시작일 수 있습니다. 클라우드 우선 전략을 내세우는 조직이라면 애플리케이션 현대화라는 큰 전략 아래에 전통적인 데이터베이스 운영과 클라우드 기반 데이터베이스 서비스 사이에 균형점을 찾아갈 것입니다. 오픈 소스 기반 클라우드 데이터베이스 운영 전략 수립 및 레거시 마이그레이션에 대한 상세 내용은 락플레이스로 문의 바랍니다.