
마이그레이션에 관한 AWS 서비스에 대해
안녕하세요 클래스메소드의 이수재입니다.
온프레미스 환경에서 AWS로 마이그레이션을 하기 위해서 AWS 에서 제공하고 있는 마이그레이션 관련 서비스를 우선 조사하는 경우가 많습니다.
또한 AWS SAP 등 솔루션 아키텍트에 대한 시험을 치다보면 마이그레이션 관련 서비스가 많이 나옵니다. 하지만 실제로 써볼 기회는 많지 않기도 합니다.
이번 글에서 이런 서비스들이 어떤 서비스인지 그리고 무엇이 다른지, 어떤 상황에서 사용하면 되는지 등을 쉽게 알아보겠습니다.
각 서비스에 대해
AWS Migration Hub
AWS 마이그레이션 툴 및 서비스를 일원화하여 관리하기 위한 서비스입니다.
주요 기능으로는 마이그레이션의 진척 상황 가시화, 여러 도구의 통합 관리, 애플리케이션 마이그레이션 추적, 마이그레이션 상황 보고서 작성, 마이그레이션 전략 계획 지원, 통합 가능한 주요 AWS 서비스 등이 있습니다.
이 서비스 단독으로 위와 같은 기능을 하는 것이 아닌 아래의 서비스들과 통합하여 기능을 수행합니다.
- AWS MGN
- AWS DMS
- AWS Migration Evaluator
- AWS Application Discovery Service
AWS MGN(Application Migration Service)
AWS SMS 라는 서비스의 후속 서비스로 물리, 가상, 클라우드 환경에서 AWS로의 마이그레이션을 지원하고 있습니다.
마이그레이션의 워크플로우를 자동화하여 진행할 수 있다는 특징이 있습니다.
특히 온프레미스에서 대상 환경으로 지속적인 복제를 할 수 있어서 환경의 소스 서버를 최신 상태로 유지할 수 있습니다.
따라서 마이그레이션의 마지막 단계에서 최소한의 다운타임으로 진행할 수 있습니다.
AWS MGN의 장점으로는 위에서 설명한 기술적인 이점과 더불어 마이그레이션 작업을 효율화 할 수 있고, 애플리케이션 마이그레이션에 대해 여러 한번에 관리가 가능합니다.
또한 단계적으로 마이그레이션을 진행하여 운용 부하를 경감할 수 있습니다.
비용 적으로는 종량 과금제를 채택하고 있어서 사용한 만큼 비용을 지불하면 되며, 자동화 되어 있는 부분이 많기 때문에 휴먼 리소스에 대한 비용을 줄일 수 있습니다.
다만
- 특정 OS 버전 이상
- 일정 이상의 네트워크 대역폭 필요
- 복제 자체의 전제조건
- 특정 인스턴스 유형만 지원
등의 주의 사항이 있습니다.
개인적으로 이 서비스는 다음과 같은 상황에서 도입을 검토하는 것이 좋다고 생각합니다.
- 대규모 서버 이행 프로젝트를 계획 중
- 다운타임을 최소화하고 싶은 경우
- 리프트&시프트(리호스팅) 방식의 마이그레이션
- 단계적인 이행을 계획하고 있는 경우
즉, 프로젝트 요구 사항이나 기술적 요구 사항, 현행 시스템의 구성, 사내 컴플라이언스, 마이그레이션에 따른 비용 및 이후의 운용 비용 등을 검토하는 것이 우선시됩니다.
혹은 MGN 이외에 VMware Cloud on AWS, VMware의 증분 복제 등과 같은 서비스 및 방법을 도입하여 마이그레이션을 진행하는 것도 검토해볼 수 있습니다.
AWS DMS (Database Migration Service)
온프레미스, 가상, 클라우드 환경에서 AWS로의 데이터베이스 마이그레이션을 지원하는 서비스입니다.
동종, 이종 DB 모두 지원하고 있습니다. [1]
지속적인 복제를 지원하기 때문에 마이그레이션의 마지막 단계에서 다운 타임을 최소화 할 수 있습니다.
DMS의 장점으로는 위에서 말한 기술적인 장점과 데이터 검증 기능, 높은 가용성과 내구성 등이 있습니다.
또한 설치가 간단하고 마이그레이션에 대한 모니터링도 가능합니다.
MGN과 동일하게 종량 과금제를 채택하고 있습니다.
다만
- 모든 데이터베이스를 지원하는 것은 아님
- 데이터 유형의 제약
- 복제 지연의 가능성
- 일부 데이터베이스에서 제공하고 있는 기능이 없는 점
- 이는 마이그레이션 대상 데이터베이스와 비교해보는 것을 추천합니다
- 네트워크 대역폭의 요건
등의 주의사항이 있습니다.
복제 지연에 대해서는 다음 글을 참고하는 것을 추천합니다.
보통 고가용성이 요구되는 환경에서 AWS로의 데이터베이스 마이그레이션을 계획하는 경우 가장 먼저 검토해보는 것이 좋다고 생각합니다.
단순히 마이그레이션 작업이 우선 순위가 높고 고가용성이나 다운 타임은 우선 순위가 낮은 경우에는 백업/복원 으로 마이그레이션을 하는 것도 고려해볼 수 있습니다.
데이터베이스 마이그레이션을 위한 다른 선택지로는 Oracle을 위한 oracle GoldenGate, Attunity Replicate, mysqldump/pg_dump 등의 자체툴, 혹은 커스텀으로 개발 등이 있습니다.
AWS Migration Evaluator
클라우드 마이그레이션에 대한 평가 도구로 활용하는 서비스입니다.
마이그레이션을 하는데 필요한 비용(TCO)이나 자원 사용 현황 등을 분석할 수 있으며 상세한 마이그레이션 계획 등을 작성할 수 있습니다.
또한 이러한 내용을 바탕으로 어떤 서비스로 어떻게 마이그레이션하면 좋을지 가장 비용 최적화 된 제안을 확인할 수 있습니다.
보통 이행 전 비용 분석 및 환경 분석 드으이 사전 평가 필요하고, 이를 바탕으로 마이그레이션 전략을 검토할 때 많이 사용합니다.
마이그레이션과 주의 사항
마이그레이션은 어떤 식으로 진행되는가?
보통 다음과 같은 순서로 각 서비스를 도입하여 마이그레이션의 전체 프로세스를 검토해볼 수 있습니다.
이러한 절차는 AWS Migration Hub를 통해 일원화하여 관리함으로써 보다 효율적인 마이그레이션 프로젝트를 수행할 수 있습니다.
계획 단계
- 상세한 현상 분석
- Migration Evaluator 을 사용하여 현황 분석
- TCO 산출
- 이행 전략의 결정
- Migration Evaluator 을 사용하여 현황 분석
- 검증(파일럿) 마이그레이션
- 검증을 통한 위험도 평가 및 프로덕션 환경 마이그레이션의 계획 검토
- 마이그레이션 후의 운용 절차 확립
실행 단계 - 단계적 마이그레이션 [2]
- MGN으로 서버 환경 마이그레이션
- DMS으로 데이터베이스 마이그레이션
- 병행 가동 및 시험
- 애플리케이션의 에러 및 기능 테스트
- 데이터 베이스의 에러 및 데이터 정합성 확인
- 지속적 모니터링
최적화 단계 - 성능 최적화
- 보안 최적화
- 비용 최적화
- 운용 프로세스의 확립
그 외 주의 사항
마이그레이션을 사전 준비, 실행, 운용 시작의 3단계로 나뉘어 생각해보면 다음과 같은 내용을 주의할 필요가 있다고 생각합니다.
- 사전 준비
- 충분한 테스트 기간 확보
- 계획의 면밀한 검토 및 검증
- 백업 전략 검토
- 롤백 절차 준비
- 비용 검토
- 실행
- 작업 절차 준수
- 단계적 체크
- 운용
- 비용, 보안, 성능의 최적화
- 예기치 못한 비용이 발생할 경우의 검토
- 지속적인 컴플라이언스 준수
마무리
마이그레이션 작업은 자주 발생하는 상황이 아니라고 생각합니다. 따라서 지식으로 알고 있더라도 검증을 제대로 진행한 후에 실제로 작업을 진행하는 것이 중요하고, 확실한 절차와 대비책을 준비해두는 것이 중요합니다.
긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 must01940 지메일로 보내주시면 감사합니다.