[레포트] 대규모 마이그레이션을 위한 전략과 AWS의 도구들
AWS Partner Summit Korea 2022 세션중「대규모 마이그레이션을 위한 전략과 AWS의 도구들」세션을 정리해 봤습니다.
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS Partner Summit Korea 2022 세션중「대규모 마이그레이션을 위한 전략과 AWS의 도구들」세션을 정리해 봤습니다.
세션 개요
DESCRIPTION
AWS는 대규모 마이그레이션 사례들을 경험하면서 체득한 마이그레이션 전략과 이를 돕기 위한 다양한 도구들을 제공하고 있습니다. 이번 세션에서는 현재 운영 중인 업무 시스템을 클라우드로 이전하기 위한 프로세스와 단계별로 유용하게 활용할 수 있는 AWS의 도구들을 설명해 드리고, 이번 re:invent 2021에서 새로 발표한 AWS Migration Hub Refactor Spaces도 소개해 드립니다.
SPEAKERS
강연자
세션
Agenda
- 대규모 마이그레이션을 위한 전략과 AWS의 도구들
대규모 마이그레이션을 위한 전략과 AWS의 도구들
-
AWS는 업무 시스템을 클라우드로 옮기려는 고객들의 소식을 매일 들음
-
업무 시스템을 클라우드로 옮기려는 데에는 여러가지 이유가 있지만 목표는 상대적으로 같음
-
비즈니스 환경의 변화에 빠르게 대응하고 신속하게 혁신하기 위함임
-
업무 시스템의 운영 비용을 줄이기 위해서 이기도 함
-
클라우드 서비스 업체가 제공하는 규모, 성능, 운영 편의성을 이용하고 싶기도 하고 빠르게 갱신되는 보안 요구사항과 규정 준수 요구사항에 대응하기 위해서 일 수도 있음
-
이 밖에도 기업 합병이나 분할 때문에 업무 시스템을 이전해야 할 수도 있고 유지보수 기간이 다해서 하드웨어나 소프트웨어를 교체해야 할 때 클라우드 도입을 검토할 수도 있음
-
한 연구 결과에 따르면 1년 안에 50퍼센트 이상의 업무 시스템과 데이터가 퍼블릭 클라우드로 옮겨갈 것이라고 함
-
업무 시스템을 클라우드 옮기는 것을 돕기 위해 AWS는 여러 가지 도구, 프로그램, 서비스를 제공하고 있음
-
다양한 목적에 맞게 만들어진 AWS의 제품과 파트너의 제품 그리고 서드파티 업체의 제품들이 있음
-
AWS 마켓플레이스에서 이들 파트너 제품들을 손쉽게 찾아서 활용할 수 있음
-
비용 부담을 덜기 위한 인센티브 프로그램과 무료 리소스도 제공하고 있음
-
프로젝트 수행을 직접 도와주는 AWS 프로페셔널 서비스가 있고 인증된 파트너의 컨설팅 서비스도 있음
-
AWS가 준비한 여러 가지 도구와 프로그램, 서비스들이 레거시 업무 시스템을 현대화하는데 큰 도움이 될 것
-
운영 중인 업무 시스템을 클라우드로 옮기는 작업은 크게 세 단계로 나눌 수 있음
-
맨 처음 해야 하는 것은 현재 상태를 파악하는 것
-
업무 시스템을 클라우드로 전환하는 데 있어서 조직이 어느 정도 준비가 되어 있는지 점검할 필요가 있음
-
현황 진단은 변화를 가져오기 전에 기준점을 마련한다는 측면에서도 중요
-
기준점이 있어야 향후 클라우드 이행작업의 완료된 뒤에 어느 부분이 얼마나 개선되었는지 확인할 수 있기 때문임
-
현황 진단 단계에서는 또한 클라우드 마이그레이션을 통해 조직이 얻고자 하는 바가 무엇인지 비즈니스 측면에서 명확하게 정의하는 것이 중요
-
클라우드 전문 인력을 확보하는 것도 현황 진단 단계에서 빼놓을 수 없는 작업 중 하나
-
두 번째 단계는 마이그레이션 계획을 수립하는 것
-
개별 업무 시스템을 분석해서 마이그레이션 대상에 포함할 지, 포함한다면 어떤 방식으로 전환할지 등을 고민해야 함
-
클라우드 전문가를 한데 모아 클라우드 혁신 센터를 조직하는 것도 계획 수립단계에서 해야 할 일
-
업무 시스템을 배포할 클라우드 기초 환경도 준비해야 함
-
클라우드 환경 구성은 네트워크, 계정 및 권한관리, 운영 및 개발 테스트 환경 구성 등을 포함
-
마지막 단계는 업무 시스템을 클라우드로 옮겨서 재구성하는 마이그레이션 작업을 수행하는 것
-
AWS에는 클라우드 전환 준비 상태를 점검해주는 마이그레이션 레디네스 어세스먼트라는 워크숍 프로그램이 있음
-
워크숍에서 AWS의 전문가는 비즈니스 측면 3개 영역과 기술 측면 3개 영역으로 구성된 질의서를 바탕으로 고객과 함께 토론함
-
함께 토론하면서 고객의 의견을 바탕으로 현재 수준을 진단함
-
현황 진단 단계에서는 클라우드 전환을 통해 추구하는 방향을 정의하고 이를 조직 내부에 공유하는 것이 필요
-
조직이 추구하는 방향은 직원 능률 향상, 업무 효율성 증대, 빠른 변화 대응 등을 생각해 볼 수 있음
-
AWS 마이그레이션 이벨류에이터는 업무 시스템을 클라우드로 이전할 때 필요한 총 소유비용을 산정하는 서비스임
-
AWS 마이그레이션 이벨류에이터는 업무 시스템 서버의 CPU 코어 수, 메모리와 스토리지 자원의 사용률과 같은 정보를 수집함
-
수집한 정보를 바탕으로 클라우드 리소스 유형과 비용지불 모델을 다양하게 조합하고 비교해 보면 적절한 클라우드 적용 방안을 찾음
-
총소유비용을 계산해보고 클라우드 전환에 대한 비용적 측면의 비즈니스 케이스를 도출
-
클라우드 전문가 집단은 인프라스트럭쳐 관리자, 보안 전문가, 개발자, 데이터베이스 관리자 등 다양한 전문가가 참여하는 것이 좋음
-
이들이 각각의 전문성을 기반으로 클라우드 아키텍트, 시스템 책임자, 플랫폼 엔지니어 등의 역할을 수행함
-
클라우드의 비용을 분석하는 전문가와 클라우드 교육 전문가도 클라우드 전문가 집단에 포함할 필요가 있음
-
계획 수립 단계는 포트폴리오 정리, 클라우드 혁신 센터 구성, 기초 플랫폼 환경 구성 작업으로 이루어져 있음
-
업무 시스템을 클라우드로 이전하는 계획을 수립하기 위해서는 먼저 포트폴리오를 정리하는 것이 필요함
-
포트폴리오 정리 작업은 대상 업무 시스템에 대한 자료를 수집하는 것부터 시작
-
업무 시스템 인벤토리 정보와 테크니컬 아키텍처, 데이터 아키텍처, 네트워크 아키텍처와 같은 시스템 아키텍처가 자료 수집의 대상임
-
서비스 수준 계약이나 운영 수준 계약과 같은 성능 보장 정보 그리고 담당자의 노하우 같은 정보 또한 자료 수집의 대상임
-
이런 정보들은 인터뷰를 통해 수집하기도 하고 자동화 도구를 이용해서 수집하기도 함
-
AWS 애플리케이션 디스커버리 서비스는 자료 수집을 돕는 서비스임
-
자료는 대상 서버에 에이전트를 설치해서 수집하기도 하고 VMware의 경우 에이전트 설치 없이 커넥터 서버를 통해 수집하기도 함
-
어떤 클라우드 서비스를 활용해서 어떻게 아키텍처를 구성할지 정하는 것이 클라우드 혁신 센터의 역할임
-
얼마의 비용이 들지 예측하고 비용 효율적인 아키텍처를 구성하는 것이 중요
-
클라우드 관리팀을 교육하는 것도 필요함
-
시간이 지날수록 업무 시스템을 관리하는 클라우드 전문가는 늘어나게 됨
-
이들의 이해관계를 조율하고 표준화된 아키텍처를 만드는 것이 클라우드 혁신 센터의 역할
-
하나의 인프라 관리 체계 안에서 여러 업무를 분리해야 함
-
이러면 업무 간 경계가 모호해지고 복잡도가 증가하게 됨
-
작업 추적도 어려워지고, 업무 시스템 담당자의 작업에서 충돌이 발생할 수도 있음
-
이런 이유로 서로 연관이 있는 업무 시스템을 묶어서 별도의 AWS 계정으로 관리하는 것이 효과적
-
다수의 AWS 계정으로 대규모 마이그레이션을 위한 기초 플랫폼을 구성하면 잘못된 작업으로 인한 영향 범위를 최소화할 수 있음
-
각 업무 시스템별로 서로 다른 보안 체계를 적용하기도 쉬워짐
-
AWS 컨트롤 타워는 다수의 AWS 계정을 효과적으로 구성하게 해주는 서비스임
-
AWS 컨트롤 타워를 이용하면 싱글 사인 온을 포함한 사용자 계정 관리 체계, 작업 추적 관리 체계 등을 갖춘 플랫폼을 빠르게 만들 수 있음
- 이행 단계에서는 앞서 포트폴리오 정리단계에서 워크로드 별로 결정한 7거지 패턴에 따라 마이그레이션을 진행함
-
Relocate는 Onprem에서 Vmware를 사용하는 경우 Vmware Cloud on AWS로 이동함
-
Behost는 수동 혹은 AWS Application migration service를 이용해서 Onprem의 그대로를 클라우드로 복사함
-
RePlatform은 어플리케이션을 유지하며 OS, 미들웨어를 변경하고 CICD도 재구축함
-
Refactor 혹은 rearchitect는 MSA 전환, Serverless 도입 등 어플리케이션의 현대화를 함꼐 진행함
-
리퍼체싱은 Onprem의 서비스를 중단하고 비즈니스 요구에 대응하는 SaaS 솔루션으로 재구매함
-
Retain은 Onprem에 워크로드를 유지함
-
Retire는 사용하지 않는 서비스를 중단함
-
Vmware Cloud on AWS는 AWS와 Vmware가 손잡고 내놓은 솔루션
-
Vmware Cloud on AWS는 온프레미스에서 사용 중인 vSphere, vSAN 등으로 구성된 Vmware 환경과 동일한 환경
-
Vmware HCX를 이용해 Onprem Vmware 워크로드를 Vmware Cloud on AWS로 일괄적으로 옮기거나 일시적인 중단과 함꼐 옮길 수 있음
-
마이그레이션 이후에는 AWS Service 들을 바로 사용할 수 있음
-
AWS Shield를 통해 DDOS 방어를 할 수 있고 Amazon SageMaker를 통해 AI 기능을 추가할 수도 있음
-
Application Migration Service 콘솔에서 복제를 시작하면 에이전트로부터 데이터를 수신하고 이 데이터를 스테이징 AWS EBS 볼륨에 씀
-
데이터는 전송 중 압축 및 암호화 됨
-
실시간 복제가 된 상태에서 Cut Over를 실행하면 AWS Application Migration Service가 기본적으로 AWS에서 부팅 및 실행되도록 소스 서버를 자동으로 변환함
-
시작된 인스턴스가 AWS 제대로 작동하는지 확인함
-
시작된 인스턴스가 제대로 작동하면 소스 서버를 사용 중지할 수 있음
-
소스 서버를 모두 마이그레이션 하면 AWS Application Migration Service 도 정리할 수 있음
-
Sharepoint, SAP ERP와 같은 솔루션, Oracle, SQL Server, SAP Hana와 같은 데이터베이스를 옮길 수 있음
-
리눅스와 윈도우를 지원하고, 베어메탈 뿐만 아니라 OpenStack, Vmware, Azure, GCP 위의 가상 머신도 지원함
-
지원하는 전체 목록은 AWS Application Migration Service 홈페이지에서 확인 가능
-
AWS에서는 기업이 DevOps 방식을 사용하여 제품을 좀 더 빠르고 안정적으로 빌드 및 배포할 수 있도록 유연한 서비스 세트를 제공함
-
이 서비스들은 인프라 프로비저닝 애플리케이션 코드 배포, 소프트웨어 릴리스 프로세스 자동화, 애플리케이션 및 인프라 성능 모니터링을 간소화함
-
이렇게 빌드와 배포과정이 자동화 되면 무엇보다 배포과정에서 두려움이 사라짐
-
메뉴얼 배포에서는 배포 시 마다 혹시라도 장애가 날까봐 조마조마하며 배포했다면 빌드 배포 파이프라인을 자동화하면 자동으로 배포하고, 테스트하고, 점진적 배포과정에서 오류가 모니터링 되면 신속히 롤백할 수 있기 때문임
-
그래서 개발팀은 자신감을 갖고 새로운 기능을 더 빠르게 더 자주 고객께 전달할 수 있음
-
상용 데이터베이스에서 오픈소스 데이터베이스로 전환도 함께 진행
-
또한 Graph DB, Document DB, OpenSearch, Redshift 와 같이 목적에 맞는 DB로 갈아타고 있음
-
데이터베이스 마이그레이션을 위한 도구는 AWS Database migration service가 사용됨
-
AWS Database migration service는 Oracle에서 Oracle로의 마이그레이션과 같은 동종 마이그레이션뿐 아니라 Oracle 또는 Microsoft SQL Server에서 Amazon Aurora로의 마이그레이션과 같은 다양한 데이터베이스 플랫폼 간의 이기종 마이그레이션도 지원함
-
AWS Schema Conversion Tool을 사용하면 소스 데이터베이스 스키마와 대부분의 데이터베이스 코드 객체를 대상 데이터베이스와 호환되는 형식으로 자동으로 변환하여 예측 가능한 방식으로 이기종 데이터베이스 마이그레이션을 수행할 수 있음
-
DB와 App 이외도 온프레미스에는 많은 데이터가 있음
-
워크로드에 맞는 AWS의 스토리지 서비스를 선택하고 데이터 전송 서비스를 통해 데이터를 이동함
-
AWS Snowball은 오프라인 데이터 전송 디바이스로, 온프레미서 데이터 센터에 가져가 데이터를 복사하고 AWS 데이터 센터로 보내 데이터를 옮겨주는 서비스임
-
용량에 따라 Snowcone, Snowball Edge 등의 옵션이 있음
-
AWS DataSync 는 네트워크 대역폭을 최적화하며 온프레미스에서 AWS 스토리지 간의 데이터 이동을 가속화하는 온라인 데이터 전송 서비스임
-
온프레미스에서 주로 사용되는 모델은 견고한 시스템 모델임
-
견고한 시스템은 난공불락의 성을 쌓는 것과 비슷함
-
무너지지 않는 성을 쌓아 MTBF를 최대화 시킴
-
클라우드에서는 회복탄력성을 갖춘 시스템을 지향함
-
회복탄력성이 있는 시스템은 장애 발생시 신속하게 복구하는데 초점을 맞춤
-
MTTR 즉 Mean Time To Repair을 최소화함
-
장애 복구 시간을 줄이면 availability 99,9 혹은 그 이상도 달성할 수 있음
-
리팩터 스페이스는 모놀리식 애플리케이션용 마이크로서비스로 분리할 때 많이 사용하는 스트랭귤러 패턴용 서비스형태로 제공
-
Refactor Spaces 환경은 AWS 계정 간의 연계 통로가 되어 개별 계정의 독립성을 유지하면서도 기존 및 신규 서비스가 통신하도록 허용함
-
즉 레거시 애플리케이션과 신규 마이크로서비스를 분리된
-
AWS 계정에서 개발하고 신규 마이크로서비스가 준비되는데로 외부 트래픽을 점진적으로 신규 서비스로 이동할 수 있음
-
우선 리펙터 스페이스 환경을 생성함
-
환경에는 스트랭귤러 패턴을 위한 애플리케이션 프록시가 생성됨
-
그리고 레거시 애플리케이션과 새 마이크로서비스가 배포될 계정을 추가함
-
꼭 분리된 계정일 필요는 없음
-
레거시 애플리케이션을 배포하고 리펙터 스페이스와 연결시킴
-
기본 라우팅이 레거시 애플리케이션으로 가도록 함
-
신규 애플리케이션을 개발하고 배포함
-
Refactors Space에서 API의 Prefix를 기준으로 신규 애플리케이션 에서 처리할 수 있는 API는 신규 서비스에서 처리되도록 API 라우팅을 조절함
참고
본 블로그에서 사용한 이미지는 AWS Summit Korea에서 제공된 발표자료와 영상을 사용했습니다.