Ihre Frage ist durchaus berechtigt, aber Sie verwenden das Wort "Subdomain" nicht ganz genau.
Was Sie tatsächlich fragen, ist über die Tatsache, dass ein Route 53, ein A
Datensatz den Anschein eines Verweises entweder auf einen vollständig qualifizierten Hostnamen aus einer anderen Domäne oder einen Hostnamen oder Subdomäne aus seiner eigenen Domäne geben kann DNS, die einzige Möglichkeit, einen anderen Hostnamen zu referenzieren, ist eine CNAME
, die jedoch nicht am Scheitelpunkt einer Domäne ("example.com") bereitgestellt werden kann, die auf eine Subdomain verweist ("www.example.com").
Ein Alias, Sie sagen, scheint funktional gleichwertig zu sein, aber flexibler als ein CNAME
, also gibt es einen Unterschied?
Der Unterschied zwischen einem CNAME
und einem Alias ist, dass ein CNAME
ist noch ein richtiger, Standard, gewöhnliche DNS CNAME
, die eine DNS-Abfrage Antwort zurückzugibt „hallo, müssen Sie wissen, dass die echten (“ c anonical ") Name des gesuchten Servers ist 'x'" und kann, abhängig von den Umständen, auch den A
Datensatz für den Ziel-Host enthalten oder nicht, so dass der Client eine zweite Suche durchführen muss.
Aliase, auf der anderen Seite, sind ein cleverer Hack von Amazon erstellt, der das Protokoll nicht bricht aber Route 53 erlaubt, den Datensatz A
direkt von Ressource "X" zu verteilen, wenn der A
Datensatz für Ressource "Y" ist angefordert. Aliase können auch auf andere Datensatztypen verweisen, aber der Datensatztyp, auf den sie verweisen, muss derselbe sein, und für die Zwecke dieser Diskussion spreche ich von A
Datensatzaliasnamen.
Und das wichtige Take-away hier ist, dass ein Alias tatsächlich einen A
Datensatz zurückgibt - keine Referenz auf das Ziel, wie ein CNAME
tut.
Der Catch ist, dass mit einem Alias, Sie können nicht einfach jeden Hostnamen in dieser Box. Es muss ein Hostname innerhalb einer Domäne sein, in der Route 53 über die magischen Hooks verfügt, so dass er den passenden A
Datensatz abrufen kann - entweder einen anderen Eintrag in Ihrer Zone oder von S3, ELB oder Cloudfront. Dies ist eine sehr andere Implementierung als CNAME
Datensätze arbeiten, obwohl der Nettoeffekt scheint gleich zu sein.
Setzen Sie noch etwas hinein, und The record set could not be saved because:- Alias Target contains an invalid value.
Versuchen Sie es.:)
Natürlich, CNAME
Datensätze haben keine Begrenzung so ... sie sind nur durch das Design in ihrer Verwendung an der Spitze einer Zone begrenzt.
Also, in der Tat, Aliase und CNAME
Datensätze haben nicht so viel Überlappung, wie Sie ursprünglich gedacht haben. In einigen Situationen ist nur eine verwendbar, und in Fällen, in denen beide funktionieren, ist der Unterschied wahrscheinlich unbedeutend.
Ein Vorteil von Alias in dem Fall, in dem einer verwendet werden könnte, ist, dass ein Alias niemals zwei DNS-Abfragen benötigt, wie ich oben erwähnt habe. Es wird immer direkt von Route 53 mit dem entsprechenden Eintrag A
beantwortet, wobei eine CNAME
zumindest für den Fall, dass sie auf einen Hostnamen in einer anderen Top-Level-Domain verweist, zwei sequenzielle DNS-Lookups erfordert, was Alias einen theoretischen Leistungsvorteil bringt Fall.
wow - danke für so detaillierte Antwort. Mein Verständnis hat sich dadurch vielfach verbessert. – Scalable
Ausgezeichnet. Bitte denken Sie darüber nach, meine Antwort zu akzeptieren, es sei denn, es gibt noch andere Punkte, die Sie gerne klären würden. –
Nur um ein wenig Verwirrung hinzuzufügen, können Sie 'alias cnames' haben. Wenn Sie cdn1.website.com, cdn2.website.com und cdn3.website.com alle auf die gleiche 3rd-Party-Domain verweisen möchten, könnten Sie sie mit cdn.website.com verbinden, was ein cname für die Website wäre. bestcdn.com. Der Vorteil hier ist, dass es weniger als 2 cName Lookups (einige ms Verzögerung beim Laden von Inhalten), gibt es nur einen, und es gibt nur einen Datensatz zu aktualisieren, wenn die CDN ändert. Wenn Sie fragen werden, warum mehrere cdn-URLs zur gleichen plc verwenden? Dies ist ein Trick, der manchmal verwendet wird, um gleichzeitige Downloads von Assets zu erhöhen. – KHobbits