EC2でovaとかをインポートする

alkoshikawa 353views 更新:2016年4月27日

昔似たようなの書きましたがawscliで使えるようになったのと、結構手順変わったので書いておきます。

まずイメージを配置するS3のバゲットを作成します。

example.import-image

というバゲットにしておきます。

次にインポート処理用のIAMロールを作成します。

GUIからはそれっぽいのがいなかったのでコマンドラインでおこないます。

vim trust-policy.json
---
{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"",
         "Effect":"Allow",
         "Principal":{
            "Service":"vmie.amazonaws.com"
         },
         "Action":"sts:AssumeRole",
         "Condition":{
            "StringEquals":{
               "sts:ExternalId":"vmimport"
            }
         }
      }
   ]
}
---
aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
vim role-policy.json
---
{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListBucket",
            "s3:GetBucketLocation"
         ],
         "Resource":[
            "arn:aws:s3:::example.import-image"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObject"
         ],
         "Resource":[
            "arn:aws:s3:::example.import-image/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "ec2:ModifySnapshotAttribute",
            "ec2:CopySnapshot",
            "ec2:RegisterImage",
            "ec2:Describe*"
         ],
         "Resource":"*"
      }
   ]
}
---
aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json

「example.import-image」バゲット上にインポートしたいOVAイメージをアップロードします。

インポート用のJSONを作成し、

vim containers.json
---
[{
    "Description": "First CLI task",
    "Format": "ova",
    "UserBucket": {
        "S3Bucket": "example.import-image",
        "S3Key": "someting.ova"
    }
}]
---

インポートコマンドを実行します。

aws ec2 import-image --disk-containers file://containers.json

インポートには結構時間がかかります。

状態を知るには

aws ec2 describe-import-image-tasks

とやると出てきます。

処理が終わり、上記コマンドを実行するとAMIのIDなどが表示できるので、あとはAMIからインスタンスを作成します。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません