ARTICLE

Amazon S3 をファイルシステムとして EC2 にマウントする方法

awss3ec2fuses3fs

0 notes

Amazon S3 を EC2 でファイルシステムとしてマウントして、手っ取り早く利用したいときがあります。
FUSE と s3fs を使うことでそれが可能です。

※書かなくてもわかるとは思いますが、この方法は非公式です。自己責任でお試しあれ。

FUSE とは(引用:Filesystem in Userspace - Wikipedia

Filesystem in Userspace(FUSE)は、Unix系オペレーティングシステムのローダブル・カーネル・モジュールの一種で、一般ユーザーがカーネルコードを修正することなく独自のファイルシステムを作成できる機能を提供する。

s3fs とは…FUSE 経由で Amazon S3 をローカルファイルシステムとしてマウントできるツール。

作業ログ

面倒なので root になります。

sudo su -

諸々インストール

yum -y install gcc-c++ make openssl-devel curl-devel libxml2-devel

FUSE をソースからインストール

cd /usr/local/src
wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz/download
tar xzvf fuse-2.9.2.tar.gz
cd fuse-2.9.2
./configure
make
make install

設定は この記事 を参考に。

s3fs をソースからインストール

cd /usr/local/src
wget https://s3fs.googlecode.com/files/s3fs-1.63.tar.gz
tar xzvf s3fs-1.63.tar.gz
cd s3fs-1.63
./configure
make
make install

s3fs の設定

設定ファイルを作成する。({} は自身のキー文字列と置き換える)

echo {ACCESS_KEY}:{TOKEN_SECRET} > /etc/passwd-s3fs
chmod 0640 /etc/passwd-s3fs

セキュリティ証明書の取得先

S3 の指定バケットをマウントする

S3 の指定バケットを /mnt/s3 ディレクトリ以下にマウントします。

cd /mnt
mkdir s3
cd /mnt/s3
mkdir bucket1
modprobe fuse
s3fs {BUCKET_NAME} /mnt/s3/bucket1 -o allow_other,default_acl=public-read

念の為、ps aux | grep s3fs で確認する。

読み込みテスト

バケット内にテキストファイルがあれば、普通に less などで、中身を確認できます。

書き込みテスト

ファイルを作ってみる。

touch /mnt/s3/bucket1/hoge.txt

これで AWS Management Console から S3 に移動して、指定バケットを確認して、作成されていれば書き込み OK。

アンマウントする

mount したら当然 umount するときもくる。 しかし、s3fs には umount はない。

ではどうするか……、プロセスを kill のだ。

マウントした S3 バケットを全てアンマウントする場合は pkill s3fs する。個別にアンマウントする場合は、プロセス ID で kill する。

どのプロセスがどのマウントだっけー、というのは ps コマンドで確認できる。

起動時の設定

この記事 を参考にすればできる。

参考記事

最後まで読んでいただきありがとうございました。
この記事が気に入っていただけたらシェアしてくれるとブログ運営の励みなります。

awss3ec2fuses3fs

0 notes

blog comments powered by Disqus

Categories