aws vm import / export ハンズオン

50
AWS VM Import/Export ハハハハハ JAWS Festa Tohoku 2014, 6 September 2014 Haruka Iwao

Upload: haruka-iwao

Post on 05-Dec-2014

902 views

Category:

Documents


4 download

DESCRIPTION

JAWS Festa Tohoku 2014 で行ったAWS VM import / export ハンズオンの資料です。

TRANSCRIPT

Page 1: AWS VM import / export ハンズオン

AWSVM Import/ExportハンズオンJAWS Festa Tohoku 2014, 6 September 2014

Haruka Iwao

Page 2: AWS VM import / export ハンズオン

もくじ

はじめに VM Import / Export とは 詳しい使い方 実際にやってみよう

Page 3: AWS VM import / export ハンズオン

はじめに

Page 4: AWS VM import / export ハンズオン

Disclaimer( おやくそく )

この発表は個人的なもので、所属する組織の見解ではありません

内容は無保証です

Page 5: AWS VM import / export ハンズオン

わたしはだれ?

岩尾 はるか (@Yuryu) レッドハットで働いています

ストレージが専門です 大阪→つくば→横浜→東京 上野からスーパーひたちで仙台

に来たことがあります 好きなサービス : S3

Page 6: AWS VM import / export ハンズオン

VM Import / Export とは

Page 7: AWS VM import / export ハンズオン

EC2 のインスタンスを出し入れ EC2 は Xen で動いている

HVM では完全仮想化環境 手元の仮想マシンとディスクイ

メージのやりとりが可能

Page 8: AWS VM import / export ハンズオン

何がうれしいの?

秘伝のサーバーをそのままEC2 に移行できる

とりあえず EC2 に移して、サーバーが動くか確認できる

Page 9: AWS VM import / export ハンズオン

対応 OS

イメージを改変するので、対応 OS に限りがある

Windows Server 2003/2003 R2/ 2008/2008 R2/2012/2012 R2

Red Hat Enterprise Linux(RHEL) /CentOS 5.1 ~ 6.5(6.0 を除く )

Ubuntu 12.04 ~ 13.10 Debian 6.0.0 ~ 6.0.8, 7.0 ~ 7.2 RHEL 7 や Ubuntu 14.04 は未対応

Page 10: AWS VM import / export ハンズオン

OS のライセンス

Windows は AWS が用意するライセンスに移行 時間課金になる

RHEL は手元のサブスクリプションを AWS 上に移行 年間契約のまま

Page 11: AWS VM import / export ハンズオン

サポートするイメージ形式

VMware VMDK Hyper-V VHD Citrix Xen VHD その他の形式もコンバートす

れば利用可能

Page 12: AWS VM import / export ハンズオン

サポートされるインスタンス

Windows は何でも OK Linux は一部

インポートしてから変更は OK

Page 13: AWS VM import / export ハンズオン

その他注意書き

サポート対象はしばしば更新されるので AWS のドキュメントで確認 http://

docs.aws.amazon.com/AWSEC2/latest/UserGuide/VMImportPrerequisites.html

Page 14: AWS VM import / export ハンズオン

VM Export について

インポートしたインスタンスのみエクスポート可能

S3 にエクスポートされる

Page 15: AWS VM import / export ハンズオン

詳しい使い方

Page 16: AWS VM import / export ハンズオン

Amazon EC2 CLI を使う

ec2- で始まる Java のツール AWS CLI(Python 製 ) は非対

応 Amazon Linux にはじめから

入っている

Page 17: AWS VM import / export ハンズオン

環境変数をセット

AWS_ACCESS_KEY AWS_SECRET_KEY EC2_URL

リージョンです 東京は https://ec2.ap-northeast-

1.amazonaws.com

Page 18: AWS VM import / export ハンズオン

VirtualBox を使う場合

VBoxManage internalcommands converthd –srcformat VDI -dstformat VMDK <source> <dest>

VirtualBox で直接使う VMDKファイルは使用不可

Page 19: AWS VM import / export ハンズオン

QEMU を使う場合

qemu-img convert –f qcow2 –O vmdk <source> <dest>

Page 20: AWS VM import / export ハンズオン

インポートの手順

Page 21: AWS VM import / export ハンズオン

インポートの流れ ( 内部処理 )

S3 にアップロード インスタンスを登録 つなぎ合わせて EBS ボリュー

ムを作成

Page 22: AWS VM import / export ハンズオン

ec2-import-instance

ec2-import-instance -o $AWS_ACCESS_KEY -w $AWS_SECRET_KEY -f VMDK -t t2.micro -a x86_64 -p Linux --subnet < 対象サブネット > -z <AZ: サブネットに合わせる > –b < 作業用 S3 Bucket> centos6.vmdk( インポートするファイル名 )

Page 23: AWS VM import / export ハンズオン

S3 に登録された様子

