instance-storeのインスタンスからEBS-BackedのAMIを作る

Instance-StoreタイプのインスタンスからEBS-BackedタイプのAMIを用意する方法を説明します。

注意:DevPay(有料) AMIに関しては、AMI提供者によっては「EBS-Backedタイプに変更」や「bundle作業」は禁止しているようです。この場合、サポート外だとかライセンスの違反などになり得るので、提供者さんに確認してみましょう。また、EBS-BackedタイプのDevPay AMI自体がAWSでサポートしていないので、DevPayのAMIをこの方法で使うのはやめておきましょう。参照: http://aws.amazon.com/devpay/faqs/#How_does_Amazon_DevPay_protect_my_application_from_unauthorized_use

1. それではまずInstance-Storeタイプのインスタンスを起動し、ログインしておきます。
2. インスタンスのrootと同じEBSボリュームを作成します。
3. EBSボリュームをインスタンスにアタッチする。
4. xfprogsをインスタンスにインストール

# yum install xfsprogs
Loaded plugins: fastestmirror
Determining fastest mirrors
..
Installed:
  xfsprogs.i386 0:2.9.4-4.fc8

Complete!
EBSボリュームをフォーマット化する
# mkfs.xfs /dev/sdf
meta-data=/dev/sdf               isize=256    agcount=16, agsize=163840 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=2560, version=1
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
fstabにmount情報を登録し、mountする
# echo "/dev/sdf /bundlecontent xfs noatime 0 0" >> /etc/fstab
# mkdir /bundlecontent
# mount /bundlecontent
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  2.4G  7.1G  25% /
/dev/sda2             147G  189M  140G   1% /mnt
none                  854M     0  854M   0% /dev/shm
/dev/sdf               10G  544K   10G   1% /bundlecontent
ec2-bundle-volコマンドを使ってrootのボリュームをバンドルします。-eオプションでバンドルするディレクトリを除外し、-dオプションでバンドルしたデータを保存する場所を指定します。
ec2-bundle-volについて: http://docs.amazonwebservices.com/AmazonEC2/dg/2006-10-01/CLTRG-ami-bundle-vol.html
# ec2-bundle-vol --cert ~/cert-***.pem --privatekey ~/pk-***.pem --user ********** -e /bundlecontent -d /bundlecontent
Please specify a value for arch [i386]:
Copying / into the image file /tmp/image...
...
Created image.part.82
Generating digests for each part...
Digests generated.
Creating bundle manifest...
ec2-bundle-vol complete.

# dd if=/dev/sda1 of=/dev/sdf
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 639.09 s, 16.8 MB/s
コピーが終わったら、mountしているEBSボリュームにいき、/etc/fstabファイルのEBSボリュームデバイス情報を削除しておく。その後、EBSボリュームをumount
#vi etc/fstab

/dev/sda1               /                       ext3    defaults 1 1
/dev/sda2               /mnt                     ext3    defaults 0 0
/dev/sda3               swap                    swap    defaults 0 0
none                    /dev/pts                devpts  gid=5,mode=620 0 0
none                    /dev/shm                tmpfs   defaults 0 0
none                    /proc                   proc    defaults 0 0
none                    /sys                    sysfs   defaults 0 0
/dev/sdf /bundlecontent xfs noatime 0 0 <-削除

# umount /dev/sdf
その後、AWSマネージメントコンソールに戻り、EBSボリュームのSnapshotを作成
Snapshotを元にEBS-BackedのAMIを作成する時もAKIとARIは元のAMIを参照して指定しておいたほうが良い。
ec2-registerでsnapshotを元にAMIを作成する
$ ec2-describe-images ami-b8a60cb9
IMAGE   ami-b8a60cb9    632925041470/WowzaMediaServer-2.2.4-i386        632925041470    available       public  8ED157F9        i386    machine     aki-ec09a2ed    ari-ce09a2cf            instance-store  paravirtual     xen

$ ec2-register -n "ebsed-wza" --region ap-northeast-1 -a i386 -s snap-f24c7199 --root-device-name /dev/sda1 --kernel aki-ec09a2ed --ramdisk ari-ce09a2cf
IMAGE   ami-bca115bd
AMI作成完了後、インスタンスを起動してみると問題なくログインできるのを確認して終了
$ ssh -i keypair.pem root@ec2-176-32-77-171.ap-northeast-1.compute.amazonaws.com
The authenticity of host 'ec2-176-32-77-171.ap-northeast-1.compute.amazonaws.com (176.32.77.171)' can't be established.
RSA key fingerprint is be:c0:10:4e:20:45:90:92:e9:93:a0:3a:a6:0b:ef:1e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-176-32-77-171.ap-northeast-1.compute.amazonaws.com,176.32.77.171' (RSA) to the list of known hosts.

         __|  __|_  )  Fedora 8
         _|  (     /    32-bit
        ___|\___|___|


  Welcome to:

    Wowza Media Server 2 for Amazon EC2

      Version: 2.2.4

[root@ip-10-152-67-226 ~]#

About tkobayashi

#aws #cloud #programming #web #ninja #gym #movies #scuba #twoandahalfmen http://www.koba206.com
This entry was posted in amazon web services and tagged , , , . Bookmark the permalink.

Leave a Reply