☁️Cloud/AWS

AWS MGN을 이용한 마이그레이션

terranbin 2025. 3. 16. 20:49
728x90
SMALL

에이전트 설치

에이전트용 IAM 임시 자격 증명 설정

온프레미스에 에이전트를 설치하기 위해서 필요한 IAM 임시 자격 증명을 생성한다.

IAM > Roles > Create role 메뉴에서 AWS account를 선택하고 다음 단계로 넘어간다.

에이전트를 설치할 수 있는 권한 정책(AWSApplicationMigrationAgentInstallationPolicy)을 부여한다.

생성한 역할로 아래의 명령어를 이용하여 임시 자격 증명을 발급 받으면 된다.

> aws sts assume-role \
    --role-arn arn:aws:iam::012345678910:role/mgn \
    --role-session-name "mgn" > assume-role-output.txt
> cat assume-role-output.txt

{
    "Credentials": {
        "AccessKeyId": "ASIAQE3V4ZYDOUJCNN57",
        "SecretAccessKey": "/8rIK0edz2RW7HvaZDEQXqG5ON/arbTkiBpN1LuN",
        "SessionToken": "IQoJb3JpZ2luX2VjEA4aDmFwLW5vcnRoZWFzdC0yIkgwRgIhAMrBNl9JIaFeUK5LCUH/KVTxcir+2a7SXEM6A23WbSb0AiEA6irf0prPSars/swbhYPT5ooHAA03xe9RO3WBV5SVOrcqlAIIVxADGgwwMTA0NDc4MDE4NjIiDJgYSx811pL9F2cRWirxAQ3xFKGM5qeqyOwcLwdQLZCwAsGrLZ669hosvoH3z2gvmrHBiSoy+x5UzgdGV/1DhoV0LulAfpl6h1MfebBkm9IbbjqeusZYQXdvhQioNfArIdqaEyrebSzUfuBKkVHsZ1iZ/Q2KHDPn/a64OeTqhLeZELO8AUicLXaItIalhKFvOS3DM6TJBScPcHz6W5baQrgifcrAm65IeEQM2uSn9DwoFrYSGu9KJ+svxRb7me2anWSTHKBrpt6bc4gD+lpdm+zCl8x0ZoP4F/N+xKCznVchjXVpbuyHNqlN1szGmDdQMptyG1U/vWW3bOXxqLlYyQ4wp7+ApAY6nAEgm2EfEM59iZcEhmHZSuwB8JcjXMgy//ZVT/SKI/K5an6zqGHHS/Ux3EC76RSVmeCqpuWNHHPrRdAVbDyRY0XgJsWdV5TnY/Xu6DWNKBIGjaNduBRvsjWITsatDWSfkRcYc1QGOmrPrxci37DgdTt8r3zNjA/mt/H38IEEhPy2MZFwHg/K6cSWnriTuAKJdn1mhr4xDUgsjnt50is=",
        "Expiration": "2023-06-07T07:11:51+00:00"
    },
    "AssumedRoleUser": {
        "AssumedRoleId": "AROAQE3V4ZYDEIML532UC:mgn",
        "Arn": "arn:aws:sts::012345678910:assumed-role/mgn/mgn"
    }
}

에이전트 설치 및 실행

Applicaton Migration Service > Source servers > Add server 메뉴로 들어간다.

위에서 발급받은 IAM 임시 액세스 토큰을 넣어준다.

5번, 6번 순서대로 서버에서 명령어를 입력한다.

> sudo python3 aws-replication-installer-init.py \
--region ap-northeast-2 \
--aws-access-key-id ASIAQE3V4ZYDOUJCNN57 \
--aws-secret-access-key /8rIK0edz2RW7HvaZDEQXqG5ON/arbTkiBpN1LuN \
--aws-session-token IQoJb3JpZ2luX2VjEA4aDmFwLW5vcnRoZWFzdC0yIkgwRgIhAMrBNl9JIaFeUK5LCUH/KVTxcir+2a7SXEM6A23WbSb0AiEA6irf0prPSars/swbhYPT5ooHAA03xe9RO3WBV5SVOrcqlAIIVxADGgwwMTA0NDc4MDE4NjIiDJgYSx811pL9F2cRWirxAQ3xFKGM5qeqyOwcLwdQLZCwAsGrLZ669hosvoH3z2gvmrHBiSoy+x5UzgdGV/1DhoV0LulAfpl6h1MfebBkm9IbbjqeusZYQXdvhQioNfArIdqaEyrebSzUfuBKkVHsZ1iZ/Q2KHDPn/a64OeTqhLeZELO8AUicLXaItIalhKFvOS3DM6TJBScPcHz6W5baQrgifcrAm65IeEQM2uSn9DwoFrYSGu9KJ+svxRb7me2anWSTHKBrpt6bc4gD+lpdm+zCl8x0ZoP4F/N+xKCznVchjXVpbuyHNqlN1szGmDdQMptyG1U/vWW3bOXxqLlYyQ4wp7+ApAY6nAEgm2EfEM59iZcEhmHZSuwB8JcjXMgy//ZVT/SKI/K5an6zqGHHS/Ux3EC76RSVmeCqpuWNHHPrRdAVbDyRY0XgJsWdV5TnY/Xu6DWNKBIGjaNduBRvsjWITsatDWSfkRcYc1QGOmrPrxci37DgdTt8r3zNjA/mt/H38IEEhPy2MZFwHg/K6cSWnriTuAKJdn1mhr4xDUgsjnt50is= \
--user-provided-id mgn-instance \
--no-prompt

