aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

CentOS6.5を VM ImportでEC2にインポートする

CentOS6.5を EC2にインポートする手順のメモ。

(  CentOS6.5 HVM AMI (SR-IOV対応) - aws memo の公開でやった手順のメモ)

準備

VirtualBoxをインストールしておく

CentOS6.5 minimal CD のisoファイルをダウンロードしておく

EC2 API Tools をセットアップしておく(参考)

手順
  1. VirtualBox上にCentOS VMを作成し、ディスクイメージを用意する
  2. VM Import用のS3 Bucketを作成する
  3. VM Import実行
  4. インポートしたEC2インスタンス(stop状態)をStartし内容を確認した後にAMIを作成する
  5. 作成したAMIからインスタンスを起動して動作確認
手順詳細

VirtualBoxでCentOS6.5をisoファイルから普通にOSインストールする(インストール手順は省略)

  • Linux 2.6/3.x (64bit)
  • メモリ 1024MB
  • 仮想ハードドライブ: VDI (VirtualBox Disk Image)形式 8GB (可変サイズ)

インストール時に注意する点は以下の通り。

 ※こちらもチェック(Step 2: Prepare Your VM - Amazon Elastic Compute Cloud)

インストール後にVMにログインして確認・設定等を行い、VMをシャットダウンする

# /etc/sysconfig/network-scripts/ifup eth0
# ifconfig 
# vi /etc/sysconfig/network-scrpits/ifcfg-eth0
# cat /etc/sysconfig/network-scrpits/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp # chkconfig iptables off
# df -h Filesystem                    Size  Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root  6.7G  725M  5.6G  12% / tmpfs                         7.3G     0  7.3G   0% /dev/shm /dev/xvda1                    485M   32M  428M   7% /boot # cat /etc/fstab UUID=ed0a37a2-065d-42ed-8169-e67f73aae9d2     /     ext4     defaults     1 1 UUID=ab3a3168-8adc-4419-98d9-17079234cd03     /boot     ext4     defaults     1 2 UUID=55476664-15fb-470d-9905-d6585ae4470b     swap     swap     defaults     0 0 # shutdown -h now

VM Import用に、RAWフォーマットのVMイメージファイルを作成する ( on Mac or Windows) 。

$ VBoxManage clonehd /path/to/CentOS6_5.vdi /path/to/CentOS6_5.raw --format RAW

次に、VM Importを行うために、S3にBucketを作成する(例: example-bucket )。この時、VM Import先のリージョンと同じリージョンにBucketを用意することに注意する。

次に、VM Importを行う( on Mac or Windows)

ec2-import-instance \
  /path/to/CentOS6_5.raw \
     -t m3.xlarge \
     -f RAW \
     -a x86_64 \
     -p Linux \
     --region us-west-2 \
     --bucket example-bucket \
     -o $AWS_ACCESS_KEY \
     -w $AWS_SECRET_KEY

Requesting volume size: 8 GB
TaskType     IMPORTINSTANCE     TaskId     import-i-fgeezt5f     ExpirationTime     2014-04-15T01:55:43Z     Status     active     StatusMessage     Pending     InstanceID     i-0e256006
DISKIMAGE     DiskImageFormat     RAW     DiskImageSize     8589934592     VolumeSize     8     AvailabilityZone     us-west-2c     ApproximateBytesConverted     0     Status     active     StatusMessage     Pending : Downloaded 0
Creating new manifest at example-bucket/93b196ad-71c8-466e-8bdf-226ed25c9e17/CentOS.rawmanifest.xml
Uploading the manifest file
Uploading 8589934592 bytes across 820 parts
0% |--------------------------------------------------| 100%
   |===================================

といった表示になる。 上記の例だと、s3://example-bucket/93b196ad-71c8-466e-8bdf-226ed25c9e17/ に RAWファイルが10MB毎に分割されてUPされる。

ec2-import-instance コマンドを実行すると、conversion taskとして次の処理が行われる。

  1. インポート先のインスタンス作成( stop状態)
  2. VMイメージファイルを S3に分割アップロード ( 10分程度)
  3. 分割したイメージファイルを結合 (10分程度)
  4. EBSボリュームが自動で作成され、インポート先インスタンスにアタッチされる(10分程度)

定期的にec2-describe-conversion-tasks を実行して、進捗状況を確認する

ec2-describe-conversion-tasks --region us-west-2
TaskType     IMPORTINSTANCE     TaskId     import-i-fgeezt5f     ExpirationTime     2014-04-15T01:55:43Z     Status     active     StatusMessage     Pending     InstanceID     i-0e256006
DISKIMAGE     DiskImageFormat     RAW     DiskImageSize     8589934592     VolumeSize     8     AvailabilityZone     us-west-2c     ApproximateBytesConverted     6731857920     Status     active     StatusMessage     Progress: 75%

この状態で完了。

ec2-describe-conversion-tasks --region us-west-2
TaskType     IMPORTINSTANCE     TaskId     import-i-fgeezt5f     ExpirationTime     2014-04-15T01:55:43Z     Status     completed     InstanceID     i-0e256006
DISKIMAGE     DiskImageFormat     RAW     DiskImageSize     8589934592     VolumeId     vol-cb45eec7     VolumeSize     8     AvailabilityZone     us-west-2c     ApproximateBytesConverted     6731857920     Status     completed

stop状態のインスタンスをstartさせ、sshログインする。

動作に問題なければ、適切な設定を施した上で Create Imageすると、HVM AMIが作成される。

 うまく動作確認ができれば、S3上のファイルは不要なので削除する

ec2-delete-disk-image \
  --task import-i-fgeezt5f \
  --region us-west-2 \
  -o $AWS_ACCESS_KEY \
  -w $AWS_SECRET_KEY
参考

VM Import (仮想サーバーイメージのインポートとエクスポート機能)| アマゾン ウェブ サービス(AWS 日本語)

Prerequisites - Amazon Elastic Compute Cloud