こんにちは、CSチームの坂本です。
前回「WordPress on Amazon S3」と題して、「Really Static」というWordPressのプラグインを利用してWordPressをAmazon S3で公開するまでの流れを説明させていただきました。
前回の記事
WordPress on Amazon S3
今回は、前回の記事の最後に「他にEC2でS3をマウントして利用する方法もあります。」と書いていた内容に関して説明したいと思います。
今度はS3をファイルシステムとしてマウントできるツール、「s3fs」を利用して、前回「S3Sync.rb」を使ってS3へリリースしていた工程を削りたいと思います。
s3fs | S3をファイルシステムとしてマウントできるツール |
目次
- 「s3fs」のインストール
- S3をマウント
- 「Really Static」の設定変更
- S3で再公開
1. 「s3fs」のインストール
※今回のEC2の環境は「AmazonLinux-2011.9.1-i386」を使用しています。
まず、事前に必要なパッケージをインストールします。
yum install gcc yum install libstdc++-devel yum install gcc-c++ yum install fuse yum install fuse-devel yum install curl-devel yum install libxml2-devel yum install openssl-devel yum install mailcap yum install make
「s3fs」をインストールします。
wget http://s3fs.googlecode.com/files/s3fs-1.61.tar.gz tar xvzf s3fs-1.61.tar.gz cd s3fs-1.61/ ./configure --prefix=/usr make sudo make install
「s3fs」の設定を行います。
sudo vi /etc/passwd-s3fs
/etc/passwd-s3fs
アクセスキー:シークレットキー
※上記を記載してください。
インストール方法は以下のページも参考にしてください。
http://code.google.com/p/s3fs/wiki/InstallationNotes
2. S3をマウント
マウント用のディレクトリを作成します。
mkdir /mnt/static
S3をマウントします。
s3fs mybucket /mnt/static/ -o allow_other -o default_acl=public-read
※オプションで「allow_other」を指定すると他のユーザーでもS3を操作できるようになります。
※default_aclはデフォルトでは「private」になっていて公開されないので、「public-read」を指定します。
オプションに関しては以下も参考にしてください。
http://code.google.com/p/s3fs/wiki/FuseOverAmazon
3. 「Really Static」の設定変更
前回の設定を変更します。
work with local filesystem internal filepath from to cachedfiles :
※静的なHTML生成場所をS3をマウントしたディレクトリに変更します。
以下は前回と同じ作業工程です。
※今回前回の状態のまま作業を行ったところ、書き込み権限がないというエラーが発生しましたので、AWS Management Consoleでバケットの中を一旦空にし、EC2上でマウントし直してから、以下の作業を行っています。
「reset filedatabase」ボタンを押します。
※「Really Static」をインストールすると、DBに「wp_realstatic」というテーブルが作成されますが、このボタンを押すと「wp_realstatic」テーブルに保存されている情報が削除されます。
4. S3で再公開
「write all files」ボタンを押します。
※このボタンを押すと、静的なHTMLページが生成されます。
無事、前回「S3Sync.rb」を使ってS3へリリースしていた工程を削ることができました。
これでEC2上でS3をあまり意識することなく連携ができるようになりました。
同じリージョン内にあるEC2とS3間ではデータの転送料が発生しないので、今回のように両方ともTokyoリージョンを使用していれば金額面も意識しないで済みますね。