WordPress冗長化(ドキュメントルート共有化)

やりたいこと~EFSによるドキュメントルート共有化~

WordPressをALB+EFSで冗長化しました。
ここではALB配下に置いたMaster・Slaveサーバ間でドキュメントルートを共有する設定を書いておきます。
MySQLとHaProxyでDBも冗長化しないといけないのですが、それはMySQLHaProxyの記事を見ていただければと思います。

作業記録

前提:すでにEFSファイルシステムが作成されていること、マウントしていること
ファイルシステムの作成、マウントまで

既に/efsをMaster・Slave間で共有済なので、マスターにあるドキュメントルート以下を/efsにコピーします。
そしてもとあったドキュメントルートを削除し、シンボリックリンクを貼るだけ、簡単簡単。

mkdir -p /efs/home/diaryhdoratokyo
cp -ai /home/diaryhdoratokyo/public_html /efs/home/diaryhdoratokyo/
rm -fR /home/diaryhdoratokyo/public_html
ln -s  /efs/home/diaryhdoratokyo/public_html /home/diaryhdoratokyo/public_html

これだけで終わり。
Slaveでも同じことをやりますが、上2行はMasterサーバで既にやってあるので下2行のみですね。
/home/diaryhdoratokyo/public_htmlがドキュメントルート。
自分の環境に置き換えてみてください。
/efs以下にドキュメントルートのパスをくっつけるようにした階層構造にしてあります。
そのほうが分かりやすいかと思います。
下手に省略したパスにすると思い出せなくなるので。

新たな問題~EFSが遅い~

これでDB、ドキュメントルートの共有化が終わり、WordPress冗長化できました。
Masterサーバがシャットダウンしても閲覧のみであればSlaveサーバだけで提供しつづけられます。
しかし新たな問題が・・・。
というのはめっちゃ遅くとても実用レベルではありません。
サイト更新はもちろんですがただページを開くだけでもやたら時間がかかります。
ぐぐってみたところ、同じようなこと言ってる人が多数いました。
どうやらEFSは大規模顧客用らしく、それなりに容量使っていないと速度が出ないようです。
ダミーファイル1TBを置くなどの方法があるようですが結構お金がかかるようです。
EFSのスループットモードをプロビジョニングに変更し、1024Mibにすると「スループットの請求は最大 7,372.80 USD/月です。」との表示が・・・。
ヤバすぎる。どうでもいいが間違って設定して破産する人とかいるのかな?

ということで、近いうちにCloudFront&OPCacheというもので何とか早くしてみようと思います。

前の記事

HaProxyでのMySQL冗長化

次の記事

レプリケーション監視