Amazon EC2 Public DNS бесполезен?

12

Кажется, что общедоступный DNS, например, ec2-xxxx.compute-1.amazonaws.com будет изменен, когда вы остановите или прекратите работу экземпляра.

Таким образом, это означает, что срок их службы равен общему IP-адресу ec2 , так почему я должен использовать этот общедоступный DNS? Их не легко запомнить, а довольно бессмысленно ..

Райан
источник
1
В некоторых случаях, когда вы можете настроить только записи CNAME., Общедоступный DNS вступает в игру.
Shyam Sundar CS
@ CS3, вы можете сделать это, используя запись A для экземпляра. Поскольку и открытый IP, и DNS имеют одинаковую продолжительность жизни.
Райан
Записи «А» могут быть сопоставлены с IP-адресами. Но если один и тот же компьютер предоставляет разные сервисы с одним и тем же адресом, CNAME могут помочь в передаче значимых доменных имен. (Например: ftp.domain.tld, www.domain.tld).
Shyam Sundar CS
Существует только одно различие между публичным DNS и публичным IP. Смотрите мой ответ ниже.
Эрик Хаммонд
У меня точно такой же вопрос 3 года спустя. Мой вывод ... публичный DNS довольно бесполезен. Если бы им был назначен уникальный, но постоянно фиксированный общедоступный DNS (например, guid), я мог бы остановить / запустить свой экземпляр, зная, что мои соединения SSH и SFTP, которые я уже настроил, все равно будут работать. Кажется, что эта простая вещь невозможна без покупки эластичного IP-адреса ... что является огромной тратой для экземпляра, который запускается только изредка.
Грег Вудс

Ответы:

28

Публичное DNS-имя (неважно, гибкий IP-адрес или нет) в точности совпадает с использованием общедоступного IP-адреса (эластичный или нет) с одним важным отличием

Если вы запрашиваете общедоступное DNS-имя извне EC2, оно преобразуется в общедоступный IP-адрес. Если вы запрашиваете общедоступное DNS-имя из EC2, оно преобразуется в частный IP-адрес.

Вы можете использовать этот трюк с или без эластичных IP-адресов. Я рекомендую использовать Elastic IP-адреса, так как это делает публичное DNS-имя неизменным даже после остановки / запуска или перемещения вашего сервиса в другой экземпляр EC2. Из-за этого вы всегда можете использовать общедоступное DNS-имя Elastic IP-адреса, и оно будет преобразовано во внутренний IP-адрес текущего экземпляра, с которым связан Elastic IP-адрес.

Вы можете расширить это, используя запись DNS CNAME, где вы сопоставляете предпочитаемое имя хоста с внешним DNS-именем Elastic IP.

Вот статья, которую я написал об использовании этой функции, чтобы сэкономить деньги и ускорить работу сети с внутренней связью EC2 без необходимости отслеживать текущий внутренний IP-адрес для каждого экземпляра во всех других ваших экземплярах: http://alestic.com/2009 / 06 / EC2-упруго-ф-внутренний

Кроме этого единственного различия, я согласен, что вы также можете использовать публичный IP-адрес вместо публичного DNS-имени, потому что:

  1. Вы экономите время, не просматривая DNS

  2. Вы избегаете любых угроз безопасности, которые иногда возникают в протоколе DNS.

так что, полагаю, на самом деле, есть еще два отличия ...

Эрик Хаммонд
источник
7

Вы бы использовали публичный адрес EC2 для таких вещей, как SSHing на этом сервере, или для соединения экземпляров EC2, или для любого другого числа вещей.

Если вам нужен постоянный адрес (скажем, чтобы указать на пользователей), вы должны предоставить Elastic Load Balancer или Elastic IP, чтобы сидеть перед вашими экземплярами.

Кроме того, в EC2 общедоступный DNS разрешается во внутренний IP-адрес экземпляра, но вне EC2 он разрешается во внешний IP-адрес. Это может быть полезно время от времени, так как общение между узлами EC2 с использованием частного IP экономит ваши деньги.

ceejayoz
источник
1
Не отвечает на заданный вопрос. Что бы вы ни говорили, это можно сделать и с помощью IP-адресов.
Shyam Sundar CS
2
@Yoga Если вам это не нужно, не используйте его. Что именно вы собираетесь сюда?
ceejayoz
2
ceejayoz действительно ответил на вопрос в третьем абзаце (разрешение DNS внутри и вне EC2). Я расширил это в своем ответе, который фокусируется только на этой разнице.
Эрик Хаммонд
@EricHammond Справедливости ради, я редактировал это, когда Йога отправила.
ceejayoz
5

Ну, они меняются только тогда, когда вы останавливаете экземпляр. Если ваш экземпляр будет долгоживущим, вы можете просто указать ему CNAME, и он будет работать. Они не совсем бесполезны, они просто преходящи.

CoreDump
источник