goofysを使用してEC2からS3をマウントする

goofysを使用してEC2からS3をマウントする

EC2のWebサーバなどからS3にファイルを保存したいといった場合にgoofysを使用してS3をマウントすることができます。

S3をマウントすることによってファイルをS3のバケットにすることが可能になります。

EC2にはsshで接続します。goofysをインストールする為に、golangとfuseをインストールします。

[ec2-user@ip-10-20-0-81 ~]$ sudo yum install golang fuse -y

次にgoofysをインストールします。

[ec2-user@ip-10-20-0-81 ~]$ export GOPATH=$HOME/go
[ec2-user@ip-10-20-0-81 ~]$ go get github.com/kahing/goofys
[ec2-user@ip-10-20-0-81 ~]$ go install github.com/kahing/goofys

EC2にIAMロールを付与する

EC2からS3にアクセスする為には、まずEC2にIAMロールを付与します。

goofysを使用してEC2からS3をマウントする

「ロールの作成」をクリックします。

goofysを使用してEC2からS3をマウントする

「EC2」を選択して、「次のステップ:アクセス権限」をクリックします。

goofysを使用してEC2からS3をマウントする

「AmazonS3FullAccess」を選択して、「次のステップ:確認」をクリックします。

goofysを使用してEC2からS3をマウントする

「ロールの作成」をクリックします。これでロールの作成は完了です。

EC2の「IAM ロールの割り当て/置換」画面でロールを先ほど作成したロールにします。

goofysを使用してEC2からS3をマウントする

「適用」をクリックします。これでEC2からS3にアクセスすることができるようになります。

S3のバケットをマウントする

マウントしたいバケットをあらかじめ作成しておきます。ここでは「ec2-tests」というバケットを作成しておきます。

[ec2-user@ip-10-20-0-81 ~]$ pwd
/home/ec2-user
[ec2-user@ip-10-20-0-81 ~]$ mkdir ~/mnt-goofys
[ec2-user@ip-10-20-0-81 ~]$ $GOPATH/bin/goofys ec2-tests ~/mnt-goofys
[ec2-user@ip-10-20-0-81 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 488M 56K 488M 1% /dev
tmpfs 497M 0 497M 0% /dev/shm
/dev/xvda1 7.8G 1.6G 6.1G 21% /
ec2-tests 1.0P 0 1.0P 0% /home/ec2-user/mnt-goofys
[ec2-user@ip-10-20-0-81 ~]$

マウントの確認

mnt-goofysというフォルダでtouchコマンドでファイルを作成してみます。

これがS3フォルダに出来上がればマウントできていることになります。

[ec2-user@ip-10-20-0-81 ~]$ cd mnt-goofys/
[ec2-user@ip-10-20-0-81 mnt-goofys]$ touch a.txt
[ec2-user@ip-10-20-0-81 mnt-goofys]$

S3のバケット内を見てみます。

goofysを使用してEC2からS3をマウントする

a.txtという空ファイルができているので、これでEC2からS3へマウントができました。

参考サイト

AWS Storage Gatewayというサービスもあるようです。

コメント

タイトルとURLをコピーしました