0
Help us understand the problem. What are the problem?

posted at

updated at

CNAMEレコードとTXTレコードは共存できないので、ALIAS レコードを使う

はじめに

DNS の CNAME レコードは、他のレコードと同じ値を使った共存が出来ません。RFC で定義されている、DNS の中のルールになっています。

A CNAME record is not allowed to coexist with any other data.

TXT レコードやAレコードなど、種類問わずすべてのレコードと共存することが出来ません。

ELB を使って Web サービスをインターネットに公開する際に、CNAME レコードを使って公開する方法がありますが、上記の制限が問題になる場合があります。具体例を挙げましょう

  • orenoservice.co.jp という名前でとあるWebサービスを公開している
  • この名前は CNAME レコードとして、ELB を指している
  • なんらかの事情で、orenoservice.co.jp の値を使って TXT レコードを作りたい (Google Search Console などのサービスを利用する際に、TXT レコードを使ったドメインの所有状況を証明する場合がある)
  • しかし、orenoservice.co.jp は CNAMEレコードなので、TXT レコードを作成できないため、利用したいサービスが使えない

こういった問題を解決するために、Route 53 では Alias レコードという機能を提供しています。Alias レコードとは、AWS 上のリソースをルーティングするための Route 53 の拡張機能となっており、これを使うことで、Alias レコードと TXT レコードが共存できます。CNAME を使った制限を回避する点を初め、さまざまなメリットがあります。詳細は次の Document に記載されています。

念のため動作確認を行ったので、備忘録として残しておきます。

CNAME と他レコードは共存できない

まず、RFC で定義されている通り、CNAME と他レコードが共存できないことを確認していきましょう。

Route 53 上で、CNAME レコードを Create します。

image-20220114232854905.png

thisistest.sugiaws.tokyo という CNAME レコードを作成します。

image-20220114232325542.png

CNAME が作成されました。

image-20220114232402816.png

この状態で、同じく thisistest.sugiaws.tokyo という TXT レコードを Create を試みてみます。

image-20220114232546229.png

Error になりました。CNAME と同じ値を指定しているので、エラーになっています。

image-20220114232603372.png

ALIAS レコードでやる

では次に、ALIAS レコードでやってみましょう。Create を押して作成を進めます。

image-20220114232930741.png

右上の Alias を ON にするのがポイントです。

image-20220114233108087.png

Alias Record が作成されています。

image-20220114233233443.png

この状態で TXT レコードを Create してみます。

image-20220114233321673.png

はい、CNAME レコード違い、ALIAS レコードでは、TXT レコードと共存できていますね。

image-20220114233404683.png

もちろん、ALIAS レコードを使って、実際にブラウザからアクセス可能です。

image-20220114233440408.png

この検証を通じてわかったこと

  • ALIAS レコードを使えば、他レコードと共存できる
  • 既存の DNS サービスからの移行の手間はあるかもしれないが、移行を検討するのが良い

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?