Amazon EC2 Public DNS没用吗?


12

似乎在停止或终止实例时将更改公共DNS,例如ec2-xxxx.compute-1.amazonaws.com。

因此,这意味着它们与ec2公共IP地址具有相同的寿命,那么为什么要使用此公共DNS?它们不容易记住,而且毫无意义。


1
在某些情况下,您只能设置CNAME记录。公共DNS会起作用。
Shyam Sundar CS

@ CS3,您可以通过对实例使用A记录来实现。由于公共IP和DNS具有相同的寿命。
瑞安

可以将“ A”记录映射到IP地址。但是,如果同一台计算机使用相同的地址公开不同的服务,则CNAME可以帮助传达有意义的域名。(例如:ftp.domain.tld,www.domain.tld)。
Shyam Sundar CS

公用DNS和公用IP之间只有一个区别。请参阅下面的答案。
埃里克·哈蒙德

3年来我有同样的问题。我的结论是,公共DNS几乎没有用。如果他们分配了唯一但永久固定的公共DNS(例如GUID),则可以知道我已经设置的SSH和SFTP连接仍然可以工作,从而可以停止/启动实例。如果不购买弹性IP地址,似乎这简单的事情是不可能的。对于仅偶尔启动的实例而言,这是巨大的浪费。
格雷格·伍兹

Answers:


28

公用DNS名称(无论是否为弹性IP地址)与使用公用IP地址(是否为弹性IP)完全相同,但有以下重要区别:

如果从EC2外部查询公用DNS名称,它将解析为公用IP地址。如果从EC2内部查询公用DNS名称,它将解析为专用IP地址。

您可以在有或没有弹性IP地址的情况下使用此技巧。我建议使用弹性IP地址,因为即使在停止/启动或将服务移至另一个EC2实例后,它也可使公共DNS名称保持不变。因此,您始终可以使用弹性IP地址的公共DNS名称,它将解析为与弹性IP关联的当前实例的内部IP地址。

您可以使用CNAME DNS条目对此进行扩展,在其中您将首选主机名映射到Elastic IP的外部DNS名称。

这是我写的一篇有关使用此功能节省金钱并通过内部EC2通信加快网络性能的文章,而不必跟踪您所有其他实例上每个实例的当前内部IP地址:http : //alestic.com/2009 / 06 / ec2-elastic-ip-internal

除了这一区别之外,我同意您最好使用公用IP地址而不是公用DNS名称,因为:

  1. 通过不进行DNS查找来节省时间

  2. 您可以避免DNS协议中偶尔出现的任何安全风险。

所以我想,实际上,还有两个不同...


7

您将使用EC2公共地址来执行诸如SSH进入该服务器的操作,或用于互连EC2实例,或进行许多其他操作。

如果您需要一个一致的地址(例如,将用户指向),则可以将Elastic Load Balancer或Elastic IP设置在实例的前面。

此外,在EC2中,公共DNS解析为实例的内部IP,但在EC2外部,它解析为外部IP。有时这很有用,因为使用私有IP在EC2节点之间进行通信可以节省您的钱。


1
不回答问的问题。无论您说什么,也可以使用IP地址来完成。
Shyam Sundar CS

2
@瑜伽如果您不需要它,请不要使用它。确切的说,你要去这里吗?
ceejayoz 2012年

2
ceejayoz确实回答了第三段中的问题(EC2内部和外部的DNS解析)。我在回答中对此进行了扩展,仅关注这种差异。
埃里克·哈蒙德

坦白说,@ EricHammond是在瑜伽发布时编辑的。
ceejayoz 2012年

5

好吧,它们只会在您停止实例时更改。如果您的实例寿命很长,您可以将一个CNAME指向它,它将起作用。它们并不是完全没有用的,只是暂时的。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.