4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Route53] フェイルオーバールーティングにてフェイルオーバーとフェイルバックが発生したことを検知する

Posted at

この記事について

Route53にはフェイルオーバールーティングというルーティングポリシーがあります。

フェイルオーバールーティングには以下の3つの要素があります。

  • プライマリレコード
  • セカンダリレコード
  • ヘルスチェック

ヘルスチェックではチェック対象のURL(もしくはIPアドレス)を指定して、HTTP/HTTPSリクエストを送信します。ステータスコードが200であればヘルスチェックが正常であると判定されます。それ以外のステータスコードの場合は異常と判定されます。

フェイルオーバールーティングではヘルスチェックを定期的に行い、ヘルスチェックが正常である場合はプライマリレコードのDNSクエリを返します。ヘルスチェックが異常の場合はセカンダリレコードのDNSクエリを返します。

プライマリレコードからセカンダリレコードへの切り替わりことをフェイルオーバーと呼びます。
ヘルスチェックが異常から正常に戻った際は、セカンダリレコードからプライマリレコードに切り替わります。これをフェイルバックと呼びます。

この記事ではこれらフェイルオーバーとフェイルバックが発生したことをCloudWatch Alarmで検知する方法について記載します。

Rout53 ヘルスチェックのモニタリング

Route53にはヘルスチェックステータスというメトリクスがあります。
このメトリクスが取りうる値は0か1のみであり、ヘルスチェックが正常である場合は1、異常である場合は0となります。

image.png

このヘルスチェックステータスを利用して、CloudWatch Alarmを設定することで、フェイルオーバーとフェイルバックを検知することが可能です。

CloudWatch Alarmの設定

フェイルオーバー検知用のアラームとフェイルバック検知用のアラームを2つ作成します。

フェイルオーバー検知用のアラーム

CloudWatch Alarmの設定には"メトリクスと条件"と"アクション"があります。
"メトリクスと条件"で対象のメトリクスと閾値を定義して、"アクション"で閾値を超過した際のアクションを定義します。

"メトリクスと条件"はフェイルオーバーでもフェイルバックでも同じになります。
"アクション"のアラーム条件のトリガーがフェイルオーバーとフェイルバックでは異なります。

また私はSNSトピックに通知を送信して、それをNewRelicに送信することでNewRelicでフェイルオーバーとフェイルバックの監視をできるようにしております。この記事ではアクションにおける通知先については言及しないため、各々の好みに合わせてカスタマイズいただければ良いかと思います。

メトリクスと条件

項目 備考
メトリクス(名前空間 メトリクス名) AWS/Route53 HealthCheckStatus
HealthCheckId 作成したヘルスチェックのHealthCheckId
統計 最小
条件 しきい値の種類 静的
条件 アラーム条件 HealthCheckStatusが1よりも低い

image.png

アクション

項目 備考
アラーム条件のトリガー アラーム状態
次のSNSトピックに通知を送信 任意

image.png

フェイルバック検知用のアラーム

メトリクスと条件

項目 備考
メトリクス(名前空間 メトリクス名) AWS/Route53 HealthCheckStatus
HealthCheckId 作成したヘルスチェックのHealthCheckId
統計 最小
条件 しきい値の種類 静的
条件 アラーム条件 HealthCheckStatusが1よりも低い

image.png

アクション

項目 備考
アラーム条件のトリガー OK
次のSNSトピックに通知を送信 任意

image.png

通知内容

CloudWatch AlarmからSNSトピックへの通知(JSON形式)の中にMessage.AlarmNameがあります。このキーにはCloudWatch Alarmのアラーム名が入りますので、これでフィルタリングすればフェイルオーバとフェイルバックの発生を監視ツール(NewRelicやDatadog)で検知することが可能です。

参考

フェイルオーバールーティング
CloudWatch を使用したヘルスチェックのモニタリング
Amazon Route 53 のヘルスチェックと Amazon CloudWatch を使用したリソースのモニタリング

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?