goofys を用いたAmazon Linux2に対してのS3のマウントをやってみた

2021.06.03

こんちは、テクニカルサポートチームの丸屋 正志です。

Amazon Linux2 上で goofys の設定をする機会があったのですが色々調べていくと、s3fs を用いた方法が紹介されていたり、そもそも上手くマウントをしてくれなかったりと・・・つまずくことが多いですが、備忘録としてブログに手順を残したいと思います。

1. やってみた

まずは、任意の S3 バケットとIAM ロールを作成していきますが、ココでは割愛いたします。

1.1. 前提条件

  • EC2 AMI : 最新のAmazon Linux2
  • IAM ロール : EC2RoleForS3FullAccess
    • [S3FullAccess] の権限の付与
  • S3 バケット名 : TestBucket
    • バケットポリシー 無し

2. goofys 設定

2.1. アップデート / 必要なパッケージの導入

$ sudo yum -y update
$ sudo yum install -y golang fuse

2.2. goofys のインストール

  • 下記サイトにて最新のバージョンをご確認ください。
$ sudo wget https://github.com/kahing/goofys/releases/download/v0.24.0/goofys -P /usr/local/bin/

2.3. 権限変更

$ sudo chmod 755 /usr/local/bin/goofys

2.4. マウント先のディレクトリ作成

  • 任意のディレクトリ名を作成
$ sudo mkdir /mnt/goofys

2.5. マウントポイントのユーザーとグループを ec2-user とするため uid と gid を確認

デフォルトの ec2-user を利用している場合は、スキップして頂いて構いません。

$ id ec2-user

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

2.6. fstabに自動マウント設定

  • #を含めた状態でバケット名を入力
  • ec2-user 以外の場合はuid と gid を変更
$ echo "/usr/local/bin/goofys#TestBucket /mnt/goofys fuse _netdev,allow_other,--dir-mode=0777,--file-mode=0666,--uid=1000,--gid=1000 0 0" | sudo tee -a /etc/fstab

2.7. 設定反映

$ sudo mount -a

2.8. マウントされているか確認

$ df -h
ファイルシス     サイズ  使用  残り 使用% マウント位置
TestBucket   1.0P     0  1.0P    0% /mnt/goofys

2.9. 動作確認

$ ll /mnt/goofys/
合計 23082
-rw-rw-rw- 1 ec2-user ec2-user 23482924  6月 3 11:48 TestBucket.html
-rw-rw-rw- 1 ec2-user ec2-user   151746  5月 3 06:24 TestBucket.css

3. さいごに

goofys を用いたAmazon Linux2に対してのS3のマウントの設定方法をしました。

以上、テクニカルサポートチームの丸屋でした。