[アップデート] Amazon Route 53 にて、クエリ数の確認ができる CloudWatch メトリクスが機能追加されました!

Route 53 でクエリ数の確認が CloudWatch で出来るようになりました。かゆいところの手が届く絶妙の設計のアップデートをご紹介します。
2019.08.30

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

みなさん、Route 53 使ってますか!(挨拶

このたび Amazon Route 53 において、DNS クエリ数を CloudWatch でメトリクス取得できるようになりました!

Amazon Route 53 Now Publishes Query Volume Metrics for Public Hosted Zones

「Route 53 にアクセスが来ているか・来ていないか」を判断するにはこれまで、 DNS Query log を取得すれば確認が可能でした。 これからは CloudWatch のメトリクスを見れば良くなります。

確認方法

特に設定は必要なく、既にメトリクスの収集が始まっています。 ただし正式リリース (8/29) 前は明らかに収集できてない期間・低い値が示される期間があったりするようなので、最初の内はそこをご留意ください。

以下、すこし説明します。

Route 53 はグローバルサービスなので、リージョンはバージニア北部( N.Virginia )を選択します。

全て > Route 53 と開くと、「ホステッドゾーンメトリクス ( Hosted Zone Metrics )」が増えていますのでそこを開いて下さい。登録されているホステッドゾーン ID 毎に DNSQueries メトリクスが表示できるかと思います。

example.com」のようなゾーン名ではないのでちょっと分かりにくいですが、ゾーン名とゾーン ID の対照は Route 53 のコンソールで参照できますのでご確認下さい。

注意点としては、このメトリクスは「 Count 」属性であるということです。 単にメトリクスを選択しただけだと上述のようなグラフにならないので、「グラフ化したメトリクス」タブを選択して、統計を「合計」または「サンプル数」にしてください。

また、期間を「1分」に変更します。これで、毎分のクエリ数が表示されることになります。

詳細は、AWS の公式ドキュメントをご覧ください。現時点でまだ英語版しか用意されていないようです。

ユースケースについて

さて、単位時間あたりのクエリ数が分かると何が嬉しいでしょうか。

Route 53 にはスケールや暖機などという概念も必要もないので、性能指標のためでないことは確かです。 DNS という特性上キャッシュサーバや TTL の問題がからむため、アクセス数との相関関係も微妙でしょう。

いくつか思いついたものを上げておきます。

クエリ有無の判別

まず最初に思いつくのは、「実際にこのゾーンに対してクエリが来ているのか、いないのか」が手軽に判別できるということです。

例えば不要となった(はずの)ホステッドゾーンを削除する際に、「ほんとにもう使ってないよね?」と不安になることがあると思います。または上位の NS レコードを変更した後、確実に切り替わったかどうかを確認したくなることでしょう。

これまでは DNS クエリログ を取得し調査することで確認ができました。しかしながら CloudWatch のメトリクスを見るよりは準備も手間もかかります。

有無をちょっとみたいだけなので、それが手軽に出来るようになったのは嬉しいですね。 すこしみてみた感覚値で言うと、反映に数分のラグはあるようですが、世界中の PoPs からデータを集めてきていると考えたら十分と思います。おそらく Count 値で収集しているため、値の生成に数学的な処理(加算とか)が必要ないために出せる速度なのかなと思います。

クエリコストの概算見積

記事執筆前に社内ではなしていたときに指摘されたのですが、ご存じの通り Route 53 は、ふたつの要素から課金されます。

前者は簡単に事前計算できますが、クエリ数はこれまでクエリログをとって行数を数えるしかありませんでした。

これからは、期間を 1 日や 30日にしてやることで見積が可能になります。メトリクスが Count 属性なのもこのため(簡単に合計値を出せる)かもしれませんね。

まとめ

Route 53 において DNSQueries メトリクスが取得できるようになった、というアップデートを紹介しました。

これでまたひとつ、オンプレで DNS を運用する理由がなくなりましたね!