OVA 파일로 VMware → AWS 이전하기! EC2 마이그레이션 완전 정리
클라우드 전환이 점점 가속화되면서, 기존 온프레미스 환경에서 AWS로의 마이그레이션을 고려하는 기업과 개인 사용자가 많아지고 있습니다. VMware ESXi에서 운영 중인 가상 머신(VM)을 AWS로 이전하는 과정을 작성했습니다.
이번 글에서는 awscli 를 이용하여 빠른 마이그레이션을 해보았습니다.
전제 조건
- 가상 서버에 AWS CLI가 설치 및 설정되어 있어야 합니다.
- 마이그레이션할 데이터를 저장할 S3 버킷이 있어야 합니다. (사용할 버킷: arn:aws:s3:::sungbin-mgn-bucket)
- IAM 역할 및 권한이 할당되어 있어야 합니다.
1. AWS VM Import/Export 활성화
AWS에서 VMware 기반 가상 머신을 가져오기 위해 VM Import/Export 기능을 활성화해야 합니다.
1-1. AWS CLI 설정
로컬 머신에서 AWS CLI를 설정합니다.
aws configure
- AWS Access Key ID: 입력
- AWS Secret Access Key: 입력
- Default region name: ap-northeast-2
- Default output format: json
1-2. S3 버킷 확인
마이그레이션할 VM 이미지를 업로드할 S3 버킷이 준비되어 있는지 확인합니다.
aws s3 ls
aws s3 ls s3://sungbin-mgn-bucket
만약 존재하지 않는다면, 다음 명령어로 버킷을 생성합니다.
2. VMware ESXi에서 OVF/OVA 이미지 생성
서버를 종료하고, ESXi에서 가상 머신을 OVA(VMDK 포함) 또는 VMDK 파일로 내보냅니다.
- vSphere Client 접속 → 대상 VM 선택 → Export OVF
- export
- 저장
- 저장 확인
- 참고) OVF -> OVA 변환 방법 (https://sungbin-park.tistory.com/73)
- 다운로드된 파일을 AWS S3에 업로드
- ova 의 경우 용량이 크기에, 시간이 많이 소요됨
3. VM Import 시작 (AMI 변환)
AWS는 OVA/VMDK를 직접 AMI로 변환하는 기능을 콘솔(UI)에서 제공하지 않음. CloudShell 이용 필요
- VM Import 역할 생성
aws iam create-role --role-name vmimport --assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": "vmie.amazonaws.com" },
"Action": "sts:AssumeRole"
}
]
}'
- 역할에 S3 및 EC2 Import 권한 추가
aws iam put-role-policy --role-name vmimport --policy-name vmimport-policy --policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::sungbin-mgn-bucket",
"arn:aws:s3:::sungbin-mgn-bucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"
],
"Resource": "*"
}
]
}'
- VM Import 실행 (OVA -> AMI 변환)
aws ec2 import-image --cli-input-json '{
"Description": "CentOS7 ESXi Migration",
"DiskContainers": [
{
"Description": "CentOS7 VM",
"Format": "ova",
"UserBucket": {
"S3Bucket": "sungbin-mgn-bucket",
"S3Key": "master.ova"
}
}
]
}'
- 변환 상태 확인 (시간이 오래 걸린다)
aws ec2 describe-import-image-tasks

"StatusMessage": "converting"

"Status": "Completed

4. 생성된 AMI 확인 (Management Console 사용)
- AWS 콘솔에서 EC2 서비스로 이동합니다.
- 왼쪽 메뉴에서 이미지 → AMI를 선택합니다.
5. EC2 인스턴스 생성 (Management Console 사용)
- AMI 선택 단계에서 변환된 AMI를 선택합니다.
공인 IP 할당 받은 뒤 접속 가능 여부 확인
- CentOS 이기 때문에, Instance COnnect 가 아닌 Putty 로 사용

- 정말로 같음을 확인

마이그레이션을 통해 배운 점
1. 온프레미스 환경에서 클라우드로의 이전이 점점 쉬워지고 있다
과거에는 온프레미스 환경에서 클라우드로 이전하는 과정이 복잡하고 까다로웠지만, AWS의 VM Import/Export 기능과 UI 지원을 이용하면 비교적 간편하게 기존 VMware 환경을 AWS로 옮길 수 있습니다. 이를 통해 클라우드 전환에 대한 부담이 줄어들었으며, 다양한 기업이 손쉽게 마이그레이션을 고려할 수 있는 환경이 조성되었습니다.
2. CLI 활용 장점
AWS CLI를 이용하면 UI 없이도 쉽게 마이그레이션이 가능. 적극 추천!