Route53ヘルスチェックを利用したポート監視
はじめに
Route53のヘルスチェック機能を使ってポート監視を行う方法を紹介します。
Route53のヘルスチェック機能は通常DNSフェイルオーバ機能とセットで利用されますが、ヘルスチェック機能単体で利用することもできます。
チェックで利用するプロトコルはHTTP/HTTPSの他にTCPも指定できます。
ポートも任意のものが指定できます。
設定例
例としてSSH用の22番ポートを監視してみます。
監視対象(エンドポイント)側は22番ポートへのアクセスを許可しておいてください。
ヘルスチェック元のIPレンジは公開されていますが、範囲が広いので全許可にしておきます。
AWSのマネジメントコンソールのRoute53の画面からHealth Checks設定画面に遷移し、新しいヘルスチェックを作成します。
プロトコルは「TCP」、ポートは「22」を指定します。エンドポイントにはIPアドレスかドメインを指定してください。今回はIPアドレスで指定します。
監視に失敗した時、通知が飛ぶように「Create Alarm」を設定しましょう。VirginiaリージョンのCloudWatchの画面で設定できます。
通知にはSNSが利用されます。すでに通知用のトピックがある場合は、それを選択してください。
今回は新しいトピックを作成します。通知先のメールアドレスも設定しておきます。
設定してしばらくするとStatusがUnknownからHealthyに変わります。
監視対象のセキュリティグループを変更し、22番ポートを塞いでみました。
しばらくするとStatusがHealthyからUnhealthyに変わりました。
下記のような通知メールも届きました。
Alarm Details: - Name: awsroute53-6456c033-0143-443b-b765-e3af3fd6aa3c-High-HealthCheckStatus - Description: - State Change: OK -> ALARM - Reason for State Change: Threshold Crossed: 1 datapoint (0.0) was less than the threshold (1.0). - Timestamp: Thursday 05 March, 2015 08:44:38 UTC
復旧メールも届くようにしたい場合は、Alarm設定で通知条件を追加してください。VirginiaリージョンのCloudWatchの画面で設定できます。
まとめ
Route53のヘルスチェック機能でポート監視を設定してみました。
プロトコルでHTTP/HTTPSを選択することでURL監視も可能です。
ヘルスチェックの費用は1件あたり0.5ドル/月(監視対象がAWS外の場合0.75ドル/月)、通知設定の費用は0.1ドル/月とコストも低いので機会があれば試してみてください。