AWS EC2インスタンスにS3をマウントした際のメモ

当方の環境は以下のとおり。
EC2インスタンス: 1台。t2.micro (amzn2-ami-hvm-2.0.20180622.1-x86_64-gp2)
S3バケット: 1台。
IAMロール: hoge(とする)
リージョン: ap-northeast-1a

S3バケットに用が有る時だけマウントする為、EC2インスタンス起動時の自動マウントはしない。
s3fsとs3fs-fuse-1.77の導入は検索すると多く(?)ヒットするので割愛。

1. S3バケットのマウントポイントの作成。

$ sudo mkdir /mnt/s3

2. 上記1.で作成した/mnt/s3のパーミッションの設定。

$ sudo chmod 777 /mnt/s3

3. このままだとrootしか使えない為、他のユーザが使えるようfuse.confを修正。
user_allow_otherの頭から#を削除。

$ sudo vi /etc/fuse.conf

# mount_max = 1000
  user_allow_other

4. マウントコマンドで必要なuidとgidの値を確認。

id ec2-user
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal)

5. S3バケットxxxxxxxを/mnt/s3にマウント。IAMロールhogeと上記4.で確認したuidとgidを指定。

$ sudo /usr/local/bin/s3fs xxxxxxx /mnt/s3 -o rw,allow_other,uid=1000,gid=1000,default_acl=public-read,iam_role="hoge"

6. しかし、df -hを叩くとマウント出来ていない模様。

$ df -h
Filesystem      Size      Used       Avail  Use%   Mounted on
devtmpfs        476M         0      476M     0%   /dev
tmpfs             493M         0      493M     0%   /dev/shm
tmpfs             493M    304K      493M     1%   /run
tmpfs             493M         0      493M      0%  /sys/fs/cgroup
/dev/xvda1     8.0G     2.7G       5.4G    34%  /
tmpfs             99M           0        99M     0%   /run/user/1000

7. その時、EC2インスタンスのコンソールのIAMロールが空白になっている事に気が付いた。
EC2インスタンスのコンソール画面上側のアクションから「インスタンスの設定」「IAMロールの割り当て/置換」の順に進み、予め作成していたIAMロールを指定し、適用をクリック。

8. 再度、df -hを叩き、マウント出来ている事を確認。
最終行にて、s3fsで/mnt/s3がマウントされている事が確認出来る。

$ df
Filesystem      Size      Used       Avail  Use%   Mounted on
devtmpfs        476M         0      476M     0%   /dev
tmpfs             493M         0      493M     0%   /dev/shm
tmpfs             493M    304K      493M     1%   /run
tmpfs             493M         0      493M      0%  /sys/fs/cgroup
/dev/xvda1     8.0G     2.7G       5.4G    34%  /
tmpfs             99M           0        99M     0%   /run/user/1000
s3fs               256T          0       256T     0%   /mnt/s3