どうも!なまこです!
本ブログはAWSでWebサーバーを構築し、WordPressをインストール、ブログを運用しているのですが、Webサーバーを冗長化した際につまづいたことを共有化したいと思います。
冗長化とは?
冗長化とはWebサーバー1台だと負荷がかかったり、何らかの原因でサーバーがダウンしてサービスを提供できなくなるのを防ぐためにサーバーを複数台設定して運用を安定にする方法です。ちなみに私が構築しようとしたのは以下のような構成で、Webサーバー2台、データベースサーバー1台の構成です。
- WebサーバーにDBをインストールし、運用することも可能ですが、マネージドサービスであるRDSを利用するとバックアップなどの運用が楽でおすすめす。
どんな現象が起きた?
Webサーバーを2台構築し、ロードバランサーを設定して問題なく負荷軽減できることを確認し、さーWordPressを勉強しまくるぞー😀と思ってテーマやプラグインをインストールし、ページをカスタマイズしている時であった。
・・・?あれ・・・?なんかページが開けないときがある。しかも50%くらいの確率で。
プラグインを更新したはずなのに更新の通知が何回も来る😡
今までうまく行っていたのにとうとうつまづいた( ´Д`)
ページの応答の確率といい、冗長化してからの挙動どいい、嫌な予感がよぎった。。。
何が問題だった?
そういえば冗長化の際、応答しているサーバーを調べるためにindex.phpをいじったことを思い出した。
もしかしてこれ2台のWebサーバー内容間違ってね・・・?
wp-content/pluginsでプラグインを
wp-content/themesでテーマを確認してみる。
・・・。サーバーごとで内容と数が全然違う。。。
よく考えたら当たり前なのですが、サイトにアクセスするたびWebサーバーが違うので挙動がおかしくなるのは当たり前ですね。
まとめ
- WordPressに新しくプラグイン、テーマをインストールする際は冗長化を切りましょう。
- めんどくさいですが、それらをインストールしてからイメージ(AMI)を作成してWebサーバーを複製して冗長化しましょう。
言われてみれば当たり前ですが、思わぬ落とし穴にハマりました。みなさんも同じようなケースが起きた際は注意してくださいね!
ロードバランサーについてはこちらにも記事があります↓
【AWS】ロードバランサー使用時のセキュリティグループの設定で苦労した話