EC2 で s3fs を動かす方法

下記の環境で s3fs を動かそうとしたのですが、すんなり行かず、ググっても参考情報が少なかったので作業ログを残します。

ami-ccf615a5
alestic/ubuntu-9.04-jaunty-base-20091011.manifest.xml
Linux 2.6.21.7-2.fc8xen-ec2-v1.0 #2 SMP Tue Sep 1 10:04:29 EDT 2009 i686 GNU/Linux

s3fs のインストール

apt-get install libfuse-dev libcurl4-openssl-dev
cd /tmp
wget -O - http://s3fs.googlecode.com/files/s3fs-r177-source.tar.gz | tar xvfz -
cd s3fs
make install

いざ、マウントしようとすると下記のエラー

fuse: device not found, try 'modprobe fuse' first

言われた通りに modprobe しても下記のエラー

FATAL: Module fuse not found.

ググって見ると、Google グループにソリューションを発見しました。どうやら、カーネルモジュールの fuse.ko が無いため起こるエラーの模様です。しかし、ここで紹介されているバイナリは今回の環境では使えませんので、他から用意します。

AMI-Tools など、AWS 用のツール郡は、http://s3.amazonaws.com/ec2-downloads/ にありますので、使用インスタンスカーネルのバージョンと合致する、http://s3.amazonaws.com/ec2-downloads/ec2-modules-2.6.21.7-2.fc8xen-ec2-v1.0.tgz を取得して展開してみます。

curl -O http://s3.amazonaws.com/ec2-downloads/ec2-modules-2.6.21.7-2.fc8xen-ec2-v1.0.tgz
tar xfz ec2-modules-2.6.21.7-2.fc8xen-ec2-v1.0.tgz
cp -a lib/modules/2.6.21.7-2.fc8xen-ec2-v1.0/kernel/fs/fuse /lib/modules/2.6.21.7-2.fc8xen-ec2-v1.0/kernel/fs/
modprobe fuse

今度は問題なく、s3fs が動きました。

OS 再起動後も手動で modprobe しなくても済むように、/etc/modules に追記しておきます。

echo fuse >> /etc/modules

id:kdaiba 氏が、AMI からのインスタンス起動の挙動を カーネル周りの挙動も含め詳しく解説して下さっていますので、それがとても参考になりました。ありがとうございます。