Amazon Route 53でサポートされるレコードタイプについてざっくり理解する
こんにちは、NTT東日本の白鳥です。
DevelopersIOで記事を書くのが楽しくなってきました。
今回は、Amazon Route 53でサポートされるレコードタイプについての解説となります。
※本記事はDNSのレコードタイプすべてを網羅するものではなく、Amazon Route 53において使うレコードタイプについての理解に絞っております。
そもそものDNSの解説
DNS自体の解説については軽くに留めますが、「ドメインネームを管理・運用するためのシステム」が正しくなります。よく「ドメインネームからIPアドレスを紐づける仕組み」などと言われることもありますが、紐づける対象はIPアドレスだけではなく認証キーや電話番号もあります。
DevelopersIOにもDNSやAmazon Route 53について解説した記事はたくさんあるので、その中からいくつかピックアップしてご紹介します。
DevelopersIO内の参考記事
レコードタイプってどういうもの?
DNSはリソースレコードというドメイン名に関連付けられた情報を持っています。リソースレコードにはさまざまな種類があり、それぞれに役割と記述のルールが定められています。
省略形として単に「レコード」と呼んでいます。
リソースレコードの種類のことをレコードタイプと呼んでいます。
基本的な記述方式は、下記のような形になります。
(記述例)
example.co.jp. 3600 IN A XXX.XXX.XXX.XXX
値 | Domain Name | TTL | class | type | RDATA |
記述例 | example.co.jp. | 3600 | IN | A | XXX.XXX.XXX.XXX |
各値の意味を簡単に解説しますと、下記のようになります。
- Domain Name
リソースレコードのドメイン名です - TTL
リソースレコードをキャッシュに保持してもよい時間を記載します(省略可) - class
リソースレコードのクラス。通常IN(Internet)だけが使われます。 - type
リソースレコードのレコードタイプ。この先で解説します - RDATA
リソースレコードのデータ。レコードタイプによって記述方法が異なります。
Amazon Route 53でサポートされるレコードタイプについて
Amazon Route 53では、以下の13タイプのレコードタイプがサポートされています。レコードタイプ | 対応するRFC | 現行RFC制定年 |
Aレコード | RFC 1035 | 1987 |
AAAAレコード | RFC 3596 | 2003 |
CAAレコード | RFC 8659 | 2019 |
CNAMEレコード | RFC 1035 | 1987 |
DSレコード | RFC 4034 | 2005 |
MXレコード | RFC 1035, RFC 7505 | 1987, 2015 |
NAPTRレコード | RFC 3403 | 2002 |
NSレコード | RFC 1035 | 1987 |
PTRレコード | RFC 1035 | 1987 |
SOAレコード | RFC 1035, RFC 2308 | 1987, 1998 |
SPFレコード | RFC 7208 | 2014 |
SRVレコード | RFC 2782 | 2000 |
TXTレコード | RFC 1035 | 1987 |
ALIASレコード | - | - |
最も古いものでは1987年に制定されたものとなり、DNSが良く考えられた仕組みであることを示しています。
これら一つ一つを見ていきましょう。Amazon Route 53における各レコードの詳細な記述方法については公式ドキュメントを参照ください。
Aレコード
こちらが冒頭にご紹介した「ドメインとIPアドレスを紐づける」レコードタイプとなります。Aレコードはドメイン名とIPv4アドレスを紐づけます。同じドメイン名に対して複数記述することもできます。
(記述例)
example.co.jp. 3600 IN A XXX.XXX.XXX.XXX
AAAAレコード
こちらも同じく「ドメインネームとIPアドレスを紐づける」レコードタイプですが、こちらはドメイン名とIPv6アドレスを紐づけます。CAAレコード
CAAレコードは、ドメイン名の登録者が登録されたドメイン名に対応する証明書の発行を許可する認証局(CA)を指定するリソースレコードになります。CAAレコードを設定することで、下記の効果を期待することができます。- 証明書の誤発行を防止
- 不正な証明書発行要求の検知
CNAMEレコード
CNAME(シーネーム)レコードは別名に対する正式名を指定するためのリソースレコードです。CDNのIPアドレスの逆引きや、一台のサーバで複数のサービスを提供しているなどといったケースで使用されています。他にも利用シーンがございます。このような形で記述します。
(記述例)
service.example.co.jp. IN CNAME www.example.co.jp.
後述するALIASレコードとよく似ておりますが、Amazon Route 53においてCNAMEレコードはZone Apex以外のAWSリソース以外のドメインに対して指定するのが一般的です。
詳しい使い分けは公式ドキュメントや、下記の記事を参考にするとよいかと思います。
DSレコード
DNSSECを実装する際に必要となります。親野損に設定される子ゾーンのDNS鍵のリソースレコードを参照するリソースレコードです。親ゾーンのDSレコードと子ゾーンのKSK公開鍵の情報が一致することで、DNSSECを実装できるようになります。DNSSECを有効化してみたブログは、下記を参照ください。
MXレコード
Mail Exchange、つまりメールサーバを指定するためのリソースレコードです。特徴として、優先度を指定するプリファレンスがあり、より小さなプリファレンスが常に優先されます。Amazon Route 53においては同一のプリファレンスを指定すると、ほぼ均等的にルーティングされます。
NAPTRレコード
解説すると長くなるのと、よく使われるシーンは電話番号からSIP URIを検索したりするレコードなので、SIPや電話番号を取り扱うシステムを構築する際に使う、くらいに記憶しておけばよいかと思います。NSレコード
あるゾーンの中で情報を保持し、他のサーバに問い合わせることなく応答を返すことができる権威サーバを指定するレコードになります。あるゾーンの中で権限を委任する際に使用されます。委任先はAレコード等を持つ必要がありますが、一方的に委任することもできるので、権威サーバの設計には注意を払う必要があります。 このあたりの話は、JPRSの記事が参考になります。
公式ドキュメントにもあるように、Amazon Route 53においてはまれな状況を除き、NSレコードはデフォルトから追加、変更、削除しないことが推奨です。
PTRレコード
別名、逆引きDNSとも言われます。IPアドレスからドメイン名を特定するレコードになります。IPv4、IPv6ともにPTRレコードで記述ができます。用途としては、アクセス元を判別したり、通信相手の存在を確認する際に使われます。
AWSにおいては、Amazon SESで送信ドメイン認証で使われたりしています。
SOAレコード
ゾーンの管理情報を記述するレコードです。一つのゾーンに一つだけとなります。ゾーン転送の再試行時間や、リゾルバのTTLなどの値を設定できます。詳細は公式ドキュメントをご覧ください。SPFレコード
かつて、メールの送信者の身元を確認するために使われていました。Amazon Route 53においても利用可能ですが推奨されていません(RFC 7208 14.1 The SPF DNS Record Type)代わりに、TXTレコードで同様の記述が可能です。
SRVレコード
ドメイン名に対するサービスのポートを指定することができます。特定のポートに通信を絞りたい、などといったケースに対応可能です。TXTレコード
任意の値を保持するためのレコードで、汎用性の高い用途で利用可能です。先述のSPFレコードの代わりにメール送信者の身元確認や、スパムメールの防止のほか、テキスト形式でのメモとして使われたりもします。ALIASレコード
こちらはRFCに定められたレコードではなく、Amazon Route 53の独自の拡張となります。AWSリソースへのルーティングの際に、CNAMEレコードの代わりに使われれます。ALIASレコードは前述のZone Apexに加えてCNAMEレコードと比較した明確なメリットが2点あります。
- Amazon Route 53においてはAWSリソースに対するDNSクエリに対して課金されません。
- CNAMEレコードで記述した場合、DNSクエリは2つのクエリとして処理されますが、ALIASレコードは1つのDNSクエリとして処理されます。
したがって、ALIASレコードが利用できるシーンではALIASレコードを使用するのがベストプラクティスとなります。
どのシーンでALIASレコードが使えるかのチェックには、Trusted Advisorで確認することもできます。
Amazon Route 53 エイリアスリソースレコードセット
まとめ
Amazon Route 53で記述されるレコードタイプについてまとめました。実はこれだけのレコードタイプを使用できるようになっていることを知らなかったので、改めてレコードタイプの復習にもなり、いい勉強の機会となりました。レコードタイプについての詳細はRFCを読むのが一番詳しいですが、概要を理解する一助となれば幸いです。
参考サイト
Amazon Route 53 公式ドキュメント:サポートされる DNS レコードタイプIETF Datatracker
インターネット10分講座:DNS
JPRS用語辞典
Cloudflareラーニングセンター:DNSレコード