Amazon Machine Image(AMI) 사본을 가상 머신(VM)으로 내보내 온사이트 가상화 환경에 배포하려고 합니다.
간략한 설명
AWS Command Line Interface(AWS CLI)와 VM Import/Export를 사용하여 이미지 내보내기 작업을 시작합니다. 이 작업은 AMI 사본을 Amazon Simple Storage Service(S3) 버킷에 기록된 VM 파일로 내보냅니다. 내보낸 VM을 사용하여 온사이트 가상화 환경에 표준화된 새 인스턴스를 배포할 수 있습니다. 대부분의 AMI는 Citrix Xen, Microsoft Hyper-V 또는 VMware vSphere로 내보낼 수 있습니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
전제 조건:
- VM 내보내기 제한을 검토하여 VM Import/Export가 AMI를 지원하는지 확인하십시오.
- AWS Identity and Access Management(IAM) 사용자로 로그인하는 경우 필요한 IAM 사용자 권한이 있는지 확인하십시오.
AMI 사본을 이미지로 내보내기
참고: AWS에서 제공한 Windows AMI 또는 Windows 마켓플레이스 AMI에서 생성된 인스턴스는 내보낼 수 없습니다. VM Import/Export, AWS Application Migration Service(MGN) 또는 AWS Elastic Disaster Recovery(AWS DRS)를 통해 원래 기존 보유 라이선스(BYOL)로 가져온 Windows 인스턴스만 내보낼 수 있습니다.
이미지 내보내기 작업을 실행하려면 다음 단계를 완료합니다.
-
내보내려고 하는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 Amazon Elastic Block Store(Amazon EBS) 지원 AMI를 생성합니다.
-
클라이언트 시스템에 AWS CLI를 설치합니다. 그런 다음 IAM 사용자의 AWS 보안 자격 증명으로 AWS CLI를 구성합니다.
-
내보내려는 AMI와 동일한 AWS 리전에 새 Amazon S3 버킷을 생성합니다.
-
VM Import/Export에 사용하는 리전에서 AWS Security Token Service(AWS STS)를 활성화합니다. 그런 다음 필요한 서비스 역할을 생성합니다.
-
AWS CLI를 설치한 클라이언트 시스템에서 export-image 명령을 실행하여 이미지 내보내기 작업을 시작합니다.
aws ec2 export-image --image-id `ami-1234567890abcdef0` --disk-image-format example-disk-image-format --s3-export-location S3Bucket=example-export-bucket,S3Prefix=exports/
참고: ami-1234567890abcdef0을 AMI ID로 바꾸십시오. example-disk-image-format을 원하는 형식으로 바꾸십시오. example-export-bucket을 Amazon S3 버킷의 이름으로 바꾸십시오.
출력 예시:
{
"DiskImageFormat": "vmdk",
"ExportImageTaskId": "export-ami-1234567890abcdef0",
"ImageId": "example-ami-id",
"RoleName": "vmimport",
"Progress": "0",
"S3ExportLocation": {
"S3Bucket": "example-export-bucket",
"S3Prefix": "exports/"
},
"Status": "active",
"StatusMessage": "validating"
}
위의 예시에서 Amazon S3 키 prefixexport-ami-id.format은 내보낸 파일을 지정된 Amazon S3 버킷에 씁니다. 내보낸 파일에 접두사를 추가할 수 있습니다.
-
이미지 내보내기 작업의 상태를 확인하려면 describe-export-image-tasks 명령을 실행합니다.
aws ec2 describe-export-image-tasks --export-image-task-ids export-example-ami-id
참고: export-example-ami-id를 내보내기 작업 ID로 바꾸십시오.
출력 예시:
{ "ExportImageTasks": [
{
"ExportImageTaskId": "export-ami-1234567890abcdef0",
"Progress": "21",
"S3ExportLocation": {
"S3Bucket": "my-export-bucket",
"S3Prefix": "exports/"
},
"Status": "active",
"StatusMessage": "updating"
}
]
}
-
이미지 내보내기 작업의 상태가 완료로 변경되었는지 확인합니다. 완료 상태가 되면 내보낸 파일을 Amazon S3 버킷의 객체로 사용할 수 있습니다.
완료 상태 출력 예시:
{ "ExportImageTasks": [
{
"ExportImageTaskId": "example-export-ami-id",
"S3ExportLocation": {
"S3Bucket": "example-export-bucket",
"S3Prefix": "exports/"
},
"Status": "completed"
}
]
}
-
Amazon S3 콘솔을 사용하여 Amazon S3 버킷에 액세스할 수 있습니다. 그런 다음 객체를 다운로드합니다.
관련 정보
VM Import/Export를 사용하여 Amazon Machine Image(AMI)에서 직접 VM 내보내기
AWS 계정에서 IAM 사용자 생성
AWS 보안 자격 증명
Amazon EC2의 Amazon Machine Image
VM Import/Export 문제 해결