AWS, Linux

goofysでAWS S3をマウント

 

S3のファイルシステムへのマウントといえばs3fsが有名ですが、もっと速いgoofysのご紹介です。

 

条件

  • AWS S3管理用の IAMユーザ作成済

 

EC2の設定を行います。

 

fuseのインストール

$ sudo yum install fuse

 

golangのインストール

$ cd /usr/local/src
$ sudo wget https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf /usr/local/src/go1.9.2.linux-amd64.tar.gz

 

$ ls -laht /usr/local/go

total 184K
drwxr-xr-x 13 root root 4.0K Nov  2 12:21 ..
drwxr-xr-x 11 root root 4.0K Oct 25 18:40 .
drwxr-xr-x  2 root root 4.0K Oct 25 18:40 bin
drwxr-xr-x  4 root root 4.0K Oct 25 18:40 blog
drwxr-xr-x 14 root root 4.0K Oct 25 18:40 misc
drwxr-xr-x  8 root root 4.0K Oct 25 18:40 pkg
drwxr-xr-x 19 root root  12K Oct 25 18:40 test
-rw-r--r--  1 root root    7 Oct 25 18:34 VERSION
drwxr-xr-x 46 root root 4.0K Oct 25 18:34 src
drwxr-xr-x  9 root root 4.0K Oct 25 18:34 doc
drwxr-xr-x  3 root root 4.0K Oct 25 18:34 lib
drwxr-xr-x  2 root root 4.0K Oct 25 18:34 api
-rw-r--r--  1 root root  41K Oct 25 18:34 AUTHORS
-rw-r--r--  1 root root 1.6K Oct 25 18:34 CONTRIBUTING.md
-rw-r--r--  1 root root  55K Oct 25 18:34 CONTRIBUTORS
-rw-r--r--  1 root root 5.6K Oct 25 18:34 favicon.ico
-rw-r--r--  1 root root 1.5K Oct 25 18:34 LICENSE
-rw-r--r--  1 root root 1.3K Oct 25 18:34 PATENTS
-rw-r--r--  1 root root 1.6K Oct 25 18:34 README.md
-rw-r--r--  1 root root   26 Oct 25 18:34 robots.txt

 

パスの設定

$ export GOROOT=/usr/local/go

$ export PATH=$PATH:$GOROOT/bin

$ env | grep -i go
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/usr/local/go/bin:/usr/local/go/bin
GOROOT=/usr/local/go
GOPATH=/home/ec2-user/go

 

バージョンの確認を行います。

$ go version
go version go1.9.2 linux/amd64

 

goofysのインストール

$ cd
$ go get github.com/kahing/goofys
$ go install github.com/kahing/goofys

 

S3にバケットを作ろう!

 

AWS CLIのアカウント設定を行います。

$ sudo aws configure

AWS Access Key ID [None]: xxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1 ←東京リージョンね
Default output format [None]: json

 

バケットの作成

$ sudo aws s3 mb s3://super-garlic-bucket
make_bucket: super-garlic-bucket

 

goofysでマウントしちゃおう。

 

マウントポイントの作成

$ sudo mkdir -p /mnt/S3

 

マウント!

$ cd
$ sudo ./go/bin/goofys super-garlic-bucket /mnt/S3

 

マウントの確認

$ sudo df -h

Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             236M   56K  236M   1% /dev
tmpfs                245M     0  245M   0% /dev/shm
/dev/xvda1           7.8G  1.8G  5.9G  24% /
super-garlic-bucket  1.0P     0  1.0P   0% /mnt/S3

1ペタバイトが見えますね!

 

 

 

テストファイルを作成してみましょう。

$ sudo touch /mnt/S3/butter.txt

 

コマンドラインで確認します。

$ sudo aws s3 ls s3://super-garlic-bucket
2017-11-02 12:36:54          0 butter.txt

ありますね。

 

 

 

 

GUIでも確認してみましょ~!

goofys

ありますね。

 

自動マウントの設定

idの確認

$ id
uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)

 

$ sudo vi /etc/fstab

#
LABEL=/     /           ext4    defaults,noatime  1   1
tmpfs       /dev/shm    tmpfs   defaults        0   0
devpts      /dev/pts    devpts  gid=5,mode=620  0   0
sysfs       /sys        sysfs   defaults        0   0
proc        /proc       proc    defaults        0   0

# S3マウント
/home/ec2-user/go/bin/goofys#super-garlic-bucket /mnt/S3 fuse _netdev,allow_other,--file-mode=0666,--uid=500,--gid=500 0 0

 

$ sudo mount -a

何も返ってこなければOK

 

再起動します。

# reboot now

 

再起動が終わったら確認しましょう。

$ sudo df -h

Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             236M   56K  236M   1% /dev
tmpfs                245M     0  245M   0% /dev/shm
/dev/xvda1           7.8G  1.8G  5.9G  24% /
super-garlic-bucket  1.0P     0  1.0P   0% /mnt/S3

大丈夫ですね。

 

NFSなんかでファイルシステムが存在しない場合、nofailオプションつけないと起動でひっかかったりします。しかし、goofysは/etc/fstabでマウント予定のバケットが削除されて存在しなくても、そのまま起動してくれるので安心@^ェ^@

 

お疲れ様です。

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)