AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

AWS に VM Import して失敗するときは vmdk を利用してみよう

という学びがあった。 そもそもこんなもん早々おきねーよ!という戒めを含めてメモ代わりに記載する。

AWS VM Import

docs.aws.amazon.com

Qiita やら classmethod やら読んだけど、結局公式の解説が一番簡潔だった。 問題は、公式の日本語が理解しにくい書き方であることで、AWS 君ドキュメントはもっとわかりやすく書こうね!というお気持ち。

Unsupported non-ASCII characters found in OVF file path

金曜日夕方にインポートタスク投げておいたの忘れてて、まあ終わってるじゃろ?と思いながら鉄腕 DASH みつつ確認したら "Status": "deleted" などとなっており真顔になる。 失敗時以下のようなログであった。

○ → aws ec2 describe-import-image-tasks --import-task-ids import-ami-XXXXXXXX
{
    "ImportImageTasks": [
        {
            "Status": "deleted",
            "LicenseType": "BYOL",
            "Description": "ANKEN-vmimport",
            "SnapshotDetails": [
                {
                    "UserBucket": {
                        "S3Bucket": "ANKEN-vmimport",
                        "S3Key": "vmimage.ova"
                    },
                    "DiskImageSize": 0.0,
                    "Format": "OVA"
                }
            ],
            "StatusMessage": "ClientError: Disk validation failed [OVF file parsing error: Unsupported non-ASCII characters found in OVF file path.]",
            "ImportTaskId": "import-ami-XXXXXXXX"
        }
    ]
}

あーん?

原因

わからん! ちなみにこの OVA イメージはローカルの VagrantVirtualBox)から採取したもので、一度 ESXi 6.5 にインポートして動作確認しておりました。 何がわるいんじゃー?といった感じでしたが、同じ仮想マシンから採取した vmdk があったので、 "Format": "vmdk" と指定して再度タスクを投げてみました。

○ → aws ec2 describe-import-image-tasks --import-task-ids import-ami-XXXXXXXX
{
    "ImportImageTasks": [
        {
            "Status": "active",
            "LicenseType": "BYOL",
            "Description": "ANKEN-vmimport",
            "Progress": "28",
            "SnapshotDetails": [
                {
                    "UserBucket": {
                        "S3Bucket": "ANKEN-vmimport",
                        "S3Key": "vmimage.vmdk"
                    },
                    "DiskImageSize": 8407928320.0,
                    "Description": "vmimport",
                    "Format": "VMDK"
                }
            ],
            "StatusMessage": "converting",
            "ImportTaskId": "import-ami-XXXXXXXX"
        }
    ]
}

ああん?!動いたやんけェ、どういうこっちゃ!

結論

というわけで出力した形式が違うだけでなんでこんなことに……みたいな感じで頭を抱えております。 が、 AWS VM Import で OVA 形式を利用していてうまくインポートできねーな?みたいな状態になったら vmdk を利用してみてください。