あいしんくいっと

ありきたりだけど、少しだけ役に立つことをありのままに書こうと思う。

VMimportを使ってLinuxをAWSに移行しよう!(CentOS7編)

time 2015/05/10

オンプレからAWSへの移行を考えた場合、下記の2パターンが思い浮かびます。

  • 新規構築して、データのみを移行
  • VM Import/Exportを使ってそのまま移行

新規で構築してデータのみ移行するのも一つの手段ですが、色々とカスタマイズしてあるサーバを新規で構築し直すとなるとそれなりの手間がかかりますし、出来ればそのままで移行したい時があります。
そんな時にはAWSが提供している「VMimport/export」を使って簡単にAWSに移行する事が出来ます。
では、VM Import/Exportを試して行きたいと思います。

■移行対象となるシステム構成

仮想マシンOS: CentOS7
CPU: 1個
MEMORY: 1024MB
HDD: 30GB

私の環境ではESXi6.0上で稼働しています。

 

sponsored link

OVFテンプレートの抽出

移行対象となる仮想マシンのOVFテンプレートの抽出を行います。
OVFテンプレートのエクスポートは仮想マシンの停止が必要になりますので、あらかじめ停止しておきます。
vmimport-0
エクスポートを開始します。
vmimport-1
開始すると下記の画面が出力されるので完了するまで待ちます。
vmimport-2
以下が出力されると完了です。
今回だとエクスポートは7分ほどで完了しました。(環境に左右されるのであくまで目安)
vmimport-3

 

 

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 <シークレットキー>

コマンド実行例)
vmimport-4

ゲージが100%になり、完了したかに見えますが内部的には処理が動いている場合があるので、以下のコマンドで確認します。
時間を図っていなかったのですが、大体30分位でアップロード完了したように思います。

ec2-import-instanceを実行すると下記の処理が行われます。

1. AWS上にEC2インスタンスの作成
2. S3へVMイメージファイルの分割アップロード
3. S3に分割アップロードされたVMイメージファイルの結合
4. EBSボリュームにVMイメージ書き込まれ、EC2インスタンスが作成される

下記のコマンドで進捗確認が可能。

ec2-describe-conversion-tasks

下記の場合はまだ処理中
vmimport-5

完了!
vmimport-6-0

処理が完了したら、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に移行して行きましょう。
ではでは。

sponsored link

down

コメントする




*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Author

あいしんくいっと

あいしんくいっと

あいしんくいっとの中の人。

ありきたりだけど、自分なりの視点で少しでも人の役に立つ記事をありのままに書くをモットーに。 たまには役立つことが書けると良いかな。

サイトポリシーはこちら

聞きたいことがあれば、気軽にツイートください♪可能な範囲でお答えします。
follow us in feedly

Twitter

オススメ記事