tech.guitarrapc.cóm

Technical updates

Amazon Route53 の DNS Query Test Tool を使わない手はないお話

このブログに限らず、私は基本的にAmazon Route53をDNSサービスとして愛用しています。Google Cloud DNSのほうが安かったりとか、いつまでβなんだろうというhttps://azure.microsoft.com/ja-jp/services/dns/がありますが、Route53が好きです。

今回は、 ようやくDNS Query Test ToolがRoute53でサポートされたので、嬉しくて記事を書いてみます。

Amazon Route53 が好きな理由

お名前.com .... はおいておいて、Azure DNSやGoogle Cloud DNSと比較してAmazon Route53を使うのにはいくつか理由があります。

  • ドメイン購入も含めた統合
  • Private DNSの管理との統合
  • 扱えるレコードタイプの種別
  • Aレコードエイリアス (Alias)
  • ルーティングポリシー

そして今回、これらに加えてDNSクエリテストが可能になりました。ざっくり紹介しましょう。

ドメイン購入も含めた統合

Azure DNSもGoogle DNSも購入できます。

https://azure.microsoft.com/en-us/documentation/articles/custom-dns-web-site-buydomains-web-app/

https://support.google.com/a/answer/53929?hl=en

Amazon Route53はRoute53画面でドメイン購入、管理まで統合しておりわかりやすさは群を抜いています。

個人的には、AzureのCustom domains管理はDNSの統合という意味では離れすぎているのでなんとかしてほしいなぁと。

Google DNSはちょっとまだまだですね..。

ちなみにグラニではRoute53の有効期限をAzure FunctionsでSDKを使った定期監視しています。もちろんドメインの自動更新も利用するのですが、どのドメインがいつまでというのがファンクション上でコードで管理され、いつでもテスト可能というのはいいものです。

Private DNS の管理 との統合

Route53では、指定VPC用のローカルDNSとしてRoute53が利用可能です。なかなか使いやすく、Peering越しのDNS解決を有効にできないようなシーンでもRoute53のPrivate DNS機能を使うとおおよそ対応が可能でしょう。

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/hosted-zones-private.html

もちろん同名ドメインのパブリックとプライベートがあった場合、プライベートが優先されます。

プライベートホストゾーンとパブリックホストゾーンの両方がある場合、プライベートホストゾーンに関連付けた Amazon VPC の Amazon EC2 インスタンスにログインしていると、プライベートホストゾーンがパブリックホストゾーンよりも優先されます。たとえば、example.com のパブリックホストゾーンとプライベートホストゾーンを作成して、パブリックホストゾーンにのみwww.example.comサブドメインを作成したとします。example.com のプライベートホストゾーンに関連付けられた VPC の Amazon EC2 インスタンスにログインしていると、パブリックホストゾーンにのみ存在するwww.example.comを閲覧することはできません。

扱えるレコードタイプの種別

DNSは、扱えるレコードタイプによって制限されるので、利用機会が少なくても「扱える」というのは嬉しいものです。

レコードセット Azure DNS Google DNS Amazon Route53
A
AAAA
CAA × ×
CNAME
MX
NAPRT ×
NS
PRT
SOA
SPF ×
SRV
TXT

2016/9/1時点の状態です。

クラウドサービス 2016/9/1状態
Azure DNS
Google DNS
Amazon Route53

CAA... さすがGoogleですね。

https://tools.ietf.org/html/rfc6844

Aレコードエイリアス (Alias)

AWS内部リソースであれば、Aレコードエイリアスが利用できます。

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html

https://dev.classmethod.jp/cloud/aws/amazon-route-53-alias-records/

https://tech.blog.aerie.jp/entry/2014/09/09/162135

あくまでもAレコードなのに名前で扱えるのは、CNAMEと違って非常に使い勝手が良く、AWSだけで使っている分にはとても嬉しいものです。AWS使っているなら、Route53を使う大きな理由になるでしょう。

ルーティングポリシー

Route53にはRouting Policyが存在します。あまりやりすぎるとカオスになるので注意ですが、これ1つで単純なラウンドロビンから、重みづけルーティングまで容易に制御できます。

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/routing-policy.html

https://dev.classmethod.jp/cloud/route-53-traffic-flow/

とくにWeighted Round Robinは、Blue/GreenやCDNのオンライン切り替え、トラフィックの調整まで様々な用途に利用できます。ELBとかALBいう前にRoute53レベルで様々な制御が可能なのでぜひ利用していただきたいです。

DNS クエリテスト

そして今回DNSクエリテストが可能になりました。

https://aws.amazon.com/jp/about-aws/whats-new/2016/08/amazon-route-53-announces-naptr-record-support-and-dns-query-test-tool/

私の観測範囲が狭いのか、この機能は色々なDNSサービスみてもあまり見かけないように思います。DNSがマネージドだからこそ、そこでどのような状況なのかは日常DNSを触っていて切実なのです。

利用は簡単です。Hosted Zoneに移動して、テストしたいレコードを選択してください。

たとえばこのブログははてなブログProなのですが、カスタムドメインに対してhatenablog.comをCNAME設定が必要です。Route53で設定できているか、簡単にテストできますね。

残念ながら、指定VPC用のローカルDNSの場合はテストできません。が、十二分に素晴らしいです。ぜひ使っていただけると、もやもやがずいぶんと解消するのではないでしょうか。*1

まとめ

Route53に限らず、各クラウドプラットフォームのDNSサービスを使うのは非常にいいと思います。ただ、DNSに関してはSSL同様に、使いやすさ、管理しやすさを重視する視点も必要と日頃感じるので、いい感じの使い方を見つけたいと思うのでした。

サブドメインでのゾーンの分割をはじめとして、Route53活用はサービスの数だけわくわくがあるので使い倒していきたいですね!

*1:私はとてもすっきりしました