Edited at

EC2インスタンスにS3をマウントして使用する(IAM Role ver)

More than 3 years have passed since last update.

もっと早いやつが出たので新しいのを書きました。参考にどうぞ。[20160129追記]

[AWSで]今流行のgoofysでS3を爆速マウント[EC2]


s3fsを使用してEC2インスタンスにS3バケットをマウントします。

だけど、アクセスキー情報をインスタンスに置いておきたくない!

・・・という状況を想定してIAM Roleを使用しました。


IAM Role

IAMユーザーは使ったことありましたがRoleは初でした。

ハマるかと思いましたがそんなでもなかったです。

マネジメントコンソールからIAMを選択しRoleを選択

150402-0042.jpg

150402-0043.jpg

新しいRoleを作ります。

名前は『use-s3』としました

150402-0044.jpg

S3に読み書きしたいのでフルアクセスで。。。

150402-0045.jpg

作成できました!

150402-0046.jpg


EC2インスタンスを立ち上げる

通常と変わりませんがこの時、先ほど作成したRoleを指定することを忘れないように注意しましょう。

150402-0047.jpg


S3バケットの準備

『uses3』という名前で作成してみました。

150402-0048.jpg


ここまでは割と一瞬で終わったのですが、この後割とはまりました。

参考にした情報は最後に載せますが・・・

バージョンの違いですかね。なかなかマウントできずに疲れました。


s3fsの導入

ssh接続を行い以下のコマンドを入力



$ sudo yum -y update

$ sudo yum -y install automake

$ sudo yum -y install gcc-c++

$ sudo yum -y install fuse

$ sudo yum -y install fuse-devel

$ sudo yum -y install libcurl-devel

$ sudo yum -y install libxml2-devel

$ sudo yum -y install openssl-devel



これでインストールに必要なものを賄います。

続けてs3fsのダウンロードして解答

$ wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.77.tar.gz

$ tar -xzf v1.77.tar.gz


s3fs-fuse-1.77

というディレクトリが作成されるのでその中へ。

$ cd s3fs-fuse-1.77

いろいろなサイトで『configure』をと書かれていたのですがそんなものがなく困っていましたが、どうやら『autogen.sh』を実行して作るようでした。



$ ./autogen.sh

$ ./configure --prefix=/usr/local

$ make

$ sudo make install



無事インストールされました。


マウントポイント作成



$ sudo mkdir /mnt/s3



マウントします

パーミッションを変更しましょう。



$ sudo chmod 777 /mnt/s3



とりあえず検証なので全開け。

インストール時のデフォルトだとRootユーザーしか使えないので以下のファイルを修正



$ sudo vi /etc/fuse.conf



ファイル内は下記のようになっているので2行目の#を外してrootユーザー以外が利用できるようにする。


[] # mount_max = 1000

[] # user_allow_other


ここが面倒でした


$ /usr/local/bin/s3fs <今作った/mnt/s3> -o rw,allow_other,,,default_acl=public-read,iam_role=""

uid,gidを使うので調べます。

$ id ec2-user

今回の構成だとこんな感じ


$ /usr/local/bin/s3fs uses3 /mnt/s3 -o rw,allow_other,uid=500,gid=500,default_acl=public-read,iam_role="use-s3"

最後に確認



$ df -h



マウントされていれば成功です

IAM Userを使う方法はまた今度投稿します。


参考

http://haws.haw.co.jp/tech/iam_role%EF%BD%93_for_amazon_ec2_and_s3fs/

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

http://qiita.com/monry/items/fa3bebd69e04a08ae12f

http://hivecolor.com/id/49