-
[AWS] MGN를 이용하여 마이그레이션클라우드/AWS 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
https://docs.aws.amazon.com/ko_kr/mgn/latest/ug/linux-agent.html
이 과정에서 Replication instance가 생기는데, 주기적으로 스냅샷을 생성하고 소스 서버의 데이터를 동기화함
4. 시작 템플릿 구성
- Test 서버와 Cutover 서버에 대한 설정을 할 수 있음
- 두가지 방법 있음 -> 일반 시작 설정과 ec2 시작 템플릿
- 일반 시작 설정에서는 거의 그대로 두면됨, 사설ip를 그대로 사용할 거면 ip를 yes로 바꿔줘야함
- ec2 시작 템플릿 -> 사양 직접 설정 가능
- 참고로 템플릿에 대한 변경사항은 새로 추가된 소스서버에 대해서만 적용된다 그러니 미리 템플릿을 잘 정의하고 agent를 설치해야함
-> 템플릿 버전은 알아서 최신버전으로 반영됨
-> 이런 상태가 되면 테스트 인스턴스를 실행하자, 시작템플릿 양식에 맞춰서 실행될것이다
5. 테스트 진행
- 변환 인스턴스(Conversion Instance)랑 테스트 타겟서버가 생성됨
- 변환 인스턴스는 잠시 생겼다가 사라짐
이제 실제 전환을 해보자
테스트 인스턴스 들어가서 요런저런 테스트 해보고, 테스트가 완료됐으면 전환준비완료 표시로 바꾸자
6. 전환 시작
- 마찬가지로 전환 인스턴스가 생겼다가 다시 종료된다
전환 완료가 되었다...
이제 전환 마무리 표시로 바꾸면 마이그레이션하면서 생성됐던 관련된 리소스들이 삭제됨
아카이빙으로 마무리하자
https://honglab.tistory.com/150
https://yuntreee.github.io/aws/aws_MGN/
'클라우드 > AWS' 카테고리의 다른 글
[AWS] AWS IoT Greengrass V2 Workshop 2 (1) 2023.12.05 [AWS] IoT Greengrass V2 Workshop 1 (2) 2023.12.05 [AWS] Terraform으로 쿠버네티스 배포하기 (0) 2023.08.14 [AWS] EC2 Instance Connect 환경 구축하고 private instance에 연결하기 (0) 2023.08.09 [AWS] Window에 Cloudwatch Agent 설치 (0) 2023.07.12