VM ImportでVirtualBoxのCentOS 6.5からHVMインスタンスを作る

13640498733_acc7a928df_o [追記]しっかりした情報が中の人から発信されたので転載します!勉強になります!
CentOS6.5を VM ImportでEC2にインポートする
http://understeer.hatenablog.com/entry/2014/04/09/172554
HPCをAWSでやろうと思ったときに困ったのが、自分好みの良さそうなHVM-AMIが見当たらない事でした。とあるJAWSDAYSにてAWS松尾さんから「VirtualBoXからイメージ変換してVM Importすれば簡単にHVM-AMI作れますよ(キリッ」と伺ったときに、まじかー!と思ったのでやってみた。

前提条件

  • ホストにしたクライアントはMac Book ProのOS X 10.9.2
  • ゲストはCentOS-6.5-x86_64-bin-DVD1.iso
  • VirtualBox 4.3.10 r93012
  • ec2-api-tools-1.6.13.0
  • Java TM SE Development Kit 8(jdk-8-macosx-x64.dmg)

VirtualBoxでOSの作り込み

用途に合わせて好きに作り込みましょう。SELinuxを無効にしてみたりyum updateしてみたりしてみました。ネットワークアダプタは自動起動するようにしておいた方がいいかもしれませんが、通常は最小インストールで無ければ気にすることでも無いと思います。

VM Import出来るようにイメージを変換する

適当なディレクトリにvdiファイルのみをコピーして、VBoxManageコマンドを使ってRAWイメージに変換します。

VBoxManage internalcommands converttoraw CentOScom.vdi CentOScom.img

EC2 API Toolsをセットアップする

Homebrewでインストールしてもいいですし、自分は普通にzipを落としてきて適当なディレクトリに置いてパスを通しただけです。(近いうちに詳細書きます・・・)

Java TM SE Development Kit 8をセットアップする

こちらもインストール後にパスを通します。(近いうちに詳細書きます・・・)

S3バケットを東京リージョンで用意しておく。

今回はバケット名をvmimport-testとしました。

VM Import用のスクリプトを用意する

クラスメソッド大瀧さんのブログからありがたく頂戴したスクリプトをちょっと改変して使わせて頂きました。

VM ImportでVMwareからAWS EC2へマイグレーションしてみた
http://dev.classmethod.jp/cloud/aws/vmimportfromvmwaretoec2/

#!/bin/bash

RAW=/Users/Oredesu/CentOScom.img
S3_OWNER_ACCESS_KEY=*****************
S3_OWNER_SECRET_KEY=********************
S3_BUCKET_NAME=vmimport-test

ec2-import-instance 
  $RAW 
	-t m3.xlarge 
	-f RAW 
	-a x86_64 
	-p Linux 
	--region ap-northeast-1 
	--bucket $S3_BUCKET_NAME 
	-o $S3_OWNER_ACCESS_KEY 
	-w $S3_OWNER_SECRET_KEY

インスタンスはm3.xlargeにしてありますが、本当はc3.8xlargeにしたかったんです。ところが、このOSだと選択したインスタンスは対応してないと弾かれてしまったので、とりあえずこれでImportした後に、インスタンスタイプを変更することで対応しました。

スクリプトを実際に走らせてみます

Oreno-MacBook-Pro:~ Oredesu$ ./vmimport.sh
Requesting volume size: 8 GB
TaskType	IMPORTINSTANCE	TaskId	import-i-fg7r2o15	ExpirationTime	2014-04-12T09:28:25Z	Status	active	StatusMessage	Pending	InstanceID	i-f50813f3
DISKIMAGE	DiskImageFormat	RAW	DiskImageSize	8589934592	VolumeSize	8	AvailabilityZone	ap-northeast-1c	ApproximateBytesConverted	0	Status	active	StatusMessage	Pending : Downloaded 0
Creating new manifest at vmimport-test/7436a4c6-d3d9-4bd2-8da5-a6a6390b00c7/CentOScom.imgmanifest.xml
Uploading the manifest file
Uploading 8589934592 bytes across 820 parts
0% |--------------------------------------------------| 100%
   |==================================================|
Done
Average speed was 10.531 MBps
The disk image for import-i-fg7r2o15 has been uploaded to Amazon S3
where it is being converted into an EC2 instance.  You may monitor the
progress of this task by running ec2-describe-conversion-tasks.  When
the task is completed, you may use ec2-delete-disk-image to remove the
image from S3.

AWSマネジメントコンソールで確認

完了していれば、stop状態で出来上がっているはずです。インスタンスタイプの変更もOKですね。HVMで動作していることも確認できました。

以上、VM Import自体は簡単でした

S3にイメージファイルが残っているので消しちゃいましょう。ec2-delete-disk-imageコマンドが使えました。インスタンスにはセキュリティーグループを割り当てて、sshの鍵無しで普通にログイン出来ました。後は、SR-IOVを有効にするなど作り込みをしていけば、美しいOSイメージで計算が出来るようになりますね。

[HPC] C3.8xlarge のRHEL6.4 HVMで SR-IOVを有効にする
http://understeer.hatenablog.com/entry/2013/11/22/210804