s3fsでS3バケットをマウントし、規定期間内にアクセスが無い場合にautofsでアンマウントし、アクセスが有った場合にマウントする設定方法について記載します。
目的
s3fsを利用してS3バケットをキャッシュを使用してマウントして、規定期間内のアクセスが無い場合はキャッシュをクリアしたい。
s3fsのキャッシュ開放はアンマウントしなければいけないのでautofsで規定期間内にアクセスが無い場合に自動的にアンマウントさせたい。
使用OS(AMI)
s3fsのインストール・設定方法
s3fsをソースコンパイルする際に必要になるモジュールをダウンロード・インストールする
# wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/14/Fedora/x86_64/os/Packages/fuse-2.8.4-1.fc14.x86_64.rpm # wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/14/Everything/x86_64/os/Packages/fuse-devel-2.8.4-1.fc14.x86_64.rpm # wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/14/Everything/x86_64/os/Packages/fuse-libs-2.8.4-1.fc14.x86_64.rpm # rpm -ivh fuse-2.8.4-1.fc14.x86_64.rpm # rpm -ivh fuse-libs-2.8.4-1.fc14.x86_64.rpm # rpm -ivh fuse-devel-2.8.4-1.fc14.x86_64.rpm # yum -y install gcc-c++ libcurl-devel libxml2-devel openssl-devel
s3fsをソースコンパイルする
■ソースファイルをダウンロード・展開(githubより)
# wget https://github.com/s3fs-fuse/s3fs-fuse/archive/master.zip # unzip master # ls -l -rw-r--r--. 1 root root 123530 Dec 5 03:15 master drwxr-xr-x. 5 root root 4096 Nov 16 14:49 s3fs-fuse-master
■s3fsをソースコンパイルする
#cd ./s3fs-fuse-master/ ./autogen.sh # ls aclocal.m4 ChangeLog configure.ac INSTALL missing test AUTHORS config.guess COPYING install-sh NEWS autogen.sh config.sub depcomp Makefile.am README autom4te.cache configure doc Makefile.in src # export PKG_CONFIG_PATH=/usr/lib/pkgconfig # ./configure --prefix=/usr # make # make install
■s3fsがインストールされていることを確認
# which s3fs /usr/bin/s3fs
s3fsでS3バケットをmountする
■s3fs用キーファイルを作成する
# cat /etc/passwd-s3fs Access Key ID:Secret Access Key # chmod 640 /etc/passwd-s3fs
※IAM-roleを利用する際は上記ファイル不要。
※IAM-role利用時の設定方法は、後述の『■auto.miscの編集(マウントの設定)』参照
■mount出来ているかを確認する
# s3fs koujipstest /mnt/s3fs -ouse_cache=/tmp # cd /mnt/s3fs # ls hoge1 # s3cmd ls s3://koujipstest DIR s3://koujipstest/hoge1/ #umount /mnt/s3fs
autofsのインストール・設定方法
autofsをインストールする
# yum install autofs # chkconfig --list autofs autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off # service autofs status automount is stopped
autofsのコンフィグファイルを設定する
■auto.masterの編集(タイムアウト時間の設定)
# diff /etc/auto.master /etc/auto.master_ORG 7c7 < /mnt /etc/auto.misc --timeout=10 --- > /misc /etc/auto.misc
■auto.miscの編集(マウントの設定)
# diff /etc/auto.misc /etc/auto.misc_ORG 6c6 < #cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom --- > cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 16d15 < s3fs -fstype=fuse,allow_other,use_cache=/tmp,del_cache,url=https://s3.amazonaws.com,umask=007,uid=$USER,gid=$GROUP :s3fs#koujipstest
※IAM-roleを利用する場合は以下のとおり(myRoleは任意のもので)s3fs -fstype=fuse,allow_other,use_cache=/tmp,del_cache,url=https://s3.amazonaws.com,umask=007,uid=$USER,gid=$GROUP,iam_role=myRole :s3fs#koujipstest
■autofsを起動する
# service autofs start
■オートマウントの動作確認(マウントされていない事の確認)
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvde1 5700048 1333688 4076812 25% / tmpfs 302244 0 302244 0% /dev/shm # ps ax|grep s3fs 892 pts/0 S+ 0:00 grep s3fs
■オートマウントの動作確認(アクセスするとマウントされる事の確認)
※上記コマンド実行の続き # touch /mnt/s3fs/hogehoge # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvde1 5700048 1333704 4076796 25% / tmpfs 302244 0 302244 0% /dev/shm s3fs 274877906944 0 274877906944 0% /mnt/s3fs # ps ax|grep s3fs 946 ? Ssl 0:00 s3fs koujipstest /mnt/s3fs -o rw,allow_other,use_cache=/tmp,del_cache,url=https://s3.amazonaws.com,dev,suid 957 pts/0 S+ 0:00 grep s3fs # ls -l /mnt/s3fs/hogehoge -rw-r--r--. 1 root root 0 Dec 5 07:31 /mnt/s3fs/hogehoge
以上になります。
元記事はこちらです。
「s3fsとautofsの連携」