Amazon EC2(AWS) t1.microでWordPress運用
このサイトはAWSのt1.microで運営しています。2013年1月の月間訪問者数は約10,000。1日の訪問数は500人ほどのサイトです。
さくらのVPSから、AWSに移設を決め、できることなら、毎月のサーバー代を抑えたかったので、一番安いt1.microで運営することに決めました。
ただ、t1.microのメモリは613MBしかありません。多少の不安はありましたが、「まぁ、アクセスも多くないから大丈夫だろう」と思って、AWSに移設をし、サイトを公開したところ、2時間も経たずにサイトが落ちてしまいました。
確認してみると、Apacheは生きていて、mysqlが落ちていました。AWSのt1.microのメモリは613MBなので、どうしてもmysqlがメモリ不足で落ちてしまうようです。
対策はないものかと、色んなサイトを参考にさせてもらい、色々と試したんですが、
- mysqlへの最大接続本数を制限する「max_connections=10」を指定してもダメ
- MySQL クエリキャッシュを色々といじってみてもダメ
- PHPアクセラレータeAcceleratorを導入してもダメ
- Apacheでmod_deflate, mod_expiresを有効化してもダメ
- いつもお世話になっているWp Super Cacheを入れてもダメ
●EC2のmicroインスタンスでMySQLが落ちる場合 参考link http://lab.flama.co.jp/archives/680
m1.smallに変更すると、軽快に動作します。でも、現在のアクセス数だと、そこまでお金をかけたくなかったので、なんとかt1.microで運営したい。
結局Apacheでの運用を諦め、最終手段として、nginxに変えることにしました。
nginxに変えたところ、何の問題もなく運営できています。Apacheがそれだけメモリを使用していたってことですかね。ただ、スマートフォン対応が簡単にできるwptouchをはじめとする多くのプラグインがApache前提で作られているので、WordPressを色々とカスタマイズしている場合は、運用のハードルはかなり上がると思います。
これから、nginx用のプラグインが増えてくると思うので、運営しながら勉強していこうかな、と思います。