s3fsを使う
ブログ書くのひさしぶりですが、自分の備忘録です。
s3fsを使うのと、ApacheのDocumentRootにするのをCloudPackの後藤さんが出来たといってたので
それに便乗して僕もやってみる。ていうかやってみたい。
OSはUbuntuで。
インストール
まずは前準備。
sudo aptitude update
sudo aptitude install build-essential libcurl4-openssl-dev libxml2-dev libfuse-dev comerr-dev libfuse2 libidn11-dev libkadm55 libkrb5-dev libldap2-dev libselinux1-dev libsepol1-dev pkg-config fuse-utils
本体のインストール
なんだか最新のでは動かなかった(おそらくFUSEのバージョン問題)ので、
少し古いバージョンでインストール。
wget http://s3fs.googlecode.com/files/s3fs-1.19.tar.gz
tar xvzf s3fs-1.19.tar.gz
cd s3fs-1.19/
sudo ./configure
sudo make
sudo make install
確認。
設定
# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
user_allow_other
ここはお好みで。
次にpasswd-s3fsを作成する。これは/etcかユーザのホームディレクトリに.passwd-s3fsとして作成しても可能のよう。
今回は/etc/passwd-s3fsを作成。中身はアクセスキー:シークレットキーというフォーマット。
passwd-s3fsは適切な権限でみえるようにしておくこと。
マウントポイントの作成とマウント
試しにApacheのDocumentRootでアクセスさせようとしてるのでユーザをwww-dataにしておく。
sudo mkdir /mnt/s3
sudo chown www-data:www-data /mnt/s3
s3fsでマウント。
use_cacheとかdefault_aclなんかのオプションなどは適宜つける感じで。
sudo -u www-data /usr/local/bin/s3fs YOUR_BUCKET /mnt/s3 -o allow_other
とりあえずこれで機能する。
あとはApache側の設定でDocumentRootを/mnt/s3にした後に、ためしにindex.htmlをコピーしてみてみる。
sudo -u www-data cp -p /var/www/index.html /mnt/s3/index.html
でhttpアクセスする、と。ここまででとりあえずうまくいった。
あとはfstabなりinitスクリプトで自動マウントするようにすればよい。
しかし、自分でインストールして思ったがどうもやや安定していないところがあったので
そこはまた今度追求にしときます。
P.S.そうそう思い出した。Macからsshして、s3fsでmountすると何故かリモートログインから出されてしまうっていうのがありました。なんだろう。。。