Advertisement

More Related Content

Slideshows for you(20)

Similar to AWS VM import / export ハンズオン(20)

Advertisement

AWS VM import / export ハンズオン

  1. AWS VM Import/Export ハンズオン JAWS Festa Tohoku 2014, 6 September 2014 Haruka Iwao
  2. もくじ はじめに VM Import / Export とは 詳しい使い方 実際にやってみよう
  3. はじめに
  4. Disclaimer(おやくそく) この発表は個人的なもので、 所属する組織の見解ではあり ません 内容は無保証です
  5. わたしはだれ? 岩尾はるか(@Yuryu) レッドハットで働いています ストレージが専門です 大阪→つくば→横浜→東京 上野からスーパーひたちで仙 台に来たことがあります 好きなサービス: S3
  6. VM Import / Export とは
  7. EC2のインスタンスを出し入れ EC2はXenで動いている HVMでは完全仮想化環境 手元の仮想マシンとディスク イメージのやりとりが可能
  8. 何がうれしいの? 秘伝のサーバーをそのまま EC2に移行できる とりあえずEC2に移して、 サーバーが動くか確認できる
  9. 対応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は未対応
  10. OSのライセンス WindowsはAWSが用意するラ イセンスに移行 時間課金になる RHELは手元のサブスクリプ ションをAWS上に移行 年間契約のまま
  11. サポートするイメージ形式 VMware VMDK Hyper-V VHD Citrix Xen VHD その他の形式もコンバートす れば利用可能
  12. サポートされるインスタンス Windowsは何でもOK Linuxは一部 インポートしてから変更はOK
  13. その他注意書き サポート対象はしばしば更新 されるのでAWSのドキュメン トで確認 http://docs.aws.amazon.com/AW SEC2/latest/UserGuide/VMImpor tPrerequisites.html
  14. VM Exportについて インポートしたインスタンス のみエクスポート可能 S3にエクスポートされる
  15. 詳しい使い方
  16. Amazon EC2 CLI を使う ec2- で始まるJavaのツール AWS CLI(Python製)は非対応 Amazon Linux にはじめから 入っている
  17. 環境変数をセット AWS_ACCESS_KEY AWS_SECRET_KEY EC2_URL リージョンです 東京はhttps://ec2.ap-northeast- 1.amazonaws.com
  18. VirtualBoxを使う場合 VBoxManage internalcommands converthd –srcformat VDI -dstformat VMDK <source> <dest> VirtualBoxで直接使うVMDK ファイルは使用不可
  19. QEMUを使う場合 qemu-img convert –f qcow2 – O vmdk <source> <dest>
  20. インポートの手順
  21. インポートの流れ(内部処理) S3にアップロード インスタンスを登録 つなぎ合わせてEBSボリュー ムを作成
  22. 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(インポートするファイル名)
  23. S3に登録された様子
  24. 進行状況をチェック ec2-describe-conversion-tasks
  25. S3の作業用ファイルを削除 ec2-delete-disk-image -o $AWS_ACCESS_KEY -w $AWS_SECRET_KEY -t <対象タスクID>
  26. エクスポートの手順
  27. エクスポートの準備 使うS3のバケットに権限付与 vm-import-export@amazon.com Upload/DeleteとView Permissions
  28. ec2-create-instance-export-task ec2-create-instance-export-task <インスタンスID> -e VMware -b <出力bucket>
  29. ec2-describe-export-tasks 状況を表示 終わるとactive→completed に 変化します
  30. S3を確認 ファイルができている あとは煮るなり焼くなり
  31. 実際にやってみよう
  32. S3のバケット作成 リージョンを合わせること
  33. 作業用EC2立ち上げ t2.micro でAmazon Linux のイ ンスタンスを起動 会場の回線が限られているので EC2上で作業します VPCが無い人はVPCも
  34. 参考: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 のパスはバージョンごとに変わるので要確認
  35. 参考: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 のパスはバージョンによって変わるので要確認
  36. インポートするVMの準備 今回はすでに作成したものを 使います $ wget bit.ly/sendai-vm-import-2014 このURLは期間限定です
  37. 環境変数を用意します aws.sh というファイルに内容 を用意 $ source aws.sh を実行 export AWS_ACCESS_KEY=xxx export AWS_SECRET_KEY=xxx export EC2_URL=https://ec2.ap-northeast-1.amazonaws.com
  38. インポート 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(インポートするファイル名)
  39. サブネットIDの調べ方
  40. しばらく待ちます ec2-describe-conversion-tasks で進行状況をチェック
  41. コンソールから確認
  42. 起動してみよう id:root, password:centos で入 れます
  43. エクスポートしてみよう ec2-create-instance-export-task <インスタンスID> -e VMware -b <出力bucket>
  44. おまけ: Docker化
  45. VolumeのDocker化 標準では、インポートしたも のではないインスタンスは持 ち出せないので、Dockerで持 ち出してみよう
  46. ボリュームをマウント
  47. マウントして固める # mount /dev/xvdf1 /mnt # cd /mnt # tar --numeric-owner -czpf /tmp/amazon-linux.tar.gz . 必要に応じてファイルを移動
  48. Docker にインポート # cat /tmp/amazon-linux.tar.gz | docker - amazon
  49. 何か実行 # docker run -it amazon cat /etc/system-release
  50. Thank you!
Advertisement