Amazon EC2 公共 DNS 没用?

Rya*_*yan 12 networking domain-name-system amazon-ec2 amazon-web-services

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

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

Eri*_*ond 28

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

如果您从 EC2 外部查询公共 DNS 名称,它会解析为公共 IP 地址。如果您从 EC2 内部查询公共 DNS 名称,它会解析为私有 IP 地址。

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

您可以通过使用 CNAME DNS 条目来扩展它,您可以在其中将首选主机名映射到弹性 IP 的外部 DNS 名称。

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

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

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

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

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


cee*_*yoz 7

您可以使用 EC2 公共地址来执行诸如通过 SSH 连接到该服务器、互连 EC2 实例或任何数量的其他事情。

如果您需要一致的地址(比如指向用户),您可以预置一个弹性负载均衡器或一个弹性 IP 以放置在您的实例前面。

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

  • @Yoga 如果您不需要它,请不要使用它。你到底要来这里做什么? (2认同)
  • ceejayoz 确实回答了第三段中的问题(EC2 内部和外部的 DNS 解析)。我在我的回答中对此进行了扩展,仅关注这种差异。 (2认同)

cor*_*ump 5

好吧,它们仅在您停止实例时才会更改。如果您的实例将长期存在,您只需将 CNAME 指向它,它就会起作用。它们并非完全没用,它们只是暂时的。