Page 24: AWS VM import / export ハンズオン

進行状況をチェック

ec2-describe-conversion-tasks

Page 25: AWS VM import / export ハンズオン

S3 の作業用ファイルを削除

ec2-delete-disk-image -o $AWS_ACCESS_KEY -w $AWS_SECRET_KEY -t < 対象タスク ID>

Page 26: AWS VM import / export ハンズオン

エクスポートの手順

Page 27: AWS VM import / export ハンズオン

エクスポートの準備

使う S3 のバケットに権限付与 [email protected] Upload/Delete と View

Permissions

Page 28: AWS VM import / export ハンズオン

ec2-create-instance-export-task

ec2-create-instance-export-task < インスタンス ID> -e VMware -b < 出力 bucket>

Page 29: AWS VM import / export ハンズオン

ec2-describe-export-tasks

状況を表示 終わると active→completed

に変化します

Page 30: AWS VM import / export ハンズオン

S3 を確認

ファイルができている あとは煮るなり焼くなり

Page 31: AWS VM import / export ハンズオン

実際にやってみよう

Page 32: AWS VM import / export ハンズオン

S3 のバケット作成

リージョンを合わせること

Page 33: AWS VM import / export ハンズオン

作業用 EC2 立ち上げ

t2.micro で Amazon Linux のインスタンスを起動 会場の回線が限られているので

EC2 上で作業します VPC が無い人は VPC も

Page 34: AWS VM import / export ハンズオン

参考 :EC2 API Tools のインストール

OS X$ brew install ec2-api-tools$ echo ‘export JAVA_HOME="$(/usr/libexec/java_home)”’ \>> ~/.bash_profile$ echo ‘export EC2_HOME=/usr/local/Cellar/ec2-api-tools/1.7.1.0/libexec’ >> ~/.bashrc

Cellar のパスはバージョンごとに変わるので要確認

Page 35: AWS VM import / export ハンズオン

参考 :EC2 API Tools のインストール

Linux$ wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip$ # Ubuntu の場合$ echo 'export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"’ \ >> .profile$ # Fedora / CentOS の場合$ echo 'export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk"’ \>> .bash_profile

ec2-api-tools.zip を展開 (unzip)$ unzip ec2-api-tools.zip$ echo “export EC2_HOME=$(pwd)/ec2-api-tools-1.7.1.1” \>> .profile$ echo ‘export PATH=$PATH:$EC2_HOME/bin’ >> .profile

EC2_HOME のパスはバージョンによって変わるので要確認

Page 36: AWS VM import / export ハンズオン

インポートする VM の準備

今回はすでに作成したものを使います

$ wget bit.ly/sendai-vm-import-2014 この URL は期間限定です

Page 37: AWS VM import / export ハンズオン

環境変数を用意します

aws.sh というファイルに内容を用意

$ source aws.sh を実行

export AWS_ACCESS_KEY=xxxexport AWS_SECRET_KEY=xxxexport EC2_URL=https://ec2.ap-northeast-1.amazonaws.com

Page 38: AWS VM import / export ハンズオン

インポート ec2-import-instance

-o $AWS_ACCESS_KEY -w $AWS_SECRET_KEY -f VMDK -t t2.micro -a x86_64 -p Linux --subnet < 対象サブネット > -z <AZ: サブネットに合わせる > –b < 作業用 S3 Bucket> centos6.vmdk( インポートするファイル名 )

Page 39: AWS VM import / export ハンズオン

サブネット ID の調べ方

Page 40: AWS VM import / export ハンズオン

しばらく待ちます

ec2-describe-conversion-tasks で進行状況をチェック

Page 41: AWS VM import / export ハンズオン

コンソールから確認

Page 42: AWS VM import / export ハンズオン

起動してみよう

id:root, password:centos で入れます

Page 43: AWS VM import / export ハンズオン

エクスポートしてみよう

ec2-create-instance-export-task < インスタンス ID> -e VMware -b < 出力 bucket>

Page 44: AWS VM import / export ハンズオン

おまけ : Docker 化

Page 45: AWS VM import / export ハンズオン

Volume の Docker 化

標準では、インポートしたものではないインスタンスは持ち出せないので、 Docker で持ち出してみよう

Page 46: AWS VM import / export ハンズオン

ボリュームをマウント

Page 47: AWS VM import / export ハンズオン

マウントして固める

# mount /dev/xvdf1 /mnt # cd /mnt # tar --numeric-owner -czpf

/tmp/amazon-linux.tar.gz . 必要に応じてファイルを移動

Page 48: AWS VM import / export ハンズオン

Docker にインポート

# cat /tmp/amazon-linux.tar.gz | docker - amazon

Page 49: AWS VM import / export ハンズオン

何か実行

# docker run -it amazon cat /etc/system-release

Page 50: AWS VM import / export ハンズオン

Thank you!