WordPress冗長化(ドキュメントルート共有化)
やりたいこと~EFSによるドキュメントルート共有化~
WordPressをALB+EFSで冗長化しました。
ここではALB配下に置いたMaster・Slaveサーバ間でドキュメントルートを共有する設定を書いておきます。
MySQLとHaProxyでDBも冗長化しないといけないのですが、それはMySQL、HaProxyの記事を見ていただければと思います。
作業記録
前提:すでに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というもので何とか早くしてみようと思います。