goofysを使ってS3バケットをEC2にマウントしてみます。
インストール
依存パッケージのインストール
sudo yum install -y golang fuse
READMEに書いてある通りにやるとビルドでエラーが出るので、バイナリをインストールします。
sudo curl -sS -L -o /usr/local/bin/goofys https://github.com/kahing/goofys/releases/download/v0.24.0/goofys
sudo chmod 755 /usr/local/bin/goofys
バケット作成
aws s3 mb s3://バケット名
マウント
# マウントポイント作成
sudo mkdir /mnt/s3
sudo chown ec2-user:ec2-user /mnt/s3
# マウント
# 何かエラーがったら/var/log/messagesに書き込まれます。
goofys バケット名 /mnt/s3
# マウントされたか確認
df -h
# Filesystem Size Used Avail Use% Mounted on
# ... 中略 ...
# バケット名 1.0P 0 1.0P 0% /mnt/s3
# マウント解除
sudo umount /mnt/s3
fstabの設定
起動と同時にマウントする場合は /etc/fstab に追記します。
fstabの書式 -> fstabについて | Qiita
# rootユーザーでawsの認証情報を参照できる必要があるので、とりあえずシンボリックリンクを設定しておきます。
sudo ln -s /home/ec2-user/.aws /root/.aws
# アカウントのuidとgidを調べます
id
# fstabに設定(後述)を追記します
sudo vim /etc/fstab
# fstabの設定が正しいか確認
sudo mount -a
df -h
fstabに追記する設定。バケット名とマウントポイント、--uid、--gidを設定してください。
/usr/local/bin/goofys#バケット名 /mnt/s3 fuse _netdev,allow_other,--file-mode=0666,--dir-mode=0777,--uid=1000,--gid=1000 0 0
リブートして、 /mnt/s3 にバケットがマウントされていればOKです。