클라우드 마이그레이션은 더 쉬운 자동화와 탄력성을 제공하여 비용을 절감하는 동시에 공급업체 종속을 줄이면서 라이선스 비용을 절감할 수 있다.
데이터베이스 마이그레이션 이유
데이터베이스 현대화 : 디지털 시대에서 경쟁을 위해 비즈니스 민첩성을 확보할 수 있도록 레거시 데이터베이스 엔진에서 최신 데이터베이스 엔진으로 데이터를 이동
데이터베이스 마이그레이션 : 엔터프라이즈 애플리케이션의 컨텍스트에서 플랫폼 간에 데이터를 이동하는 것
데이터베이스 복제 : 모든 사용자와 동일한 수준의 정보르르 공유하기 위해 한 컴퓨터/서버의 데이터베이스에서 다른 컴퓨터/서버의 데이터베이스로 데이터를 전자적으로 자주 복사
AWS로 마이그레이션의 장점
간편한 사용
AWS DMS는 드라이버나 애플리케이션을 설치할 필요가 없다.
일반적으로 소스 데이터베이스를 변경할 필요도 없다.
최소한의 가동 중지
데이터베이스 마이그레이션 과정 중 가동 중지가 거의 없다.
널리 사용되는 데이터베이스 지원
널리 사용되는 상용 및 오픈 소스 데이터베이스 엔진으로 데이터를 마이그레이션 할 수 있다.
저렴한 비용
마이그레이션 프로세스 중 사용한 컴퓨팅에 대한 비용만 지불
빠르고 쉬운 설정
AWS Management Console에서 몇분 내로 파라미터를 정의하여 task를 설정할 수 있다.
안전성
복원력과 자동 복구력이 뛰어나다.
AWS로 마이그레이션 방법
AWS DMS와 AWS Schema Conversion Tool(AWS SCT)을 사용하면 데이터베이스를 AWS로 빠르고 안전하게 마이그레션 할 수 있다.
AWS DMS를 이용하면 마이그레이션 중에서도 소스 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 최소화 할 수 있다.
동일한 데이터베이스 엔진으로 마이그레이션하거나 엔진을 전홚하여 데이터플랫폼을 현대화 할 수 있다. 또는 데이터를 복제하여 소스 및 타겟 데이터베이스를 동기화하기도 한다.
ex)
온프레미스 Oracle DB → AWS DMS → Amazon RDS for Oracle
마이그레이션에 사용되는 Tool
AWS DMS
가장 기본적인 수준에서 복제 소프트웨어를 실행하는 AWS 클라우드 서버
소스와 타켓을 연결을 만들어 어디에서 추출하고 어디에 로드할 것인지 AWS DMS에 알린다. 그후 AWS DMS에서 데이터를 이동하는 task를 예약한다.
AWS SCT
데이터베이스 엔진을 전환하려는 경우 AWS SCT가 기존 데이터베이스 스키마를 타켓 플랫폼을 변환할 수 있다.
스키마에는 테이블, 인덱스, 뷰 및 저장 프로시저와 애플리케이션 코드가 포함되어있다.
데이터베이스를 마이그레이션하기 위해서는 12단계 프로세스를 따라서 동작한다. 크게 스키마 마이그레이션, 데이터 마이그레이션, 교육 및 지원 3 부분으로 나눌 수 있다.
스키마 마이그레이션
1단계 : 마이그레이션 구상 및 평가(AWS SCT)
계획 수립을 수행을 통해 데이터베이스 스키마, 데이터 볼륨, 데이터 유형, 리소스 및 애해 관계자를 기초로 필요한 작업 범위를 이해해야 한다.
이 단계에서 수행해야 할 것은 현재 환경과 알려진 위험을 평가하고 마이그레이션에 대한 비즈니스 사례를 만드는 것이다.
이기종 데이터베이스 마이그레이션을 수행하고자 할 경우, AWS SCT를 활용한다. AWS SCT는 기존 시스템의 물리적 및 논리적 구성 요소를 카탈로그로 작성하여 마이그레이션 프로세스를 지원할 수 있다. 하나 이상의 인기있는 오픈 소스 엔진으로 마이그레이션하는 데 필요한 작업량을 평가한다.
평가 보고서는 자동으로 변환할 수 있는 항목, 수동 수정 적용이 필요한 객체 및 중요한 수정 작업이 필요한 객체를 보여준다.
2단계 : 데이터베이스 스키마 변환 (AWS SCT)
2단계에서는 데이터베이스 객체를 소스 엔진에서 타겟 엔진으로 변환하는 것이다. 여기에는 테이블, 인덱스, 제약 조건, 외래 키, 트리거 및 저장 프로시저 변환이 포함된다. 변환 과정에서도 AWS SCT가 역할을 수행한다.
AWS SCT가 단순(회색), 보통(노란색), 복잡(빨간색) 작업에 대해서 다른 색상으로 변환할수 없는 항목을 표시한다.
소스 데이터베이스 기능에 AWS SCT가 변환할 수 있는 타겟 데이터베이스의 정확히 치환할 수없는 경우 타겟 엔진의 기능을 기반으로 디자인 패턴을 사용하여 객체를 다시 코딩해야 한다.이 프로세스를 지원하기 위해 가장 많이 사용되는 소스 및 타겟 조합에 대한 디자인 패턴이 포함된 마이그레이션 플레이북을 제공한다.
플레이북은 이기종 데이터베이스 마이그레이션을 위한 모범 사례에 중점을 둔 일련의 안내서이다.
Microsoft SQL Server → Aurora MySQL
Microsoft SQL Server →Aurora PostgreSQL
Oracle → Aurora PostgreSQL
3단계 : 애플리케이션 변환 (AWS SCT)
애플리케이션 변환은 Java 또는 C와 같은 언어로 작성된 애플리케이션 코드를 새 타켓 데이터베이스에 이식하는 과정이다.
이 단계가 마이그레이션 프로세스의 가장 복잡한 측면이기도 하다. 오래 전에 더 이상 사용할 수 없는 리소스에 의해 작성된 데이터베이스에 대해 실행되는 애플리케이션이 있을 수 있다. 이러한 애플리케이션은 미션 크리티컬한 경우가 많으며 광범위한 연구 및 테스트 없이는 다시 작성하기가 어려울 수 있다.
AWS SCT를 사용하여 애플리케이션 코드에 포함된 SQL 문을 추출해 타겟 데이터베이스에서 작동하도록 SQL을 변환하고, 변환된 코드로 애플리케이션 프로그램을 다시 빌드할 수 있게 한다.
4단계 : 스크립트 변환 (AWS SCT)
스크립트 변환 단계에서는 추출, 변환 및 로드(ETL) 프로세스, 데이터베이스 유지 관리, 재해 복구 및 기타 프로세스에 사용되는 배치 스크립트를 살펴본다.
이러한 스크립트는 데이터베이스를 사용하는 애플리케이션과 직접적인 관련은 없지만 새 데이터베이스 엔진에서 작동여부를 확인하기 위해 분석이 필요하다.
5단계 : 서드 파티 애플리케이션과의 통합
많은 기업에서도 서드 파티 애플리케이션에 대한 데이터베이스를 지원하거나 서드 파티 애플리케이션 데이터베이스 액세스 하도록 해야한다.
다른 데이터베이스에 액세스 할수 있도록 일부 애플리케이션을 작성할 수 있지만 여전히 애플리케이션을 테스트하고 예상대로 작동하는지 확인해야 한다.
데이터 마이그레이션
6단계 : 데이터 마이그레이션(AWS DMS)
이 단계에서는 소스에서 타켓으로 데이터 레코드를 이동하는 프로세스이다. 흔히 데이터베이스 마이그레이션을 생각할 때 수행되는 과정이다.
대용량 데이터를 처리하고 애플리케이션을 타겟 시스템으로 전환할 수 있을 때까지 소스 시스템과 타겟 시스템은 동기화된 상태로 유지해야 하는 경우 데이터 마이그레이션이 어려울 수 있다.
또한, 타겟 데이터베이스의 유형을 변경하는 경우 타겟 시스템 요구 사항을 준수하기 위해 대부분의 데이터 값(전체는 아님)을 변환해야 한다.
AWS DMS는 전체 로드 마이그레이션, 지속적인 복제 또는 이들 조합의 세 가지 방법 중 한나로 데이터를 이동한다.
소스의 기존 데이터가 타겟으로 이전되는 전체 로드 마이레이션 도중 AWS DMS은 소스 데이터 스토어에 있는 테이블의 데이터를 타켓 데이터 스토어에 있는 테이블로 로드한다.
AWS DMS는 또한 지속적인 복제를 지원하여 타겟을 트랜잭션 활성 소스와 동기화한다.
초기 전체 로드를 사용한 다음 지속적 복제를 통해 두 가지 유형의 데이터 전송을 결합하기도 한다.
7단계 : 전체 시스템 기능 테스트
데이터 및 애플리케이션을 타겟 데이터베이스로 마이그레이션한 후 다음 단계는 전체 시스템들이 잘 동작되는지 기능 테스트를 수행한다.
8단계 : 성능 튜닝
애플리케이션에서 기능 테스트의 일부로 충족할 성능 기준을 지정하는 경우가 존재한다.
성능 문제가 발견되면 사용자 대상 애플리케이션부터 SQL 문, 데이터베이스 엔진 및 관련 스토리지 계층에 이르기까지 각 시스템 레벨에서 병목 현상이 있는지 점검을 수행한다.
9단계 : 통합 및 배포 (AWS DMS)
통합 및 배포 단계는 새로운 데이터베이스 시스템으로 전환하는 프로세스이다. 여기에는 일반적으로 애플리케이션이 새 데이터베이스 시스템으로 전환되는 방법을 자세히 설명하는 일련의 단계가 포함된다.
통합 : 처음에는 시스템이 원래 데이터베이스와 통신한다. AWS DMS를 사용하여 전체 로드 마이그레이션을 수행한 다음 지속적인 복제를 설정한다.
배포 : 데이터가 제대로 전송되고 있는지 확인하고 새 데이터베이스로 애플리케이션을 테스트 했다고 가정하면 새 데이터베이스와 통신하도록 애플리케이션을 변경한다. 이 후 지속적인 복제가 중지된다.
교육 및 지원
10단계 : 교육 및 지식 전달
이기종 마이그레이션을 수행하는 경우 팀원들이 이동하는 엔진에 익숙하지 않을 수 있다. 또한 클라우드 또는 AWS 기술에 익숙하지 않을 수도 있다.
모두가 기술을 잘 알고 있더라도 마이그레이션 하는 과정 중 애플리케이션과 앞으로 작동 방식에 대한 유용한 정보를 발견할 가능성이 존재한다. 또한 마이그레이션 과정 중 테이블, 저장 프로시저 및 애플리케이션 코드를 약간 변경했을 수 있다. 이런 경우 변경 사항이 문서화되어있는지 파악하고 해당 지식을 팀원과 공유해야 한다.
11단계 : 버전 문서화 및 제어
문서화는 시스템을 프로덕션에 투입하기 전에 해야할 가장 중요한 작업 중 하나이다.
AWS에서는 IaC를 지원하고 코드로 모든 클라우드 인프라를 관리하기 위한 서비스와 도구를 제공한다. 완전히 새로운 환경을 만들고 있기 때문에 모든 단계를 문서화할 수 있는 좋은 기회이다.
또는 모든 아티팩트를 코드로 치리하는 것도 고려할 수 있다. 버전 관리 시스템을 사용하고 데이터베이스 또는 서버 인프라의 변경 사항에 대한 코드 검토도 필요하다.
12단계 : 프로덕션 후 지원 계획
마이그레이션된 애플리케이션이 실행되면 몇 가지 지원이 필요하다. AWS를 사용하면 백업과 기타 지원 작업을 자동화 할수 있다.