AWS AMIMOTO
備忘録として箇条書きします。
背景
さくらのVPSで不自由なくやってきたけど、突然負荷が上がってアクセスできなくなったりする不思議現象が起きてログみてもわからないことが月1くらいであるので、もしものためにAWSでもやっておこうかなということで。
やったこと
陣形・桶狭間がいいらしいというので、これをインストール(m1.small)。
ただこれだと、php-fpmがsegfaultして応答しなくなる事象が発生して、原因が特定できず断念。
AMI セルフホスティングプランの方でインスタンス(m1.small)を作成して、それを陣形のELBに接続したら php-fpmの問題がでなかったので(いまのところ)、こちらでいくことに。
インスタンスでやったこと
- デフォルトのWPはどうせ使わないので設定はせず。
- rootにパスワードを付ける
$ sudo passwd
- ドメイン指定でWPをインストール
#wp-setup example.com
- nginx ユーザとして ssh 接続する
こちらの通りで。
- php-fpmのチューニング
CAT MDESというサイトで負荷テストができる。
こちらで計測してみると、子プロセス5個だと75%くらいエラーになったので、子プロセスを30個に増量。
それでも unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable)エラーがでることがあったので、UNIXソケットからTCPへ変更
# nano /etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
#listen.owner = nginx
#listen.group = nginx
#listen.mode = 0666
pm.max_children = 30
# nano /etc/nginx/nginx.conf
upstream phpfpm {
server 127.0.0.1:9000;
}
- locale-archiveのコンパクト化
php-fpmがこれを使っているので、日・英・独以外のロケールは削除してサイズダウン。
# localedef --list-archive | grep -v -e ^ja -e ^en_GB -e en_US -e ^zh | xargs localedef --delete-from-archive
# cp -a locale-archive locale-archive.tmpl
# build-locale-archive
WPでやったこと
- プラグイン(元々入っていたもの)
- Akismet
- Contact Form 7
- Nginx Cache Controller
- WP Multibyte Patch
- プラグイン(入れたもの)
- All In One SEO Pack
- Camera slideshow
スライドショーはこれ! - Google Analytics for WordPress
- Google Analytics Dashboard for WP
- Google Sitemap
他のSitemapはエラーになった。 - Head Cleaner
- PubSubHubbub
- Simple Map
Google Maps APIを楽に使えるようにしてくれる。 - Ultimate TinyMCE
- WordPress Importer
- WP-Mail-SMTP
メールはさくらでやるのでこれは必須!
そうこうしているうちにまたSIGSEGVがでた
どういう条件だと出るのかがまだわからないので、とりあえずダウンしてもすぐ復旧するようにしてみた。
「ログ監視ツール logmon (修正パッチつき)」を参照。
# wget http://www-06.ibm.com/jp/linux/tech/doc/attachments/00057580_logmon_20100411.tgz
# tar zxvf 00057580_logmon_20100411.tgz
# cd logmon_20100411/
# nano logmon.patch
# yum install patch
# patch -p1 < logmon.patch
# sh setup.sh
# nano /etc/logmon/logmon.conf
# /etc/init.d/logmon start
/etc/logmon/logmon.conf
:/var/log/php-fpm/error.log
(SIGSEGV)
service php-fpm restart
これで大丈夫かどうかは次でたらわかる。