ヘプタゴンの技術ブログ

サーバ/ネットワーク/linux/AWSとか青森を拠点でやってます

s3fsでReduced Redundancy Storageを使う

S3をファイルシステムとしてマウントできるs3fsを設定します。
環境はCentOS6 on EC2です。

まずは、fuseのインストール。
——————————-
yum remove fuse fuse* fuse-devel
yum install gcc libstdc++-devel gcc-c++ curl curl* curl-devel libxml2 libxml2* libxml2-devel openssl-devel mailcap

cd /usr/local/src
wget http://sourceforge.net/projects/fuse/files/latest/download?source=files tar zxvf download\?source\=files
cd fuse-2.9.3/
./configure prefix=/usr
make
make install
ldconfig
modprobe fuse
——————————-

次にs3fsのインストール。

——————————-
cd /usr/local/src
wget https://s3fs.googlecode.com/files/s3fs-1.72.tar.gz tar -xzvf s3fs-1.72.tar.gz
rm s3fs-1.72.tar.gz
cd s3fs-1.72
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
./configure –prefix=/usr
make
make install
——————————-

IAMの設定をします。
IAMポリシーはこんなかんじで。
—————-
{
“Version”: “2012-10-17″,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “s3:”,
“Resource”: [
“arn:aws:s3:::バケット名”,
“arn:aws:s3:::バケット名/

]
}
]
}
——————

バケットに接続できるように設定します。

——————————-
vi /etc/passwd-s3fs
——————
アクセスキー:シークレットキー
——————

chmod 600 /etc/passwd-s3fs
——————————-

マウントしてみます。
use_rrs=1オプションを付ける事で、Reduced Redundancy Storage(低冗長化ストレージ)を使う事ができます。

——————————-
s3fs バケット名 /mnt -o rw,allow_other,use_rrs=1
——————————-

OS起動時に自動でマウントするように設定をします。

——————————-
umount /mnt

vi /etc/rc.d/rc.sysinit
———-
. /etc/init.d/functions
modprobe fuse
———-

vi /etc/rc.d/rc.local
———–
umount /var/www/html/public_html/upload/
s3fs バケット名 /mnt -o rw,allow_other,use_rrs=1
———-

reboot
——————————-

fstabに記載する方法もあるようですが、起動時にマウントできない場合があったので、
rc.localでマウントするように設定しました。
(停止時にうまくアンマウントできないとだめ?)

うまくマウントできるとこんな感じで見えます。

——————————-
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvde 7.9G 1.6G 6.0G 21% /
tmpfs 296M 0 296M 0% /dev/shm
s3fs 256T 0 256T 0% /mnt
——————————-

IOのパフォーマンスはあまり期待できないので、用途は考える必要がありそうですね。