【AWS】Lightsailインスタンスがやたらヘルスチェックにコケるので調査
こんにちは。隊長@音楽家兼エンジニア#今日はエンジニアです。
先日、Lightsailで公開しているwordpress上のホームページが一時的に見れなくなる事象が発生しました。
それも複数回、不定期に。
調査したことを備忘録兼ねて記載します。
1.環境
AWSサービスのLightsailを使ってwordpress(bitnami製)を公開しているWEBサーバを立てていました。
前段にはALBを置き、ヘルスチェックに失敗したらTeamsに通知が飛ぶよう構成。
ALBを置いているのはSNI使って複数証明書を持たせて背後にドメインの異なるLightsailを何台か建てるためです。
そのうち何台かで、ALBのヘルスチェックにやたら失敗するようになりました。
ヘルスチェックはモニター用のパスに対するHTTPS通信で、10分の断があったら発砲するようCloudwatchを設定済み。そんなに何度も失敗するのはとても困る。
2.原因は?
何はともあれログ調査。
こちらのサイトを参考にさせていただきました。
[bitnami] phpなどのエラーログやphp.iniの場所
/opt/bitnami/apache2/logs/error_log
内容を見てみたところ、かなりの頻度で以下のエラーが発生していました。
IP、ドメインなど一部の情報をマスクしています。
[Sat Nov 21 06:48:29.450071 2020] [pagespeed:error] [pid 20196:tid 139684187137792] [mod_pagespeed 1.13.35.2-0 @20196] Slow ReadFile operation on file /opt/bitnami/apache2/var/cache/mod_pagespeed/v3/xxx.xxx.xxx.xxx/https,3A/,2Fxxx.xxx.xxx.xxx/wp-content/plugins/contact-form-7/includes/js/scripts.js,3Fver=5.1.7,: 279.114ms; configure SlowFileLatencyUs to change threshold\n
[Sat Nov 21 06:55:03.772648 2020] [pagespeed:error] [pid 24436:tid 139684187137792] [mod_pagespeed 1.13.35.2-0 @24436] Slow ReadFile operation on file /opt/bitnami/apache2/var/cache/mod_pagespeed/v3/<domain-name>.jp/https,3A/,2Fblog.<domain-name>.jp/wp-content/plugins/content-views-query-and-display-post-page/public/assets/css/cv.css,3Fver=2.3.2,: 266.5ms; configure SlowFileLatencyUs to change threshold\n
[Sat Nov 21 06:57:59.123430 2020] [pagespeed:error] [pid 24436:tid 139684170352384] [mod_pagespeed 1.13.35.2-0 @24436] Slow write operation on file /opt/bitnami/apache2/var/cache/mod_pagespeed/shm_metadata_cache/snapshot/pagespeed_default_shm/metadata_cache/1/64/4452/128/89,.tempSL7Io0: 264.923ms; configure SlowFileLatencyUs to change threshold\n
pagespeedってのがとりあえず怪しい…なんだそれ。
で、調べてみたところホームページの読み込みとかを高速化するためのツールで、Apacheのモジュールとして組み込まれているらしい。
公式がいまいちよく分からなかった…じゃなくてこの時絶賛ホームページが表示されず焦っていたので、以下のサイトが参考になりました。
いつもお世話になってます、まさかAWS以外でたどり着くとは思いませんでしたがw
【自動化】PageSpeed ModuleでWebサイトのパフォーマンスチューニング #1 インストール編
このモジュールを介しての読み込み、書き込みが一通り遅い、というエラーが出まくっている、と。
bitnamiではデフォルト有効化のようで、全く知らずに使っていましたがこれは相性がよくなさそう。
3.対策
念の為bitnamiのフォーラムを調べて対策がないか確認してみました。
結構困っている人多いみたいで、英語だとかなりの件数引っかかりました。
Server down or too slow when loads
If flushing the cache and restarting Apache doesn't fix your issue, try to completely disable PageSpeed. Remember to restart services for changes to take effect.
対策というかなんというか、もう悪さをしてるのはこの子ですって認められちゃってる感じ…
bot攻撃などでも発生するようで、一応apacheのアクセスログを見ましたが異常な量の攻撃は認められず。
ということで、潔く無効化することにしました。
以下の記事を参考にさせていただきました。
Bitnamiで不要なcacheを消す方法
httpd.confはbitnamiなので以下。
/opt/bitnami/apache2/conf/httpd.conf
viで以下をコメントアウトします。
/pagespeedですぐにたどり着けます。
Include conf/pagespeed.conf
Include conf/pagespeed_libraries.conf
apache再起動。
sudo /opt/bitnami/ctlscript.sh restart apache
4.その後
キャッシュとかブラウジングにもろ影響するモジュールだったので、apacheの再起動後に一通り状況確認しましたが問題なし。
その後、数日立ちましたが頻発してたヘルスチェック失敗は一度も発生せず、サイト状態も問題なし。
apacheのerror.logからもpagespeedに関するログは消えてました(当然ですが)
日本語でまとまっている記事はなかったので、書いてみました。
どなたかのご参考になれば幸いです。