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

  • 70
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

もっと早いやつが出たので新しいのを書きました。参考にどうぞ。[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