【新機能】Amazon Route 53 に[Calculated Health Checks]と[Latency Checks]が追加されました!
こんにちは、せーのです。 今日はRoute 53に追加された2つのチェック項目をご紹介したいと思います。
Calculated Health Checksとは
今までヘルスチェックは1ドメインにつき1つ、割り当てられていました。しかしポータルサイトなどでは特集ページやユーザーページ等、複数のドメインを使用してコンポーネントを構築するWebサイトがあります。Calculated Health Checksを使用するとこのような複数のドメインをグループ化しANDやORでまとめてヘルスチェックすることができます。例えば3つのドメインから成り立つサイトを運営していてどれか1つのドメインでもヘルスチェックが通らなかったらアラートを上げる、ということも可能です。
Latency Checksとは
こちらは字の通りレイテンシーのチェックです。このメトリクスでは
- TCP connection time - Route 53からエンドポイントまでのコネクションが確立する時間
- time to first byte - 最初のバイトが戻ってくるまでの全所要時間
- the time to complete the SSL handshake(SSL通信の場合のみ) - SSLコネクションが確立するまでの時間(2回のラウンドトリップを含む)
という3つの項目が取れます。またこの項目は本来のヘルスチェックの一項目として扱われ、CloudWatchにも飛ばせます! CloudWatch側ではこれらのレイテンシーチェックの値はリージョン毎に見ることもできますので、CloudFront導入の検討材料としても使えますね。
やってみた
それではやってみましょう。まずはEC2を3つ立ち上げます。
この3つにEIPをつけ
Route 53にてドメインを振ります。
次にそれぞれのEC2にヘルスチェック用にApacheを立てます。またヘルスチェック用のファイルを一つ作っておきます。
ssh ec2-user@54.65.217.193 -i ~/dev/key/XXXXXXXXXX.pem sudo yum update -y sudo yum install httpd -y sudo service httpd start sudo touch /var/www/html/healthcheck.txt sudo chmod 444 /var/www/html/healthcheck.txt
DNSが効いているかどうか、Route 53で振ったドメインからブラウザでアクセスしてみます。
これで準備はOKです。次にRoute 53から[Health Check]のタブを選び、Health Checkを新規作成します。
まずは3台のEC2に対して80番のヘルスチェックを作成します。
こんな感じで3つ作ります。
では新機能です。これら3つのドメインをまとめたcaluclated health checksを作成します。
statusでcalculated health checksを選択し、モニターでまとめる対象のヘルスチェックを選びます。最後に[Report healthy when]でどのような場合にhealthyなのかを規定します。今回は全てのヘルスチェックがhealthyならhealthyとしました。
ではためしにtest3を落としてみます。
そうするとtest3のヘルスチェックがUnhealthyになると同時にcalculated health checksで作成されたヘルスチェックもUnhealthyになっているのがわかります。
次にlatency checksを試してみます。 これはhealth checkを新規作成している際にAdvanceに隠れているチェックボックスを入れるだけです。
Latencyのタブを開いて確認してみると時間毎のレイテンシーがグラフ化されています。Regionのタブを選択するとリージョンごとのレイテンシーもチェックできるようになっています。
まとめ
いかがでしたでしょうか。ヘルスチェックをグループ化してまとめる、というのはなかなかなかった発想で面白いですね。アイデア次第でいろんなことができそうです。 一方レイテンシーのチェックはとても実用的ですぐにでも導入したいと思わせるものです。尚ヘルスチェックには課金が発生しますのでこちらを参考にして料金もチェックしてみてくださいね。