S3のバケットをファイルシステムとしてマウントするには、s3fs-fuse というツールを使う。今回使ったヴァージョンは最新の 1.77。
依存するツールのインストール
まずは依存するツールをインストールする。
[[email protected] ~]$ sudo yum install gcc [[email protected] ~]$ sudo yum install libstdc++-devel [[email protected] ~]$ sudo yum install gcc-c++ [[email protected] ~]$ sudo yum install fuse [[email protected] ~]$ sudo yum install fuse-devel [[email protected] ~]$ sudo yum install curl-devel [[email protected] ~]$ sudo yum install libxml2-devel [[email protected] ~]$ sudo yum install openssl-devel [[email protected] ~]$ sudo yum install mailcap [[email protected] ~]$ sudo yum install automake
ダウンロードしてインストール
[[email protected] ~]$ wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.77.tar.gz -O s3fs-fuse-v1.77.tar.gz [[email protected] ~]$ tar xvzf s3fs-fuse-v1.77.tar.gz [[email protected] ~]$ cd s3fs-fuse-1.77 [[email protected] s3fs-fuse-1.77]$ ./autogen.sh [[email protected] s3fs-fuse-1.77]$ ./configure --prefix=/usr [[email protected] s3fs-fuse-1.77]$ make [[email protected] s3fs-fuse-1.77]$ sudo make install
認証
S3に接続するには認証の必要がある。つまり Access Key ID と Secret Access Key が必要だってこと。方法は4つあるようだけど、今回は /etc/passwd-s3fs ファイルを作る方法にした。
[[email protected]4 s3fs-fuse-1.77]$ sudo vim /etc/passwd-s3fs [[email protected] s3fs-fuse-1.77]$ sudo chmod 640 /etc/passwd-s3fs
マウント
[[email protected] ~]$ sudo s3fs lathercraft-storage2 /mnt/lcstorage -o rw,allow_other,default_acl=private
さあ、うまくいってるかな?
[[email protected] ~]$ echo Hello > /mnt/lcstorage/hello.txt [[email protected] ~]$ ls /mnt/lcstorage hello.txt [[email protected] ~]$ df -kh ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 7.8G 1.3G 6.5G 16% / devtmpfs 990M 56K 990M 1% /dev tmpfs 1003M 0 1003M 0% /dev/shm s3fs 256T 0 256T 0% /mnt/lcstorage
OK、うまくいった。
参考になったページ
cf. Amazon EC2からS3をファイルシステムとしてマウントする – mooapp
cf. s3fs を使って EC2 に S3 の Bucket をマウントする – Qiita
cf. Installation Notes – s3fs-fuse/s3fs-fuse
追記
インスタンスを再起動した時に自動でマウントするには、/etc/fstab ファイルに次の行を追加する。
s3fs#lathercraft-storage2 /mnt/lcstorage fuse rw,allow_other,default_acl=private 0 0