web-dev-qa-db-ja.com

Route53のA RecとCNAMEの違い

Amazon Route 53では、Aliasを使用してAレコードまたはCNAMEを別のサブドメイン名に設定できるため、AレコードとCNAMEの違いはどうなっているのでしょうか。

私の質問を明確にするために、従来のNameServerのCNAMEとAレコードの違いは、CNAMEのみが異なるサブドメインを指すために使用でき、Aレコードは有効なIPアドレスを指す必要があるということです。 AWS Route53では、A RecまたはCNAMEのいずれかでサブドメインを使用できるため、2つの区別があいまいになりません。

39
Scalable

あなたの質問は非常に有効ですが、あなたは「サブドメイン」という言葉を正確ではない方法で使用しています。

あなたが実際に求めているのは、Route 53、Aレコードが、別のドメインからの完全修飾ホスト名、または自身のドメインからのホスト名またはサブドメインを参照しているように見えるという事実についてです。適切なDNS、別のホスト名を参照する唯一の方法はCNAMEを使用することですが、サブドメイン( "www.example。")を指すドメイン( "example.com")の頂点でプロビジョニングすることはできません。 com」)。

あなたが言っているエイリアスは、機能的には同等であるように見えますが、CNAMEよりも柔軟性がありますので、違いはありますか?

CNAMEとエイリアスの違いは、CNAMEが依然として適切で標準的な通常のDNS CNAMEであり、DNSクエリ応答 "hi、you need to real( "c匿名」) 名前 探しているサーバーの 'x' "であり、状況によっては、ターゲットホストのAレコードが含まれている場合と含まれていない場合があり、クライアントに2回目の検索を要求します。

一方、エイリアスはAmazonによって作成された巧妙なハックであり、プロトコルを破ることはありませんが、Aレコードのときにルート53がAレコードをリソース "X"から直接渡すことを許可しますリソース「Y」に対して要求されます。エイリアスは他のレコードタイプも参照できますが、それらが参照するレコードタイプは同じである必要があり、この説明の目的のために、Aレコードエイリアスについて説明しています。

そして、ここで重要なことは、エイリアスがAのようにターゲットへの参照ではなく、実際にCNAMEレコードを返すことです。

キャッチは、エイリアスでは、そのボックスにホスト名だけを入れることはできないということです。適切なAレコードを取得してゾーン内の別のエントリ、またはS3、ELB、Cloudfrontから取得できるように、Route 53に魔法のフックがあるドメイン内のホスト名である必要があります。最終的な効果は同じように見えますが、これはCNAMEレコードの動作とは非常に異なる実装です。

そこに他のものを入れて、The record set could not be saved because:- Alias Target contains an invalid value. それを試してみてください。 :)

もちろん、CNAMEレコードにはそのような制限はありません...ゾーンの最上部での使用は、設計によって制限されているだけです。

したがって、実際には、エイリアスとCNAMEレコードには、最初に考えたほどの重複はありません。状況によっては、使用できるのは1つだけであり、どちらかが機能する場合、違いはおそらく重要ではありません。

どちらかを使用できる場合のエイリアスの利点の1つは、前述したようにエイリアスが2つのDNSクエリを必要としないことです。常にルート53が適切なAレコードで直接応答します。少なくとも別のトップレベルドメインのホスト名を参照する場合、CNAMEは2つの連続したDNSを必要とする場合がありますこの場合、Aliasに理論上のパフォーマンス上の利点を提供します。

72

情報が間違っていると思います。 Amazon Route53は、サブドメインを持つAレコードを許可しません。ドメイン名に設定しようとすると、エラーが発生します:

The record set could not be saved because:
- The Value field contains invalid characters or is in an invalid format.

AレコードはIPアドレス専用です。

1
yegor256