技術

【AWS】VMWareからAWSへサーバ移設

投稿日:

どうも中田です。
今回はVMWareからAWSへのマイグレーションに関するお話。

先日、仕事でVMWareからAWSへのサーバ移設をやったので、その時のメモを残しておきます。

前提話

AWSへは、コマンドツール(CLI)を使ってインポートします。
流れとしては、コマンド実行するとS3に一旦イメージが配置され、
その後、EC2インスタンスの生成が行われるといったものです。

なので、S3の領域や、APIキーを取得しておく必要があります。

準備

サーバイメージの準備

移設対象となるサーバ(VMWare)からイメージを取得します。

vSphere Clientからデータストアブラウザを使ってイメージをエクスポートする
するとファイル群はこんな感じ。

*****.vmx
*****.nvram
*****.vmdk
*****.vmsd
*****.vmxf
*****.log
インポートツールのインストール

AWSで用意してあるコマンドツールを使ってインポートするので、
事前に入れておきます。

$ brew install ec2-api-tools ec2-api-tools

移設実行!

では早速実行します。

$ ec2-import-instance --(オプション色々)

って感じで行ったんですが、

ERROR: This does not appear to be a Stream Optimized VMDK. It contains invalid magic number 277891307

あらら、、エラー発生。
要は、データストアブラウザ経由でダウンロードしたVMDKファイルはインポートできませんってことらしい。。

イメージサイズが半端なく大きいので、このままなんとかやっちゃえないかという話になり
なんとかやっちゃった話をします。

なんとかやっちゃった話

調べていくとどうやらOVF形式でないとダメっぽい。
なので、VMX形式のファイルをOVF形式に変換できればオッケーってことになった。

OVF形式に変換

VMWareが提供しているOVFToolでこれを使えば変換できるようなのでインストールしておきます。
ちなみに、データストアブラウザで取得してきたファイル群を一つのディレクトリにまとめておく必要があります。

$ ovftool /(ファイル群の場所)/disk_image.vmx /(出力先)/disk_image.ovf

すると、こんな形式のファイルが出力されます。

*****.ovf
*****.mf
*****.vmdk
本気でインポート!

先ほどは失敗しましたが、今度は本気でインポートするので
シェルを作って実行しました。

インスタンプタイプやローカルIPアドレスの指定もしています。

#!/bin/bash
 
VMDK=../disk.vmdk
S3_OWNER_ACCESS_KEY=(APIキー)
S3_OWNER_SECRET_KEY=(APIシークレットキー)
S3_BUCKET_NAME=(S3バケット名)
 
ec2-import-instance \
    --region ap-northeast-1 \
    -O $S3_OWNER_ACCESS_KEY \
    -W $S3_OWNER_SECRET_KEY \
    -p Linux \
    --instance-type t2.micro \
    --format VMDK \
    --architecture x86_64 \
    --bucket $S3_BUCKET_NAME \
    --owner-akid $S3_OWNER_ACCESS_KEY \
    --owner-sak $S3_OWNER_SECRET_KEY \
    --availability-zone ap-northeast-1a \
    --private-ip-address 192.168.200.220 \
    --subnet subnet-eae2579d $VMDK

これでうまくいきました!

-技術
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

【nginx/unicorn】(13: Permission denied) while connecting to upstream

どうも中田です。 AWS上でAPIサーバを構築してて、 * Webサーバ:ngi …

【Alexa Skill】ビックリするなかれ (Unsupported Directive)

どうも中田です。 みなさんAlexa使ってます?Alexaスキル作ってます? 今 …

[Rails] モデルが初期化されてないとな(not initialized)

どうも中田です Railsで、modelの initialize に処理を追加す …

no image

【ionic】ナビゲーションバーがちらつく

どうも、中田です。 ionicでアプリを作っていて、なんかナビゲーションバーがち …

no image

AWS CLIでInvalidSignatureException Error

ECRにイメージをpushするために、dockerログインしようとして遭遇しまし …