Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS VM import / export ハンズオン

6,114 views

Published on

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

AWS VM import / export ハンズオン

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

×