[aws] Webサーバの80/443番ポート死活監視を行い、異常があればSMSやメール通知する仕組みを構築
最近、Webサーバでサーバ自体は生きているが、webサービスが死んでいるという事態が発生したので、対処方法を考えた。
結果としてはAWSのRoute53でHTTP監視を行うことにした。
AWSのRoute53のHealth Checkでは、AWS上にある世界中のDNSサーバが対象サーバに対してDefault30秒置きにポートのアクセス状況を確認してくれる。
いろいろオプションを付けると、利用金額が上がっていくので注意
赤のラインがサービスが死んでいる状態が続いたということ、かなり死んでいる。。。
結局原因はwordpressのxmlrpc.phpへの大量攻撃が原因だったのだが、
Route53のHTTP監視設定方法
AWSコンソールのRoute53を開く
左ペインのHealth Checksを開き、「Create health check」をクリック
[Name]には適当な名前を、[IP address]には監視したい対象のサーバのIPアドレスを、[Port]はサービスポート、[Path]は死活監視したいページ。何も無ければTOPページを見に行く。
通知が欲しい場合は、Create AlarmをYesにして通知SNSを指定する
*ただしRoute53はバージニアのRegionになるため、SNSはバージニアRegionで予め作成しておく必要がある。
*ここでYesをしなくてもCloudWatchで別途作成できる
登録完了すると、バージニアのCloudWatchに反映されているので、アクションなどが欲しければ追加可能。
個人的にはアラート発生時にAuto Recoveryが実行できれば尚良かった。