Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何使用 VM Import/Export 將 VM 型執行個體從 AMI 上匯出?
我想要將 Amazon Machine Image (AMI) 的副本匯出為虛擬機器 (VM),以便在現場虛擬化環境中部署。
簡短描述
使用 AWS Command Line Interface (AWS CLI) 和 VM Import/Export 啟動映像檔匯出任務。此任務會將 AMI 副本匯出為 VM 檔案,並將其寫入 Amazon Simple Storage Service (Amazon S3) 儲存貯體。使用匯出的 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 Marketplace AMI 建立的執行個體。您只能匯出原本透過 VM Import/Export、AWS 應用程式遷移服務 (MGN) 或 AWS 彈性災難復原 (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
相關內容
- 已提問 2 年前
- 已提問 2 年前
- 已提問 2 年前
