メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

AWS S3バケットの自動マウントのメモ

AWSのEC2インスタンス(Amazon Linux 2)にS3バケットを自動でマウントする手順のメモ。

EC2インスタンスを起動させる度にS3バケットを手動でマウントするのが面倒である為、S3バケットの自動マウントを試みた。
前回のメモ、S3バケットの認識と手動マウントは以下のリンク先。
http://d.hatena.ne.jp/debslink/20180714/1531577869
 
当方の環境は以下のとおり。
・EC2インスタンス: 1台。t2.micro (amzn2-ami-hvm-2.0.20180622.1-x86_64-gp2)
・S3バケット: 1台。
・IAMロール: hogeとする
・リージョン: ap-northeast-1a
 

EC2にS3バケットをマウントする手順
1.毎回毎回アンマウントとマウントを実行するのが面倒。
/etc/fstabをいじってEC2インスタンス再起動後も自動でマウントするよう設定してみた。
内容は以下のとおり。

$ cat /etc/fstab
#
$ cat /etc/fstab
#
UUID=76e177a9-8195-43cf-84ae-14ea371008b6  /       xfs    defaults,noatime 1  1
/mnt/swapfile                              none    swap   defaults         0  0
s3fs#jpmtksvaws99                          /mnt/s3 fuse _netdev,allow_other,nonempty,multireq_max=500,uid=505,gid=503 0  0

 
2.ここでEC2インスタンスを再起動。
再起動完了後、dfコマンドを叩いてみると...

$ 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 

 
...あれ? /mnt/s3が見えない。
EC2インスタンスからS3バケットの中を覗こうとしたら、エラーを吐いた。/mnt/s3の中が見えない。

$ ls -la /mnt/s3 | more
ls: cannot access /mnt/s3: Transport endpoint is not connected

 
3.しかしmountコマンドを叩くとs3fsの行が出力された。/mnt/s3はマウントされているように見える。

$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=487052k,nr_inodes=121763,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
:
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
s3fs on /mnt/s3 type fuse.s3fs (rw,relatime,user_id=0,group_id=0,allow_other)

 
4./var/log/boot.logを覗いてみると、Mounted /mnt/s3が出力されている事が分かる。

$ sudo cat /var/log/boot.log 
:
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /mnt/s3...
[  OK  ] Started Activation of DM RAID sets.
[  OK  ] Reached target Local Encrypted Volumes.
[  OK  ] Mounted /mnt/s3.
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
:

 
5.ここで/mnt/s3を一旦アンマウントし、再度マウントしてみる。

$ sudo umount /mnt/s3
$ sudo /usr/local/bin/s3fs [S3 bucket name] /mnt/s3 -o rw,allow_other,uid=1000,gid=1000,default_acl=public-read,iam_role="[IAM role name]"

 
6./mnt/s3がs3fsでマウントされている事が確認出来た。
しかしやりたいのは自動マウント。

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%    /
s3fs           256T         0      256T     0%    /mnt/s3

 
7.では、/etc/rc.d/rc.local に書いてみるのはどうだろう。

sudo vi /etc/rc.d/rc.local
/usr/local/bin/s3fs [S3 bucket name] /mnt/s3 -o rw,allow_other,uid=1000,gid=1000,default_acl=public-read,iam_role="[IAM role name]"

 
/etc/rc.d/rc.localを開くとコメントアウト行に chmod +x /etc/rc.d/rc.localを打って実行権限を持たせる旨の記載が有る。
以下のコマンドを打ち、/etc/rc.d/rc.localスクリプトファイルに実行権限を与える。

$ ls -la /etc/rc.d/rc.local
-rw-r--r--  1 root root  613 Aug  4 21:16 rc.local

<span style="font-size: 85%">$ sudo chmod +x /etc/rc.d/rc.local

<span style="font-size: 85%">$ ls -la /etc/rc.d/rc.local
-rwxr-xr-x 1 root root 613 Aug  4 21:16 /etc/rc.d/rc.local

 
8.再度EC2インスタンスを再起動。
再起動完了後、dfコマンドを叩いてみると...

$ 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%    /
s3fs           256T         0      256T     0%    /mnt/s3
tmpfs           99M         0       99M     0%    /run/user/1000

 
/mnt/s3が見えた。
勿論、/mnt/s3配下のディレクトリやファイルも見る事が出来るのだが、ファイル10個程度を出力するまで5分前後も時間がかかった。

$ ls /mnt/s3/DJI_Spark
total 1748455
d--------- 1   ec2-user ec2-user         0 Jul  6 22:58 .
drwxrwxrwx 1   ec2-user ec2-user         0 Jan  1 1970 ..
---------- 1   ec2-user ec2-user 317703683 Jul  6 23:14 20180512.mp4
---------- 1   ec2-user ec2-user 386020665 Jul  6 23:24 20180609.mp4
---------- 1   ec2-user ec2-user 357315938 Jul  6 23:11 20180616.mp4
---------- 1   ec2-user ec2-user 350183991 Jul  6 23:07 20180627.mp4
---------- 1   ec2-user ec2-user 340331528 Jul  6 23:26 20180629.mp4
: