ホーム > Others > Amazon EC2 – Hyper-VのVHDをAmazon EC2にインポート

Amazon EC2 – Hyper-VのVHDをAmazon EC2にインポート

http://aws.amazon.com/

clip_image001[5]

要するに仮想のWindowsマシン等を時間貸ししてくれるAmazon Web ServicesのEC2、なんとHyper-VのVHDを使ってEC2の仮想マシン作れるんですね。感動したのでもっぱら自分用に文書化。

AWSはもっぱらWeb画面で操作できるのですが、VHDのインポートはコマンドプロンプトのツールでしかできないようです。しかもJavaで作られているみたいなのでJavaのインストールが必要になります。

 

前提条件

  • AWSのアカウントを持っていてある程度いじったことがあること
    • クレジットカードさえあればアカウント作るの難しくなかったと思います。
    • EC2, S3の基本知識が必要です。
  • 現時点でのAPI Toolsバージョンは1.5.0.1-2011.11.30
  • 作業マシンはWindows 7 Ultimate SP1 64bit

作業概要

  • 事前準備
    • Java Runtime Environment(JRE)入手・準備
    • Amazon EC2 API Tools入手・準備
    • アカウントのセキュリティ情報確認
    • 環境変数の設定
  • インポート作業
    • インポート実行
      • 勝手にVHDが分割ファイルになってS3に保存される
      • 勝手にVHDからEC2形式に変換されてEBSに保存される
      • そして起動できるようになる
    • インスタンス起動
    • 一時作業ファイル削除
      • S3に保存されたVHD分割ファイルを削除

参考文書

User Guide – Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html

CLI Reference

http://awsdocs.s3.amazonaws.com/EC2/latest/ec2-clt.pdf

 

Java Runtime Environment(JRE)入手・準備

上記マニュアルでは1.5系を手に入れろみたいに見えるのですが、1.5系では動きませんでした。1.6系で動いたので1.6系でご紹介。1.7では試していませんが、大丈夫でしょうかねきっと?

Amazon EC2 API Tools入手・準備

  • ダウンロード
  • インストール
    • 好きなところに解凍

アカウントのセキュリティ情報確認

アクセスキーもX.509証明書も必要なので今のうちに準備します。必要一覧は下記。

  • アクセスキー
    • アクセスキーID
      • 文字列、ユーザIDみたいなもん
    • シークレットアクセスキー
      • 文字列、パスワードみたいなもん
  • X.509証明書
    • 秘密鍵
      • ファイル。pk-*.pem
      • 一回しかダウンロード出来ないので注意
    • 証明書
    • ファイル。cert-*.pem

入手方法は下記

clip_image004[4]

  • X.509証明書入手
    • 初めての時は下記な流れ。秘密鍵は初回しかダウンロード出来ないので注意。

clip_image006[4]

clip_image007[4]

    • どっちのリンクもクリックして.pemファイル保存
    • 特に秘密鍵ファイル(pk-*.pem)はここでダウンロード一回きりなので注意。

 

環境変数の設定

説明めんどくさいので私が作ったバッチファイル内容をそのまま引用。

SET JAVA_HOME=”C:\Program Files (x86)\Java\jre6″

SET EC2_HOME=”C:\…\ec2-api-tools-1.5.0.1-2011.11.30″

SET PATH=%PATH%;%JAVA_HOME%\bin;%EC2_HOME%\bin

SET EC2_PRIVATE_KEY=C:\…\pk-*.pem

SET EC2_CERT=C:\…\cert-*.pem

SET EC2_URL=https://ec2.ap-northeast-1.amazonaws.com

最後のEC2_URLというので利用するリージョンを決めます。上のは日本です。一覧を見たいときは下記コマンド。

ec2-describe-regions

今実行するとこんな感じ

REGION eu-west-1 ec2.eu-west-1.amazonaws.com

REGION sa-east-1 ec2.sa-east-1.amazonaws.com

REGION us-east-1 ec2.us-east-1.amazonaws.com

REGION ap-northeast-1 ec2.ap-northeast-1.amazonaws.com

REGION us-west-2 ec2.us-west-2.amazonaws.com

REGION us-west-1 ec2.us-west-1.amazonaws.com

REGION ap-southeast-1 ec2.ap-southeast-1.amazonaws.com

 

インポート実行

S3にまずファイルがアップロードされるので、バケットを用意しておいてください。もし適当に作ってあればそれをそのまま使っても大丈夫です。(フォルダを作ってくれるのでファイルがシッチャカメッチャカにそんなになんないと思います)

clip_image008[4]

※バケット名は全ユーザでユニークじゃないと確かダメだったと思うので、例えば「よく使うID-バケット目的」みたいな名称でつけるといいと思います。

下記のようなコマンドを実行するだけ。

ec2-import-instance C:\…\Apache80.vhd -f VHD -t t1.micro -a x86_64 -b [バケット名] -o [アクセスキーID] -w [シークレットアクセスキー]

インポートにはそれなりに時間が掛かります。上記コマンドを打てばテキストでプログレスバーが表示されます。(ローカルファイル – S3へのアップロード)

S3からEBSへの変換進捗状況は下記コマンドで確認

ec2-describe-conversion-tasks

インスタンス起動

Webでも出来ますが、コマンドプロンプトで起動するときは下記のようなコマンド

ec2-start-instances [インスタンスID]

※インスタンスIDはどうやらi-始まりのID

これであとは待てば起動完了です。ステータスがrunningになっても使えるまで結構時間かかります。10分程度ほったらかす感じですかね。

あとはセキュリティグループを調整するなりして(デフォルトで「default」という名前のセキュリティグループを使います)リモートデスクトップで接続して使えます。

 

一時作業ファイル削除

S3にアップロードした分割VHDファイルは不要なので削除します。下記コマンド。

ec2-delete-disk-image -t [インポートタスクID] -o [アクセスキーID] -w [シークレットアクセスキー]

※インポートタスクIDはimport-i-始まりのID

広告
カテゴリー:Others
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。