s3fsでS3バケットをマウントしてストレージとして使う方法です。
環境:amazon Linux 64bit
S3backet名 mnttest
1. s3fsの環境をインストールする
yum install gcc make libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel openssl-devel mailcap
2. s3fsをダウンロードする
wgethttp://s3fs.googlecode.com/files/s3fs-1.62.tar.gz
3. s3fsをインストールする
mv s3fs-1.62.tar.gz /usr/local/src/ #任意のフォルダに移動させる tar zxvf s3fs-1.62.tar.gz cd s3fs-1.62 ./configure --prefix=/usr make make install
4.アクセスIDとシークレットIDを登録
vi /etc/passwd-s3fs アクセスキー ID:シークレットアクセスキー
5.パーミッションを640に設定
chmod 640 /etc/passwd-s3fs
6.S3をマウントする
mkdir /mnt/s3 s3fs mnttest /mnt/s3 -o allow_other ※allow_other指定しないと全てのユーザーで書きこみができません。 ★dfコマンドで結果確認 df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.9G 1.1G 6.8G 14% / tmpfs 298M 0 298M 0% /dev/shm s3fs 256T 0 256T 0% /mnt/s3
7. 書き込みチェック
echo "test upload "> /mnt/s3/uptest.txt ★結果 [root@testsvr s3fs-1.62]# ls -al /mnt/s3/ total 1
- rw-r--r-- 1 root root 12 Jun 10 18:12 uptest.txt
8.unmountする
umount s3fs もしくは、、、 直接、プロセスを停止するでも可 ps ax | grep s3fs [root@ip-10-150-118-152 s3fs-1.62]# ps ax | grep s3fs 3196 ? Ssl 0:00 s3fs mnttest /mnt/s3 -o allow_other 3220 pts/0 S+ 0:00 grep s3fs kill 3196
~~~おまけで自動起動設定~~~
※http://blog.cloudpack.jp/2011/07/aws-news-s3-s3fs.htmlより
pkgconfigパスを環境変数に設定する
PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/
fuseをモジュールとしてカーネルにロードする
ldconfig modprobe fuse
fstabファイルに追加設定する
vi /etc/fstab #最終行に追記 s3fs#mnttest /mnt/s3 fuse allow_other,default_acl=public-read 0 0
rc.sysinit内のfstabの記述より前にfuseをカーネルにロードして有効にする設定
vi /etc/rc.d/rc.sysinit . /etc/init.d/functions modprobe fuse #←追記