Posted at

s3fsでマウント(IAM:ユーザー)

More than 3 years have passed since last update.

S3をマウントする方法は2種類(s3fs,goofys)ありますが、そのうちのs3fsでのマウントを記録します。

goofysでマウントが気になる方はこちら(IAM設定あり)にあります。


IAMの設定とバケットの作成


IAMの設定

冒頭にあるgoofysのリンクのIAMの設定を見てください。

1,ユーザー作成

2,ポリシー作成

3,ユーザーにポリシーをアタッチする

をやるだけでいいです。


バケットの作成

S3のサービスを開いてバケットの作成。適当にリージョンと名前を決め作成する。


s3fsでマウント

・rootユーザーで基本作業します

sudo su

cd


s3fsのインストール

yum -y install git automake gcc-c++ fuse fuse-devel libcurl-devel libxml2-devel openssl-devel

wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.78.tar.gz
tar xzvf v1.78.tar.gz
rm -f v1.78.tar.gz
cd s3fs-fuse-1.78/
./autogen.sh
./configure prefix=/usr
make
make install


IAMで作成したユーザーをs3fsに登録

vi /etc/passwd-s3fs


passwd-s3fs

バケット名:アクセスキー:シークレットキー


・権限変更

chmod 640 /etc/passwd-s3fs


s3fsでマウント手順

cd ~

touch s3fs-mount.sh
chmod u+x s3fs-mount.sh
vi s3fs-mount.sh

マウントポイントは自分で適当な場所にmkdirで作成してください。


s3fs-mount.sh

#!/bin/bash

s3fs [バケット名] [マウントポイントのディレクトリ] -o allow_other,use_cache=/tmp,uid=[UID],gid=[GID],passwd_file=/etc/passwd-s3fs



#!/bin/bash

s3fs example-s3buket /home/ec2-user/s3-mountpoint -o allow_other,use_cache=/tmp,uid=500,gid=500,passwd_file=/etc/passwd-s3fs

・実行

./s3fs-mount.sh

・確認

df -h実行結果にs3fsと自分がマウントしたディレクトリ名が出てくれば成功

以上終わりです。


自動起動とアンマウントのやり方


自動起動

vi /etc/fstab

fstabに以下を追記する


fstab

s3fs#[バケット名] [マウントするディレクトリ] fuse allow_other,use_cache=/tmp,uid=[UID],gid=[GID],passwd_file=/etc/passwd-s3fs 0 0




s3fs#example-s3buket /home/ec2-user/s3-mountpoint fuse allow_other,use_cache=/tmp,uid=500,gid=500,passwd_file=/etc/passwd-s3fs 0 0



アンマウント方法

以下のコマンドを使用

fusermount -u [マウントしたディレクトリ]

umountだとエラー出てくる。fuser -k [マウントしたディレクトリ]で対処できますが…)


感想

goofysとs3fsと両方いじったのですが、早いのはgoofysのほうが明らかに早い。

s3fsはviなどcatやlsに少し時間がかかる。

S3をもとにftpサーバーを作るのにvsftpdとgoofysの相性がよくないと聞いたので仕方なくs3fsを使用しています。

s3fsでは初めてマウントしたときにもともとS3のなかにあったものはすべてのパーミッションが000になります。

ですが、chmodでおのおのパーミッションの設定ができるのがいいと思います。

goofysではchmodで変更できないです。マウント時にパーミッションの設定をしますので、すべて統一のパーミッションになります。


参考サイト

http://qiita.com/hmitr/items/155f25e50e4dcb287979

http://qiita.com/wanghm/items/1561b0f2a9a90fba716f

http://qiita.com/daigo2010/items/636d0b4217faf197eb52

https://curecode.jp/tech/install-s3fs-1-78-on-amazon-linux/

http://dev.classmethod.jp/cloud/aws/s3fs-ec2-mount-s3/