Ваш вопрос весьма важен, но вы используете слово «субдомен» не совсем точным образом.
Что вы на самом деле спрашиваете, это тот факт, что запись маршрута 53, запись A
может дать вид ссылки на полностью квалифицированное имя хоста из другого домена или имя хоста или поддомен из собственного домена, в то время как в правильном DNS, единственный способ ссылаться на другое имя хоста - с CNAME
, но они не могут быть предоставлены на вершине домена (example.com), указывающего на субдомен («www.example.com»).
Псевдоним, вы говорите, представляется функционально эквивалентным, но более гибким, чем CNAME
, так есть разница?
Разница между CNAME
и псевдонимом является то, что CNAME
еще собственно, стандартным, обычным DNS CNAME
, который возвращает ответ на запрос DNS «привет, вы должны знать, что реального (» с anonical ") имя сервера, который вы ищете, является« x », и, в зависимости от обстоятельств, может также содержать запись A
для целевого хоста или не может, требуя от клиента перехода на второй поиск.
Псевдонимы, с другой стороны, являются умным взломом, созданным Amazon, который не нарушает протокол, но позволяет Route 53 выдавать запись A
непосредственно из ресурса «X», когда запись A
для ресурса «Y» просил. Псевдонимы могут также ссылаться на другие типы записей, но тип записи, который они ссылаются, должен быть одинаковым, и для целей этой дискуссии я говорю о псевдонимах записи A
.
И, важный отрыв здесь состоит в том, что псевдоним фактически возвращает запись A
- не ссылку на цель, как это делает CNAME
.
Уловка заключается в том, что с псевдонимом вы не можете поместить в это поле только любое имя хоста. Это должно быть имя хоста в домене, где Route 53 имеет магические крючки, чтобы он мог получить соответствующую запись A
для обслуживания - либо другую запись в вашей зоне, либо S3, ELB или Cloudfront. Это совсем другая реализация, чем то, как работают записи CNAME
, хотя чистый эффект оказывается одинаковым.
Поместите что-нибудь еще там, и The record set could not be saved because:- Alias Target contains an invalid value.
Попробуйте.:)
Конечно, у CNAME
записей нет таких ограничений ... они просто ограничены дизайном при их использовании в верхней части зоны.
Итак, у псевдонимов и CNAME
записей не так много перекрытий, как вы, возможно, изначально думали. В некоторых ситуациях можно использовать только один, а также случаи, когда любой из них будет работать, разница, вероятно, несущественна.
Одним из преимуществ Alias в том случае, когда можно использовать один из них, является то, что псевдоним никогда не требует двух DNS-запросов, как я упоминал выше. Он всегда отвечает непосредственно по Маршруту 53 с соответствующей записью A
, где CNAME
, по крайней мере, в случае, когда он ссылается на имя хоста в другом домене верхнего уровня, может потребоваться два последовательных поиска DNS, что дает Alias теоретическое преимущество в производительности в этом дело.
Вау - спасибо за такой подробный ответ. Мое понимание улучшилось во многом с этим. – Scalable
Отлично. Пожалуйста, подумайте о принятии моего ответа, если нет других моментов, которые вы хотели бы мне разъяснить. –
Чтобы добавить немного путаницы, вы можете иметь псевдоним cnames. Если вы хотите, чтобы cdn1.website.com, cdn2.website.com и cdn3.website.com указывали на один и тот же домен третьей стороны, вы могли бы с псевдонимом cname их использовать cdn.website.com, который был бы cname на веб-сайте. bestcdn.com. Преимущество здесь состоит в том, что вместо 2 cname-запросов (задержка нескольких сообщений в загрузке контента) существует только одна, и есть только одна запись для обновления, если cdn изменяется. Если вы спросите о том, зачем использовать несколько URL-адресов cdn для одного и того же plce? Это трюк, иногда используемый для увеличения одновременной загрузки ресурсов. – KHobbits