[AWS] MGN

1. MGN (Application Migration Service) 이란?

AWS MGN은 물리적, 가상 또는 클라우드 서버의 AWS 이주를 단순화해주는 Lift and Shift (Rehost) 솔루션이다.

Lift and Shift (Rehost) 란 기존 인프라를 변화 없이 그대로 마이그레이션 하는 방법론이다. 이외에도 ReplatformRefactoring 이 있다.

MGN은 다운타임을 최소화하여 마이그레이션하는 동안에도 서비스가 가능하며, 증분 스냅샷을 이용한 지속적인 동기화로 마이그레이션 중에 업데이트되는 데이터도 반영한다.

2. MGN 동작 방식

image

1) AWS Replication Agent

소스 서버가 Private하다면 외부에서 서버로 요청을 보낼 수 없다.

따라서 소스 서버에 Replication Agent를 설치하여 AWS MGN에 먼저 요청을 보내는 방식으로 통신한다.

MGN 엔드포인트와 443번 포트로 통신한다.

2) Staging

Staging 서브넷 을 구성하고 Replication 인스턴스 를 생성하여 소스 서버의 데이터를 복제하고, 데이터를 EBS 볼륨에 기록한다. 업데이트 되는 데이터가 있다면 새로운 스냅샷을 생성해 최신 상태로 유지한다.

소스 서버의 모든 데이터는 암호화되어 Replication 인스턴스와 1500번 포트로 통신한다.

실제 마이그레이션된 서버를 생성하기 전에 복제된 데이터를 사용하여 서버를 구성했을 때 문제가 없는지 테스트를 진행한다. 이 때 드라이버, 네트워크, 운영체제 라이센스 등이 AWS 인스턴스에서 부팅되도록 변환해주는 Conversion 인스턴스가 잠시 생성된다. Conversion 인스턴스는 해당 작업을 할 때에만 일시적으로 실행된 후 종료된다.

Replication 인스턴스와 MGN 엔드포인트는 443포트로 통신한다.

3) Production

테스트가 완료된 후, Cutover를 진행하여 실제 운용되는 서버를 구축한다.

Cutover로 생성된 서버는 더이상 staging 지역의 볼륨과 동기화되지 않는다.

새로 cutover를 할 때마다 해당 시점의 가장 최근 EBS스냅샷으로 서버가 생성된다.

3. MGN 구성

VMWare에 구성된 Ubuntu 18.04 LTS 환경의 웹서버를 MGN을 사용해 AWS로 마이그레이션 한다.

  1. Ubuntu에 웹서버와 ssh를 설치한다.

    $ apt-get -y install apache2 openssh-server
    $ systemctl enable --now ssh
    
  2. Ubuntu에 Replication Agent 를 설치한다. python3가 설치되어 있어야 한다.

    $ wget -O ./aws-replication-installer-init.py https://aws-application-migration-service-ap-northeast-2.s3.amazonaws.com/latest/linux/aws-replication-installer-init.py
       
    $ python3 aws-replication-installer-init.py
    # 리전과 접근 가능한 권한이 있는 IAM 사용자 키 입력
    # 복제할 디스크 선택
    

    완료되면 MGN 소스 서버에 추가되어 데이터 복제가 진행된다.

    image

    Replication 인스턴스는 주기적으로 스냅샷을 생성하여 소스 서버의 데이터를 동기화한다.

  3. 복제가 완료되면 Ready for testing 상태가 된다.

    image

    Launch setting 탭에서 시작 템플릿을 수정한다. ami, 서브넷, 보안그룹, 인스턴스 유형, 키페어 등을 설정할 수 있다. 이 때, 퍼블릭 접근이 허용되도록 설정한다. 시작 템플릿을 수정하면 템플릿 버전이 업데이트되는데, 수정된 버전으로 직접 바꿔주어야 한다.

    시작 템플릿 설정을 완료했다면 Launch Test Instances 를 실행해 테스트를 진행한다.

    image

    image

    image

    Test in progress 상태로 바뀐다. Conversion 인스턴스가 잠시 생성되었다가 종료되고 Test 서버 를 생성한다.

  4. 테스트가 완료되면 Test 서버는 종료되고 Ready for cutover 상태가 된다.

    image

    image

    Launch cutover instances 를 실행하여 실제 운용되는 서버를 생성한다.

    이때도 마찬가지로 Conversion 인스턴스가 생성/종료되고 복제 서버가 생성된다.

  5. Cutover complete 상태가 되면 모든 마이그레이션이 끝난 상태이다.

    소스 서버와의 연결은 끊기고, Replication 서버는 종료된다.

    image

    image

    Mark as archived 하여 소스 서버 목록에서 안보이게 한다.

EBS 스냅샷 목록을 보면 계속해서 스냅샷을 찍었음을 알 수 있다.

image

카테고리:

업데이트:

댓글남기기