The installation of the AWS Replication Agent has started.
Identifying volumes for replication.
Identified volume for replication: /dev/nvme0n1 of size 8 GiB
All volumes for replication were successfully identified.
Downloading the AWS Replication Agent onto the source server... Finished.
Installing the AWS Replication Agent onto the source server... Finished.
Syncing the source server with the Application Migration Service Console... Finished.
The following is the source server ID: s-6f825ce15efca467c.
You now have 1 active source server out of a total quota of 150.
Learn more about increasing source servers limit at https://docs.aws.amazon.com/mgn/latest/ug/MGN-service-limits.html
The AWS Replication Agent was successfully installed.

에이전트 실행 후 성공적으로 작업이 완료되면, AWS 콘솔에서 마이그레이션 대상 서버(소스 서버)가 추가된 것을 확인할 수 있다.

마이그레이션 작업

이제 본격적인 마이그레이션 작업을 시작한다.

소스 서버가 추가된 이후에 콘솔에서 확인해보면 데이터 복제의 현재 상태 및 정보, 라이프 사이클을 볼 수 있다.

EC2 > Instances 에서 확인해보면, Replication Server도 추가되어 있다. 해당 서버에서는 소스 서버의 데이터를 복제하고, 마이그레이션 단계를 거치면서 테스트를 진행하게 된다.

Applicaton Migration Service > 생성한 소스 서버 > Launch settings 메뉴로 들어간다.

여기서는 말 그대로 최종적으로 마이그레이션 작업을 수행하면, 생성되는 인스턴스에 대한 설정을 할 수 있다.

Instance type right sizing 옵션은 에이전트에서 분석한 서버의 상태를 기준으로 AWS 환경에서 해당 서버를 띄웠을 때 적절한 인스턴스 타입을 자동으로 맞춰준다.

마이그레이션 후 생성될 인스턴스 타입을 직접 지정하고 싶으면 Edit 버튼을 클릭하여 옵션을 Off 하고, Launch Template에서 인스턴스 타입을 변경한다.

원하는 인스턴스 타입을 지정 후에 Launch Template의 새로운 버전을 생성한다.

default 버전을 지정하여 인스턴스 타입을 지정한 새로운 버전이 사용될 수 있게 설정한다.

Applicaton Migration Service > 생성한 소스 서버 > Replication settings 메뉴로 들어간다.

해당 메뉴에서는 위에서 소스 서버를 생성한 뒤에 만들어 진 Replication Server 서버에 대한 설정이다. 특별한 경우 말고는 따로 설정할 건 없을 것 같다.

이제 MGN 라이프 사이클에 맞춰서 순서대로 단계를 진행하면 된다. 초기에 서버 등록 후에 데이터를 복제하는 시간이 지나면 Ready for testing 단계로 이동된다.

이제 Test and cutover > Testing > Launch test instances > Launch 메뉴를 클릭하여 인스턴스를 테스트 해주도록 한다.

테스트 단계가 완료되면, Test and cutover > Testing > Mark as "Ready for cutover" > Continue 메뉴를 클릭한다.

여기서 비용으로 인해 인스턴스 종료는 체크하고 진행한다.

이제 cutover 단계로 진입한다.

cutover 단계에서는 테스트 이후 그리고 최종적으로 서버 마이그레이션 완료 이전에 새로운 환경에서 데이터나 애플리케이션 등을 검증한다.

 

내용대로라면, 직접 인스턴스에 접속해서 애플리케이션도 실행해보고 데이터도 확인해보는 건줄 알았는데 그런건 아닌거 같다. (이 부분은 확인이 필요하다!)

Test and cutover > Cutover > Launch cutover instances > Launch 메뉴를 클릭한다.

마지막 단계로 Test and cutover > Cutover > Finalize cutover > Finalize 메뉴를 클릭한다.

마지막 단계가 완료되면, 실제로 온프레미스 환경에서 AWS 클라우드 인프라 환경으로 서버가 마이그레이션 되어 EC2 인스턴스 형태로 존재하게 된다.

완료가 되었음을 확인하고 다시 MGN 콘솔로 돌아가서, Actions > Mark as archived > Archive 메뉴를 클릭하여, 아카이빙 해준다.

이렇게 마이그레이션 작업이 완료됐다.

사전 작업 조건만 갖추어 AWS에서 제공하는 에이전트만 사용해서 이렇게 쉽게 마이그레이션 할 수 있다.


참고 Github

https://github.com/rookieboba/rocky-to-aws-mgn/blob/main/README.md

LIST