KanonをAmazon EC2にインストールする

(セキュリティ上の注意を追記)

Amazon EC2Kanonをインストールして、試用する環境を構築したので、備忘にメモしておきます。公式手順はこちらです。

KanonOSSかつ無償な上に、AWSに無料ティアがあるおかげで、お金をかけずに検証ができそうです。ありがたいことです。

インスタンスの準備

公式手順の「Linux環境の準備」にあたる作業を行います。今回はAWSで環境を構築するので、Linux OSのインストールされた仮想マシンインスタンスを準備します。

Kanonが現時点で対応しているOSの中から、Ubuntu10.10を使うことにしました。というわけで、Ubuntuの公式AMIを使って、EC2インスタンスを作成します。

Ubuntuのサイトによると、

Official Ubuntu AMIs are published by the 'Canonical' user, with Amazon ID '099720109477'.

EC2StartersGuide - Community Help Wiki

とのことなので、次のコマンドを実行します。

$ ec2-describe-images -a --filter "architecture=x86_64" --filter "root-device-type=ebs" --filter "owner-id=099720109477" | grep 10.10

該当するAMIの情報を取得できます。

(略)
IMAGE	ami-d05aafb9	099720109477/ebs/ubuntu-images-milestone/ubuntu-maverick-10.10-rc-amd64-server-20100928.4	099720109477	available	public	x86_64	machine	aki-427d952b			ebs	paravirtual	xen
(略)
IMAGE	ami-548c783d	099720109477/ebs/ubuntu-images/ubuntu-maverick-10.10-amd64-server-20101007.1	099720109477	available	public		x86_64	machine	aki-427d952b			ebs	paravirtual	xen
IMAGE	ami-cef405a7	099720109477/ebs/ubuntu-images/ubuntu-maverick-10.10-amd64-server-20101225	099720109477	available	public		x86_64	machine	aki-427d952b			ebs	paravirtual	xen

AWSのマネジメントコンソールで確認すると、どれもus-eastにあるAMIです。まあいいやってことで、無料ティアのami-cef405a7を選択し、マネジメントコンソールからEC2インスタンスを作成します。

ポイントは次の3つです。

ポイント1: Kernel IDを明示的に指定する

Kernel IDには、上で判明したaki-427d952bを指定します。

指定しなければ、デフォルトのカーネルが使われます。しかし、AMIと合致しないものが選ばれてしまう場合もあり、切り分けが困難なトラブルの元になります。

ポイント2: 専用セキュリティグループを使う

Kanonサーバ専用のセキュリティグループを作成した方が、融通が効きます。Kanonを入れたマシンは、開発・テスト用のマシンとは違う使い方をする(違うポートを開けたり閉じたりする)ことが想定されるためです。

初期設定では、この後実施するセットアップや管理のためのSSHと、HTTP(ポート80番)だけを開けておけばよいと思います。

(※追記)
VPCを使わない場合は、当然、アクセス元のIPアドレスを指定しないと危険です。セキュリティグループを利用しないなら、/etc/hosts.allowと/etc/hosts.denyでホストを指定すべきです。

ポイント3: Elastic IP Addressを紐づける

インスタンスを作成したら、Elastic IP Addressを発行して紐づけておきます。

インスタンスをバックアップのAMIから再実行する事態が起きた場合、Public DNSが自動的に変更されます。つまり、Tracサーバのアドレスが変わってしまいます。Tracサーバのアドレスが変更されるたびにチーム内で周知するのは手間ですし、混乱を招きます。あらかじめElastic IP Addressを使って固定した方がよいでしょう。

インスタンスをセットアップする

作成したEC2インスタンスにログインして、SSHで接続できるようにします。以前メモした手順とほぼ同じです。

ただし、上記はAmazon Linuxが入ったインスタンスでの手順です。今回はUbuntuなので、OSの違いに基づく差分があります。

Ubuntuインスタンスの場合、初期ログイン用のユーザ名は「ubuntu」です。

このユーザは、パスワードなしでrootになることができます。rootのパスワードを設定しておきましょう。また、作業用のユーザを作成し、sudoできるようにしておきます。

ubuntu@instance:~$ sudo su
root@instance:/home/ubuntu# passwd
root@instance:/home/ubuntu# adduser hoge
root@instance:/home/ubuntu# visudo

Kanonをインストールする

ここから先は、公式の手順どおりです。

次の場所からKanonConductor(インストーラ)をダウンロードします。インスタンスにログインした状態で、圧縮ファイルをwgetすればよいでしょう。

解凍したディレクトリに移動し、root権限でkanon-setupスクリプトを実行します。

以上で、おしまいです。http://{紐づけたElastic IP Address}/trac/SampleProject で、サンプルプロジェクトにアクセスできます。

# ただし、手元の環境ではApacheが一発で起動しなかったので、設定ファイルをちょっと変えました(→ メモ: Kanonセットアップ後にApacheが起動しないとき - 虎塚