클라우드/AWS

[AWS] MGN를 이용하여 마이그레이션

팽팽 2023. 12. 4. 23:27

죽지도 않고 다시 찾아온 MGN

포스팅하다가 그만뒀었는데... 이번주에 쓸 일이 있어서 다시한번 정리하는 겸 올려본다

MGN (AWS Application Migration Service)

- 애플리케이션 단의 마이그레이션을 가장 효율적이고 안전하게 클라우드로 마이그레이션

- 자동화된 리프트 앤 시프트 솔루션

- 어떠한 변화도 없이 애플리케이션을 마이그레이션

- Replication Agent 

소스 서버에 Replication Agent를 설치해서 MGN에 요청 보냄

MGN 엔드포인트와 443번 포트로 통신함

 

- Staging

Replication instance를 생성해서 소스 서버의 데이터를 복제하고, 데이터를 EBS 볼륨에 기록함

업데이트 되는 데이터가 있으면 새로운 스냅샷을 생성해서 최신 상태로 유지함

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

실제 서버를 마이그레이션하기 전에, 복제된 데이터를 사용해서 서버를 구성했을 때 문제가 없는지 테스트를 진행함

이때 드라이버, 네트워크, 운영체제 라이센스 등이 aws인스턴스에서 부팅되로록 변환해주는 conversion 인스턴스가 잠시 생성됨 -> 바로 다시 삭제됨!

 

- production

테스트가 완료되고, cutover를 진행해서 실제 운용되는 서버를 구축함

 

라이프사이클

 

1. Not ready

- 소스 서버만 존재하는 상태

2. Ready for testing

- 소스 서버(원본 서버)에 Replication Agent를 설치하여 소스 서버를 대상으로 replication 세팅 설정하고 정립함

3. Test in progress

- 복제 템플릿 설정 -> 복제 서버 생성

- 복제 템플릿으로 생성된 복제 서버가 소스 서버와 aws간 데이터를 복제함

- 스테이징 영역 서브넷을 생성하고 관리함

4. Ready for cutover

- 복제 서버는 원본 서버에서 실행중인 에이전트로부터 데이터를 수신하고 해당 데이터를 EBS 볼륨에 작성

5. Cutover in progress

- 테스트 및 컷오버 단계가 시작되면 원본 서버를 aws에서 기본적으로 부팅 및 실행하도록 변환

6. Cutover complete

- 시작된 인스턴스가 aws에서 제대로 작동하는지 확인후 소스 서버를 해제

 

 

 

서버 마이그레이션 (Linux to EC2)

1. 원본 서버 구성

- Ubuntu 20.04

- 40GB

 

2. MGN의 복제 템플릿 구성

- staging 영역에서 실행될 복제 서버의 위치와 사양을 구성하자

- 인스턴스 타입, EBS 볼륨, 보안그룹, 태그, Throttle까지 설정

- test-vpc의 public subnet1에 복제서버를 구성하는걸로 설정했음

 

3. 소스 서버에 Agent 설치

- 설치전, iam에서 액세스 키랑 비밀키 생성해주어야함

sudo wget -O ./aws-replication-installer-init.py https://aws-application-migration-service-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/linux/aws-replication-installer-init.py
sudo python3 aws-replication-installer-init.py

agent 깔리는중

https://docs.aws.amazon.com/ko_kr/mgn/latest/ug/linux-agent.html

 

Linux - Application Migration Service

If disks are disconnected from a server, AWS Application Migration Service can no longer replicate them, so they are removed from the list of replicated disks. When they are reconnected, the AWS Replication Agent cannot know that these were the same disks

docs.aws.amazon.com

 

이 과정에서 Replication instance가 생기는데, 주기적으로 스냅샷을 생성하고 소스 서버의 데이터를 동기화함

 

 

4. 시작 템플릿 구성

  • Test 서버와 Cutover 서버에 대한 설정을 할 수 있음
  • 두가지 방법 있음 -> 일반 시작 설정과 ec2 시작 템플릿
  • 일반 시작 설정에서는 거의 그대로 두면됨, 사설ip를 그대로 사용할 거면 ip를 yes로 바꿔줘야함
  • ec2 시작 템플릿 -> 사양 직접 설정 가능
  • 참고로 템플릿에 대한 변경사항은 새로 추가된 소스서버에 대해서만 적용된다 그러니 미리 템플릿을 잘 정의하고 agent를 설치해야함

 

-> 템플릿 버전은 알아서 최신버전으로 반영됨

-> 이런 상태가 되면 테스트 인스턴스를 실행하자, 시작템플릿 양식에 맞춰서 실행될것이다

 

 

5. 테스트 진행

- 변환 인스턴스(Conversion Instance)랑 테스트 타겟서버가 생성됨

- 변환 인스턴스는 잠시 생겼다가 사라짐

 

 

이제 실제 전환을 해보자

테스트 인스턴스 들어가서 요런저런 테스트 해보고, 테스트가 완료됐으면 전환준비완료 표시로 바꾸자

 

6. 전환 시작

 

- 마찬가지로 전환 인스턴스가 생겼다가 다시 종료된다

 

전환 완료가 되었다...

이제 전환 마무리 표시로 바꾸면 마이그레이션하면서 생성됐던 관련된 리소스들이 삭제됨

아카이빙으로 마무리하자

 

 

 

https://honglab.tistory.com/150

 

[AWS] Application Migration Service(MGN) 리뷰 & CloudEndure와 비교

5월 18일에 AWS Application Migration Service(MGN)가 정식 출시되었다 (공식 블로그 글 확인) AWS가 인수한 CloudEndure를 이제 AWS Console에서 사용할 수 있다..... 라고 생각했으나, 뭔가 조금씩 다르고 CloudEndure

honglab.tistory.com

https://yuntreee.github.io/aws/aws_MGN/

 

[AWS] MGN

1. MGN (Application Migration Service) 이란?

yuntreee.github.io