WordPressを操作していると落ちることが頻発
このブログはAWSのAmazon Lightsailという仮想サーバを使っています。(以前も引っ越し・設定の記事を書きました)
このAmazon Lightsaiですが、わりとクセがある仕様で設定に苦労していました。
なんとか使っていましたが、引っ越して1ヶ月経ったくらいからWordPressの管理画面でページ遷移するとサーバの応答がなくなることが多発し始めました。
サーバを再起動させればとりあえず復帰はするのですが、さすがにまずいと思い対処法を探してみました。
原因はインスタンスのメモリ不足らしい
「Lightsail 落ちる」で検索してみると同じ現象に悩まされているブログがいくつか見つかりました。
特に気になったのはこの記事。
自分もプランは一番安い月額3.5ドルのプランなので同じです。
記事によるとLightsailの3.5ドルのプランはメモリが512MBしかないのでメモリが足りず落ちる可能性があるとのこと。
そんなにアクセスがあるブログではないので最小構成で良いかなと考えてましたがダメみたいですね。
インスタンスのプランを3.5ドルから5ドルのものへ変更
せっかくなので自分もプランを1段階上げてみることにしました。
3.5ドルが5ドルなので差額は1.5ドル。そんなに負担ではないですからね。
先程の記事を参考にスナップショットから新規インスタンス作成を行いました。
サイトがちゃんと移行できたのを確認し静的IPアドレスを付け替え。
あとRoute53のホストゾーンのレコードの設定でAAAAレコードのIPv6を新しいインスタンスのものに変更しました。
これで大丈夫かなと思ってましたが……
まだ前と同じようにサーバが落ちる
サーバのプランをアップグレードしましたがまだ前と同じように管理画面の画面遷移で落ちました。
1回ならともかく度々(1週間に1度くらいの頻度)落ちるのでスペックが原因ではないかもしれない……。
というわけで原因を調べることに。最初っからやっておけばよかったですね。
落ちたときのログが残っていない
エラーログは途中で切れてて落ちた直接的な原因は不明でした。
MySQLがメモリ不足で落ちたのかもしれませんがMySQLのログの場所がわからずで原因を特定できません。
今現在のメモリの空きは1GB中120MBくらい。そんなに余裕はなさそうです。
Swapは640MBで作られていました。
スクリプトのエラーも探ってみましたが落ちた時刻でのエラーはありませんでした。
わからないことがわかったのでLightsailで落ちる対策をしているブログ記事を探しました。
対策① Swap領域を640MBから4GBに増やす
調べて見つけた記事はこちら。
Swap領域を増やしている記事が多かったのでそれに習って増やすことにしました。
640MBから4GBにします。
$ sudo -i
# df -m
(HDD容量を確認)
# swapon -s
(swapファイルの場所とサイズを確認)
Filename Type Size Used Priority
/mnt/.bitnami.swap file 649996 256 -2
# swapoff /mnt/.bitnami.swap
# rm /mnt/.bitnami.swap
# dd if=/dev/zero of=/mnt/.bitnami.swap bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 64.7038 s, 66.4 MB/s
# chmod 600 /mnt/.bitnami.swap
# mkswap /mnt/.bitnami.swap
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=6f56bda0-4821-4aa3-bdb5-1fc4ac264bb2
# swapon /mnt/.bitnami.swap
# free -h
total used free shared buff/cache available
Mem: 987Mi 337Mi 92Mi 51Mi 557Mi 453Mi
Swap: 4.0Gi 0.0Ki 4.0Gi
# echo "/mnt/.bitnami.swap swap swap defaults 0 0" >> /etc/
fstab
Swap領域が増え、またサーバ起動時にSwapファイルを指定しました。
サーバを再起動させ確認し、再起動後もちゃんとSwap領域が増えていることを確認しました。
対策② Lightsailのアラームを設定
前に1回管理画面以外でサーバが落ちていた時があり、サーバが落ちていることに気づかないことがありました。
少しでも早く気づけるようにLightsailのメトリクスからサーバ異常時にメールを飛ばすようアラームの設定をしました。
アラームは「CPU使用率」と「ステータスチェックの失敗」にセットしました。
CPU使用率は
「CPU 使用率 が、過去 20 分 以内に 2 回 の 次を超過、または次に等しい: 10% であるときに通知」
に設定。
20分でCPU使用率が10%を超えた回数が2回以上のときにメールを飛ばします。
ステータスチェックの失敗は
「ステータスチェックの失敗 が、過去 5 分 以内に 1 回 の 次を超過: 0 failures であるときに通知」
に設定しました。
ステータスチェックでFailしたらすぐメールを飛ばします。
テストも行い正常に動作するのを確認しました。
対策③ サーバが落ちていたら自動的に復帰するようにする
この記事にサーバが落ちている時に自動的に復帰するスクリプトが書かれてましたので真似してみました。
自分のアドレスのステータスコードをcurlで確認し、200でなければ「/opt/bitnami/ctlscript.sh restart」でサービスを再起動するスクリプトでした。
スクリプトのurlを自分のドメインに変更するだけでよさそうです。
それを置いてcronで30分おきに実行させます。
出力結果は/var/log/messagesに出力されるので確認。
とりあえず様子見
根本的な解決はできてないですが一応の対策はしてみました。
Swap領域を増やしてからは落ちてないですが落ちる可能性は高いままなので様子見ですかね。
また落ちまくって困ったら調べて解決法探します。
コメント