はじめまして、デプロイ王子こと廣瀬一海(@kazumihirose)です。
はじめに
vmware vSphereサーバからAWSへvmimportを行ってみました。AWSの解説では
VM Import/Export
VM Import/Export を使用すると、仮想マシンイメージを既存の環境から Amazon EC2 インスタンスにインポートすることや、元のオンプレミス環境にエクスポートすることが簡単にできます。この機能によって、仮想マシンが Amazon EC2 のインスタンスとして移行されてすぐに使用できる状態になるので、IT セキュリティ、構成管理、およびコンプライアンスに関するお客様の要件に合わせて作成した仮想マシンへの、これまでの投資が無駄になることはありません。また、インポートしたインスタンスを元のオンプレミス仮想化インフラストラクチャにエクスポートすることもできるので、作業負荷を自社のITインフラストラクチャにデプロイできるようになります。
というわけで、つまりは「会社にある仮想マシンをインポートできますよ」って事みたいです。
移行仮想環境
移行元になるvmware vmSphereの環境は以下の通り
Parent OS
- vmware ESXi 5.5.0
- vmware vSphere client 5.5.0
GuestOS CentOS 6.5
- OS用のディスク 30GB
- データー用のディスク200GB
パーティションは以下の通り、現実的なデータにする為にも、ある程度ダミーデーターでHDDを埋めました。
/dev/mapper/VolGroup-lv_root 27G 24G 1.6G 94% /
/dev/sda1 485M 55M 405M 12% /boot
/dev/sdb1 197G 177G 11G 95% /data
これだけはやっておく
やっておかないと、もろハマりますのでしっかりとやっておきましょう。
SSH/RDPのリモートコンソールを事前にインストール
これやってないとAWS持ち込み後に仮想マシンにアクセスできません。Firewall(IPTables/Advanced Windows Firewall)も一旦はOpenにして、インポートした後にしっかりアクセスができるかチェックしておきましょう。
Windows Serverなら250MBの空き容量と、.NET Framework 3.5がインストール済
インポート時に自動的にドライバがインストールされます。Windows Serverの場合は、AWS用インスタンスのドライバのセットアップのために250MBは空き容量を開けておきましょう。ライセンスはAWSのインスタンスのライセンスを利用する事ができます。sysprepあらかじめ行っておきましょう。
vmware toolsはアンインストール
あとからアンインストールでも問題は無いみたいです、インポートされるインスタンスはHVMにインポートされます。PV(準仮想化)にはインポートできませんので、つまりはHVM提供しているインスタンスのみになります。
複数台のディスクを持つ仮想マシンはインポートできません
このように書いてあると追加のディスクNGみたいに考えそうですが、インポートは1インスタンス1ディスクイメージでインポートされるだけで、後に別途ディスクイメージを転送後にattachできます。
逆に起動ディスクがRAID化されていたり、LVMなrootディスクでは何か問題があるかもしれません。
複数ネットワークカードはサポートされていません
このように書いてあると追加のネットワークカードはNGみたいに考えそうですが、当初インポートされる際に1ネットワークカードでインポートされます、後にネットワークカードを転送後に追加可能です。
ネットワークインターフェイスがBondingされていたりすると問題になるかもしれません。
エクスポート
- エクスポートしたい仮想マシンを選択して、「ファイル」->「エクスポート」->「OVFテンプレートのエクスポート」します。
- 名前、出力先ディレクトリ、フォーマット(OVF)を指定して、OKをクリック
- コーヒーでも飲んで待ちましょう
インポート
インポートにはEC2 CLIでインポートします。
エクスポートしたフォルダにはディスクがそれぞれOS起動用、追加ディスク用が出力されています。
- CentOS65-30GB.mf
- CentOS65-30GB.ovf
- CentOS65-30GB-disk1.vmdk
- CentOS65-30GB-disk2.vmdk
リージョン一覧取得
$ ec2-describe-regions -O S3へのアクセスキー -W S3へのシークレットキー
インスタンスへインポート
$ ec2-import-instance --region ap-northeast-1 --aws-access-key S3へのアクセスキー --aws-secret-key S3へのシークレットキー --instance-type c3.large --group sg-88bd4ded --format VMDK --architecture x86_64 --platform Linux --bucket clpvmimport001 --owner-akid S3へのアクセスキー --owner-sak S3へのシークレットキー --availability-zone ap-northeast-1a --subnet subnet-e4776f90 CentOS65-30GB-disk1.vmdk
ボリュームのインポート
$ ec2-import-volume --region ap-northeast-1 --aws-access-key S3へのアクセスキー --aws-secret-key S3へのシークレットキー --format VMDK --bucket clpvmimport001 --owner-akid S3へのアクセスキー --owner-sak S3へのシークレットキー --availability-zone ap-northeast-1a CentOS65-30GB-disk2.vmdk
インポート作業のチェック
$ ec2-describe-conversion-tasks --region ap-northeast-1 --aws-access-key S3へのアクセスキー --aws-secret-key S3へのシークレットキー
TaskType IMPORTINSTANCE TaskId import-i-fhecg3h8 ExpirationTime 2014-07-10T20:17:43Z Status completed InstanceID i-610f2367
DISKIMAGE DiskImageFormat VMDK DiskImageSize 726333440 VolumeId vol-ce328fc4 VolumeSize 30 AvailabilityZone ap-northeast-1a ApproximateBytesConverted 726331680 Status completed
TaskType IMPORTINSTANCE TaskId import-i-fhd49x78 ExpirationTime 2014-07-12T13:06:52Z Status completed InstanceID i-c8d2fdce
DISKIMAGE DiskImageFormat VMDK DiskImageSize 604369408 VolumeId vol-1070cc1a VolumeSize 30 AvailabilityZone ap-northeast-1a ApproximateBytesConverted 604367328 Status completed
TaskType IMPORTVOLUME TaskId import-vol-ffw5tiuf ExpirationTime 2014-07-10T20:35:33Z Status completed
DISKIMAGE DiskImageFormat VMDK DiskImageSize 5313536 VolumeId vol-fa2d90f0 VolumeSize 200 AvailabilityZone ap-northeast-1a ApproximateBytesConverted 5287840
TaskType IMPORTVOLUME TaskId import-vol-fg44w7td ExpirationTime 2014-07-12T13:11:58Z Status completed
DISKIMAGE DiskImageFormat VMDK DiskImageSize 152687616 VolumeId vol-ab70cca1 VolumeSize 200 AvailabilityZone ap-northeast-1a ApproximateBytesConverted 152592960
S3にアップロードされたディスクイメージの削除
ec2-delete-disk-image --aws-access-key S3へのアクセスキー --aws-secret-key S3へのシークレットキー --owner-akid S3へのアクセスキー --owner-sak S3へのシークレットキー -t インポートタスクID
インポートの確認とインスタンスの起動
インポートが終了すると、STOP状態でインスタンスの一覧に表示されます、この表示されたインスタンスを後は起動するだけでOKです。また、追加ディスクに関してもvolumeの一覧に表示されていますので、Attach volumeでインスタンスにアタッチを行えばOKですし、NICの追加に関してもEC2コントロールパネルから追加が可能です。
おわりに
今回は一般の回線から行ったので、10分程度のアップロード時間になり、その後変換タスクが10分程度で完了しましたが、DirectConnectを使うと、速度は6倍程度まで伸ばせる事がわかっています。
現在は、Direct Connectの環境をうまく使いながら効率の良いインポートプログラムの開発などを研究中です。
元記事は、こちら