こんにちは、貴子です。
AWSのs3をnfsとして使いたくなったので、s3fsを利用してEC2にマウントしてみます。
よくs3はダウンロードもアップロードも遅いと聞きますが、
どれくらい遅いのか自分でも試して確認しようと思って、環境を整えました。
s3fsをインストールする
(1)AWSのマネージメントコンソールからs3Bucket作成する(2)EC2にログインし、s3fsをインストールするために必要なパッケージをインストールする
yum -y install gcc-c++ fuse fuse-devel libcurl-devel libxml2-devel openssl-devel |
rpmを探してくるかソースコンパイルで入れて下さい。
ブログ掲載用のインスタンスでは、OSにAmazonLinux(amzn-ami-hvm-2014.03.2.x86_64-ebs)を
選んでいたので、デフォルトのままのyumでインストールできました。
(3)githubからs3fsをダウンロードする
wget https://s3fs.googlecode.com/files/s3fs-1.74.tar.gz |
tar zxvf s3fs-1.74.tar.gz |
./configure prefix=/usr |
make |
make install |
インストール出来ました。
(4)パスワードを設定する
echo "accesskey:secretKey" > /etc/passwd-s3fs |
chmod 600 /etc/passwd-s3fs |
(5)(1)で作成したs3をマウントする
マウント先を作成します。
mkdir /mnt/ |
/usr/bin/s3fs -o allow_other takako-s3fs-test /mnt/ /usr/bin/s3fs -o allow_other 【s3Bucket名】【マウント先】 |
マウントできました!
これで、このディレクトリにファイルを置くと、 s3に格納されるので確かめてみましょう。
適当なファイルとディレクトリを作成します。
s3のマネージメントコンソール画面からデータが作成されていることを確認します。
(6)サーバー再起動時に自動でマウントをさせる
先ほどは手動でマウントしましたが、サーバー起動時に毎回手動でマウントするのは不格好なので、
自動マウントの設定を行います。
vi /etc/fstab |
/usr/bin/s3fs#takako-s3fs-test /mnt fuse allow_other,default_acl=public-read 0 0 |
fusermount -u /mnt |
mount -a |
df -h |
以上で、s3の自動マウント設定が出来ました。
感想
環境が整ったので、データをs3に移せばもう確認できる環境になるのですが、如何せんデータ移行には時間かかりますね。
世の中のエンジニアはどういう工夫をして時間を短縮しているのか気になります。
先日、初めてJAWSの中央線@高尾山に参加して、色々濃くて、かなりびっくりしました。
中央線のJAWSは、マイクロソフト・AWS・IDCフロンティアが
各クラウド環境についてのプレゼンをしてくれ、質問にも答えてくれる場でした。
個人的にはGoogleも参加してくれたら良いのになあと思いつつ、楽しい時間を過ごさせて頂きました。
また機会があれば参加します。