ママ、どうしておうちにクラウドがあるの?

さて玄箱から 750GB HDD を摘出して仮想マシンホスト用にすることになったわけですが、せっかくですから Lucid Server を使って UEC 環境にしてみることにしました。今回は某 SOHO の事務所より徴発した ML115G5 をもう一機使用して、こいつに HDD を搭載して CC/CLC/SC/Walrus 用のノードにすることにします。当然 Phenom を搭載したもう一機は NC に。
UECのインストールは非常に簡単で、Ubuntu Server のインストールができる人ならば誰でもできるはず。ちなみに Lucid から UEC は NC を含む全ノードを一台の物理マシンに押し込むこともできますが、この構成を取るには Euca の仕様上、ネットワークを "SYSTEM" か "STATIC" で構築する必要があるようです。UECインストーラはデフォルトで "MANAGED-NOVLAN" 決め打ちっぽいので*1、ここに気をつける必要があるかもしれません。
UEC マシンイメージはこのへんから頂きました。取得とバンドルの登録は @IT の記事を参考に。記事のままだとファイル名違いで取得ができなかったりしたので、ちょっと改変したスクリプトを動かしました。やってることは、img と kernel と initrd を取得して、bundle-image して upload して register しているだけですね。あと初回は鍵ペアの登録も行います。この鍵はインスタンスを起動させるときに -k オプションで指定するもの。この鍵を使って ssh ログインができたりします。っていうかこれがないとログインできません。

#!/bin/bash

ARCH=amd64
RELEASE=lucid
EDITION=server
TIMESTAMP=$(date +%Y%m%d%H%M%S)
BUCKET_KERNEL="k-$TIMESTAMP"
BUCKET_INITRD="r-$TIMESTAMP"
BUCKET_IMAGE="i-$TIMESTAMP"
[ $ARCH = "amd64" ] && IARCH=x86_64 || IARCH=i386
UEC_IMG=$RELEASE-$EDITION-uec-$ARCH
UEC_KERNEL=$UEC_IMG-vmlinuz-virtual
UEC_INITRD=$UEC_IMG-initrd-virtual
URL=http://ubuntutym2.u-toyama.ac.jp/uec-images/$RELEASE/current
[ ! -e $UEC_IMG.tar.gz ] && wget $URL/$UEC_IMG.tar.gz # This may take a bit
[ ! -e $UEC_IMG.img ] && tar -S -xzf $UEC_IMG.tar.gz
euca-bundle-image -i $UEC_KERNEL -r $IARCH --kernel true
euca-upload-bundle -b $BUCKET_KERNEL -m /tmp/$UEC_KERNEL.manifest.xml
EKI=$(euca-register $BUCKET_KERNEL/$UEC_KERNEL.manifest.xml | grep "^IMAGE" | awk '{print $2}') && echo $EKI
euca-bundle-image -i $UEC_INITRD -r $IARCH --ramdisk true
euca-upload-bundle -b $BUCKET_INITRD -m /tmp/$UEC_INITRD.manifest.xml
ERI=$(euca-register $BUCKET_INITRD/$UEC_INITRD.manifest.xml | grep "^IMAGE" | awk '{print $2}') && echo $ERI
euca-bundle-image -i $UEC_IMG.img -r $IARCH --kernel $EKI --ramdisk $ERI
euca-upload-bundle -b $BUCKET_IMAGE -m /tmp/$UEC_IMG.img.manifest.xml
EMI=$(euca-register $BUCKET_IMAGE/$UEC_IMG.img.manifest.xml | grep "^IMAGE" | awk '{print $2}') && echo $EMI
if [ ! -e mykey.priv ]; then
  touch mykey.priv
  chmod 0600 mykey.priv
  euca-add-keypair mykey > mykey.priv
fi
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0

Euca での仮想マシンは、やはり「リセットすると初期化される」というのが一番の特徴でしょうか。なので、VMware のように「ハードディスクを作って、インストールして、アップデートして、マシンを育てていく」という使い方はできません。しかし元になるイメージから仮想マシンインスタンスを量産でき、数を増やすも減らすも簡単という特徴もあります。特定の用途向けに構成したマシンイメージから、インスタンスを量産して使い捨てる、そんなサービスを提供するのには最適ですね。
ちなみに私は VMware でもテスト用のマシンイメージをしょっちゅう新規作成し、バックアップやスナップショットを作らずに使い捨てるタイプなので、テスト用にクリーンなインスタンスをいつでも作れるというのは嬉しいです。

結論。うん、やっぱりおうちには必要ないよ、ママ。

*1:確認したわけではないです。違ってたらごめん。でも UEC のコンセプトが MANAGED モードの Euca を簡単に構成するというコンセプトだった気がするので、そういうものなのかも。