hyper-vでエクスポートしたイメージをEC2で起動する

OS領域: C.vhd
データ領域: D.vhd

という2つのイメージがあるとします。

1.AmazonLinuxをエクスポートしたイメージより大きい容量にして起動します。

2.AWSコンソールからS3のバケットを一つ作ります

3.起動したAmazonLinuxにイメージを転送し、シェルでログインします。

4.環境変数をセットします

export AWS_ACCESS_KEY={ACCESS_KEY}
export AWS_SECRET_KEY={SECRET_KEY}
export EC2_URL=https://ec2.ap-northeast-1.amazonaws.com
export EC2_REGION=ap-northeast-1

5.OS領域からインスタンスを作成する

ec2-import-instance C.vhd -t t2.medium -f VHD -a x86_64 -p Windows \
 -b {bucket} -z ap-northeast-1c --subnet {subnet} \
 -o {ACCESS_KEY} -w {SECRET_KEY}

t2.smallでおこなってもうまくいきませんでした、windowsだと最低限必要なタイプとかあるんでしょうか

ec2-describe-conversion-tasks

で進捗状況確認後(StatusMessage Progress が 100% になったら)、STATUSがCompletedになったら

ec2-delete-disk-image -t {task_id} -o {ACCESS_KEY} -w {SECRET_KEY}

でS3に作成された一時ファイルを削除します。

6.データ領域からEBSボリュームを作成する

ec2-import-volume D.vhd -f VHD -b {bucket} \
 -z ap-northeast-1c -o {ACCESS_KEY} -w {SECRET_KEY}
ec2-describe-conversion-tasks

で進捗状況確認、STATUSがCompletedになったら

ec2-delete-disk-image -t {task_id} -o {ACCESS_KEY} -w {SECRET_KEY}

でS3に作成された一時ファイルを削除します。

7.EBSボリュームをアタッチする

5で停止状態のインスタンスが作成されるので、 セキュリティグループをWindowsのリモートデスクトップで接続できるものに変更し、 6で作成したボリュームをアタッチします。

7.ElasticIPを振ります。

8.インスタンスを起動し、リモートデスクトップでログインします。

なお、t2.mediumで起動しましたが、停止してt2.smallに変更することができました。