この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
オンプレからAWSへの移行を考えた場合、下記の2パターンが思い浮かびます。
- 新規構築して、データのみを移行
- VM Import/Exportを使ってそのまま移行
新規で構築してデータのみ移行するのも一つの手段ですが、色々とカスタマイズしてあるサーバを新規で構築し直すとなるとそれなりの手間がかかりますし、出来ればそのままで移行したい時があります。
そんな時にはAWSが提供している「VMimport/export」を使って簡単にAWSに移行する事が出来ます。
では、VM Import/Exportを試して行きたいと思います。
■移行対象となるシステム構成
仮想マシンOS: | CentOS7 |
CPU: | 1個 |
MEMORY: | 1024MB |
HDD: | 30GB |
私の環境ではESXi6.0上で稼働しています。
OVFテンプレートの抽出
移行対象となる仮想マシンのOVFテンプレートの抽出を行います。
OVFテンプレートのエクスポートは仮想マシンの停止が必要になりますので、あらかじめ停止しておきます。
エクスポートを開始します。
開始すると下記の画面が出力されるので完了するまで待ちます。
以下が出力されると完了です。
今回だとエクスポートは7分ほどで完了しました。(環境に左右されるのであくまで目安)
S3上に移行用のバケット作成
VmimportではデータをS3にアップロードする必要があります。
なので移行用のバケットを作成します。
名前の指定は特にありませんが、VMimportコマンドの引数で指定します。
ec2-api-toolsの導入
下記よりec2-api-toolsをダウンロード、インストール&セットアップします。
EC2-API-TOOLSの実行にはアクセスキーとシークレットキーが必要になりますので、EC2周りの権限を持ったAPIキーを用意しておきます。
ec2-api-tools
参考サイト)EC2 API Tools For Windows
VMimport実行
それではいよいよVMimportを行います。
DOSプロンプトを起動し、EC2-API-Toolsの環境変数を設定するために下記を実行します。
■環境設定
set JAVA_HOME="C:Program Files (x86)Javajre1.8.0_25"
set EC2_HOME=C:ec2-api-tools-1.7.3.2
set PATH=C:ec2-api-tools-1.7.3.2bin
set EC2_URL=https://ec2.ap-northeast-1.amazonaws.com
set AWS_ACCESS_KEY=<アクセスキー>
set AWS_SECRET_KEY=<シークレットキー>
■インポートコマンド
ec2-import-instance ^
C:workcentos7centos7-disk1.vmdk ^
-t t2.micro ^
-f VMDK ^
-a x86_64 ^
-p Linux ^
--bucket ithinkit ^
-o <アクセスキー> ^
-w <シークレットキー>
ゲージが100%になり、完了したかに見えますが内部的には処理が動いている場合があるので、以下のコマンドで確認します。
時間を図っていなかったのですが、大体30分位でアップロード完了したように思います。
ec2-import-instanceを実行すると下記の処理が行われます。
1. AWS上にEC2インスタンスの作成
2. S3へVMイメージファイルの分割アップロード
3. S3に分割アップロードされたVMイメージファイルの結合
4. EBSボリュームにVMイメージ書き込まれ、EC2インスタンスが作成される
下記のコマンドで進捗確認が可能。
ec2-describe-conversion-tasks
処理が完了したら、AWS上に新規でEC2インスタンスが作成されます。
作成されたEC2インスタンスを起動してSSH接続出来れば移行自体は完了です。
移行したEC2インスタンスのAMI化
移行が完了するとデフォルトVPC上に勝手に配置されてしまいます。
なので必要に応じて、移行したインスタンスイメージをAMI化して任意のVPCなりに配置し直す事をオススメします。
20150526 追記
importコマンド実行の際、[–subnet subnet_id] [–private-ip-address ip_address] といったオプション指定する事で任意のVPCに任意のIPを指定する事が可能です。
指定すればこの手順は必要ないと思われます。
S3上のゴミ掃除
移行したインスタンスの動作確認が取れれば、S3上にアップロードしたイメージファイルの削除を行います。
インポートIDは「ec2-describe-conversion-tasks」コマンドで確認出来ます。
ec2-delete-disk-image ^
-o <アクセスキー> ^
-w <シークレットキー> ^
-t <インポートID>
もし、上手く削除出来ない場合はS3上のバケット内のデータを手動で削除します。
どうでしたか。AWSに移行出来たでしょうか?
基本的にはWindowsだろうが、Linuxだろうが手順に大きな差は無いと思います。
オンプレのサーバをドンドンとAWSに移行して行きましょう。
ではでは。