Route53ヘルスチェックを利用したポート監視

Amazon Route 53

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Route53のヘルスチェック機能を使ってポート監視を行う方法を紹介します。

Route53のヘルスチェック機能は通常DNSフェイルオーバ機能とセットで利用されますが、ヘルスチェック機能単体で利用することもできます。

チェックで利用するプロトコルはHTTP/HTTPSの他にTCPも指定できます。
ポートも任意のものが指定できます。

設定例

例としてSSH用の22番ポートを監視してみます。

監視対象(エンドポイント)側は22番ポートへのアクセスを許可しておいてください。
ヘルスチェック元のIPレンジは公開されていますが、範囲が広いので全許可にしておきます。

AWSのマネジメントコンソールのRoute53の画面からHealth Checks設定画面に遷移し、新しいヘルスチェックを作成します。

プロトコルは「TCP」、ポートは「22」を指定します。エンドポイントにはIPアドレスかドメインを指定してください。今回はIPアドレスで指定します。

監視に失敗した時、通知が飛ぶように「Create Alarm」を設定しましょう。VirginiaリージョンのCloudWatchの画面で設定できます。
通知にはSNSが利用されます。すでに通知用のトピックがある場合は、それを選択してください。
今回は新しいトピックを作成します。通知先のメールアドレスも設定しておきます。

WS000011

設定してしばらくするとStatusがUnknownからHealthyに変わります。

WS000016

監視対象のセキュリティグループを変更し、22番ポートを塞いでみました。
しばらくするとStatusがHealthyからUnhealthyに変わりました。

WS000017

下記のような通知メールも届きました。

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の画面で設定できます。

WS000015

まとめ

Route53のヘルスチェック機能でポート監視を設定してみました。
プロトコルでHTTP/HTTPSを選択することでURL監視も可能です。
ヘルスチェックの費用は1件あたり0.5ドル/月(監視対象がAWS外の場合0.75ドル/月)、通知設定の費用は0.1ドル/月とコストも低いので機会があれば試してみてください。