跳至內容

如何使用 VM Import/Export 將 VM 型執行個體從 AMI 上匯出?

2 分的閱讀內容
0

我想要將 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 版本

先決條件:

將 AMI 的副本匯出為映像檔

**注意:**您無法匯出從 AWS 提供的 Windows AMI 或 Windows Marketplace AMI 建立的執行個體。您只能匯出原本透過 VM Import/Export、AWS 應用程式遷移服務 (MGN) 或 AWS 彈性災難復原 (AWS DRS) 以自帶授權 (BYOL) 方式匯入的 Windows 執行個體。

若要執行影像匯出任務,請完成下列步驟:

  1. 從您要匯出的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體建立 Amazon Elastic Block Store (Amazon EBS) 支援的 AMI

  2. 在用戶端電腦上安裝 AWS CLI。然後,使用您 IAM 使用者的 AWS 憑證設定 AWS CLI。

  3. 在與您要匯出的 AMI 相同的 AWS 區域中建立新的 Amazon S3 儲存貯體

  4. 在您要用於 VM Import/Export 的區域中啟用 AWS Security Token Service (AWS STS)。然後,建立必要的服務角色

  5. 從安裝 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 儲存貯體。您可以為匯出的檔案加上首碼。

  6. 若要檢查匯出映像檔任務的狀態,請執行 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"
            }
        ]
    }
  7. 確認匯出映像檔任務的狀態變更為已完成。如果狀態為已完成,則表示匯出的檔案已準備好作為 Amazon S3 儲存貯體中的物件。
    已完成狀態的輸出範例:

    {    "ExportImageTasks": [
            {
                "ExportImageTaskId": "example-export-ami-id",
                "S3ExportLocation": {
                    "S3Bucket": "example-export-bucket",
                    "S3Prefix": "exports/"
                },
                "Status": "completed"
            }
        ]
    }
  8. 使用 Amazon S3 主控台存取您的 Amazon S3 儲存貯體。然後,下載物件

相關資訊

使用 VM Import/Export,直接從 Amazon Machine Image (AMI) 匯出 VM

在 AWS 帳戶中建立 IAM 使用者

AWS 安全憑證

Amazon EC2 中的 Amazon Machine Image

對 VM Import/Export 進行疑難排解

AWS 官方已更新 1 年前