Что указывается в CNAME-записи в AWS?

Ответ

В AWS, как и в стандартном DNS, CNAME-запись (Canonical Name) указывает на другое доменное имя, а не напрямую на IP-адрес. Она создаёт псевдоним (алиас) одного доменного имени для другого.

Типичные сценарии использования в AWS:

  1. Перенаправление поддомена на основной домен:
    • www.example.comexample.com
  2. Направление трафика на AWS-сервисы:
    • Поддомен assets.example.com может указывать на CloudFront-дистрибутив (d111111abcdef8.cloudfront.net).
    • Поддомен api.example.com может указывать на DNS-имя Application Load Balancer (ALB).

Пример CNAME-записи в Route 53 (консольный формат):

Имя: www.example.com
Тип: CNAME
Значение: example.com
TTL: 300

Критически важные ограничения и нюансы в AWS:

  • CNAME для корневой зоны (apex domain): Вы не можете создать стандартную CNAME-запись для корневого домена (example.com). Это ограничение DNS-стандарта.
  • Alias-записи Route 53: Для решения проблемы с корневым доменом AWS Route 53 предоставляет специальный тип — Alias-запись (A или AAAA запись с включённой опцией Alias). Alias-запись может указывать напрямую на AWS-ресурсы (S3 bucket, CloudFront, ALB, API Gateway) и является бесплатной для запросов в пределах зоны. Это предпочтительный способ для связывания доменов с AWS-сервисами.
    • Пример Alias-записи для корневого домена:
      Имя: example.com
      Тип: A (Alias включён)
      Значение: d1234abcd.cloudfront.net (CloudFront дистрибутив)

Вывод для DevOps: При проектировании DNS-структуры в AWS для корневых доменов и критичных поддоменов используйте Alias-записи Route 53 для лучшей производительности, надёжности и интеграции с AWS-сервисами. CNAME подходит для внутренних или менее критичных поддоменов.

Ответ 18+ 🔞

А, ну это про CNAME в AWS! Ёпта, тема простая, но нюансов — овердохуища. Сейчас разжуём.

Представь, что CNAME — это такая табличка "Иди нахуй туда". Ты пишешь одно доменное имя, а по факту все запросы летят к другому. Не к IP-адресу, а именно к другому имени. Классический пример: www.example.com — это просто пизда рулю, а на самом деле все идут на example.com.

Где это обычно вставляют:

  1. Поддомены всякие. Хочешь, чтобы blog.example.com вёл на твой хостинг для блогов? CNAME его, и дело в шляпе.
  2. На AWS-сервисы. Вот это самое мясо! Хочешь assets.example.com отдать на раздачу через CloudFront? CNAME на его адрес d111111abcdef8.cloudfront.net — и волнение ебать, всё работает. То же самое с балансировщиками (ALB) для api.example.com.

Выглядит в Route 53 это примерно так, чувак:

Имя: www.example.com
Тип: CNAME
Значение: example.com
TTL: 300

Всё, элементарно. Но сейчас будет главный подвох, из-за которого народ ебет котелок.

Внимание, хуй с горы!

  • CNAME для корня зоны НЕЛЬЗЯ. Ты не можешь воткнуть обычную CNAME-запись для голого example.com. Это запрещено самим DNS-стандартом, ядрёна вошь. Если попробуешь — получишь ошибку и будешь охуевать.

  • Спасает Alias-запись Route 53. AWS, видя наш ступор, придумал свою фишку. Это не CNAME, а специальная Alias-запись (типа A или AAAA, но с волшебной галочкой). Она может указывать прямо на AWS-ресурс (S3, CloudFront, ALB) и работает даже для корня домена example.com. И да, запросы по ней — бесплатные, что тоже приятно.

    • Вот как это выглядит для корня:
      Имя: example.com
      Тип: A (Alias включён)
      Значение: d1234abcd.cloudfront.net (CloudFront дистрибутив)

Итог для деплоя, чувак: Не выёбывайся. Для главного домена (example.com) и всех ответственных поддоменов — сразу лепи Alias Route 53. Надёжнее, быстрее и с AWS дружит лучше. А обычный CNAME оставь для внутренней движухи, типа test-dev-backup.example.com, про которую все забудут через неделю.