HVMなVyatta Core AMIを作ってみた(EBS編)

cc2.8xlargeでVyattaを動かしてみたくなったので、Virtualization TypeがHVMなAMIを作成してみた。
※出来たAMIのIDは下記参照

ap-northeast-1  ami-cfe17bce
ap-southeast-1  ami-20095c72
ap-southeast-2  ami-95b824af
eu-west-1       ami-e7a24190
sa-east-1       ami-b7bf19aa
us-east-1       ami-9981def0
us-west-1       ami-f6a592b3
us-west-2       ami-90d048a0

用意するもの

  1. VirtualBoxなどの入ったPC(Macでも)
  2. 上記VirtualBoxにインストールされた作業用Linuxマシン(今回はUbuntu 13.10を使用)
  3. Vyatta Core 6.6 のISO (vyatta-livecd_VC6.6R1_amd64.isoを使用、ダウンロードは ここから)
  4. AWS上に作業用インスタンス、1GBのEBS Volumeを添えて(/dev/sdfにアタッチ)
  5. AWS CLIのインストールされたマシン

Vyattaのインストール

特に以前の記事と変わった所はありません。
ローカル(VM)にインストールする
ローカル(VM)で最低限の設定をする
までを行ってください。

イメージファイルの作成

今回は完全仮想化(HVM)用なので、ブートローダーなども必要となります。そのため、/dev/sdb などディスク全体のイメージを作ります。

vm$ sudo dd if=/dev/sdb of=vyatta.bin

ファイルは作業用インスタンスにscpコマンド等でコピーしておきます。

EBSへの流し込み〜snapshot作成

作業用インスタンス上で、イメージファイルをEBSに流し込みます

# dd if=vyatta.bin of=/dev/sdf

そして、AWS CLIが使える環境で、volumeを指定してsnapshotを作成します。

$ aws ec2 create-snapshot --volume-id vol-14812642
None    407613804811    None    snap-eca8fac9   2013-10-26T12:09:25+0000       pending vol-14812642    1

AMI登録

今回のキモです。HVMなAMIを登録するには、AWS CLIが必須となります。

$ cat blockdevice.json
[
        {"DeviceName":"/dev/xvda","Ebs":{"VolumeType":"standard","DeleteOnTermination":true,"VolumeSize":1,"SnapshotId":"snap-eca8fac9"}},
        {"DeviceName":"/dev/sdb","VirtualName": "ephemeral0"},
        {"DeviceName":"/dev/sdc","VirtualName": "ephemeral1"},
        {"DeviceName":"/dev/sdd","VirtualName": "ephemeral2"},
        {"DeviceName":"/dev/sde","VirtualName": "ephemeral3"}
]
$ aws ec2 register-image --root-device-name /dev/xvda --name "Vyatta Core 6.6 HVM rev0" --block-device-mappings file://blockdevice.json --virtualization-type hvm --architecture x86_64 --description  '*experimental release* no keypair support, login with vyatta/vyatta'

早速起動してみましょう。

$ aws ec2 run-instances --image-id ami-cfe17bce --instance-type cc2.8xlarge
 :
 :
$ ssh vyatta@ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com
Warning: Permanently added 'ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com,xx.xxx.xx.xx' (RSA) to the list of known hosts.
Welcome to Vyatta
vyatta@ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com's password:
Linux vyatta 3.3.8-1-amd64-vyatta #1 SMP Wed Mar 13 10:35:28 PDT 2013 x86_64
Welcome to Vyatta.
This system is open-source software. The exact distribution terms for
each module comprising the full system are described in the individual
files in /usr/share/doc/*/copyright.
Last login: Sat Oct 26 05:25:08 2013
vyatta@vyatta:~$ grep Xeon /proc/cpuinfo | uniq -c
     32 model name      : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz

ちゃんと上がりました。pvと比べるとgrubの設定をいじる必要がないので、ある意味作りやすいですね...

最後に

Instance Store編はまたの機会に。