2012年9月12日

【AWS】S3をディスクとしてマウントしてみた


今回はS3をストレージとしてEC2へマウントしてみます。



1. ストレージの作成

AWS Management Consoleへ行き、S3を選択します。
Create New Storageから、ストレージの新規作成をします。

2. 必要モジュールのインストール

必要なモジュールをインストールします。
root # yum install fuse fuse-devel

3. s3fsのインストール

root # cd /usr/local/src
root # wget http://downloads.sourceforge.net/fuse/fuse-2.9.1.tar.gz
root # tar zxvf fuse-2.9.1.tar.gz
root # cd /usr/local/src/fuse-2.9.1
root # ./configure
root # make
root # make install

4. S3のマウント

マウントする場所にフォルダを作成し、その場所にS3をストレージとしてマウントします。
今回は/mnt/s3にマウントします。
まずは、/etc/passwd-s3fsというファイルを作成し、アクセスキー:シークレットキーと中身を記述します。
{access key}:{secret key}
アクセスキーとシークレットキーはAWSの管理画面から取得出来ます。

次に、S3をマウントしていきます。
root # cd /mnt
root # mkdir s3
root # modprobe fuse
root # s3fs {S3のストレージ名} /mnt/s3 -o default_acl=public-read

最後に確認すると、
root # df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/xvda2            5.0G  3.6G  1.1G  77% /
tmpfs                 296M     0  296M   0% /dev/shm
/dev/xvda1            107M   39M   63M  38% /mnt/boot
s3fs                  256T     0  256T   0% /mnt/s3
一番下にS3がマウントされている事が分かります。

lsコマンド等でS3へアクセスするとレスポンスが非常に重いです。
プログラムから画像等のファイルを出し入れするのに使うのが良いでしょう。