EC2:实例的公共 DNS 是否稳定?我可以依靠它不改变吗?

Ase*_*ore 42 domain-name-system amazon-ec2

我已经启动了我的第一个实例,并将其用作 Web 服务器。我看到它有一个公共 DNS(一个公共 URL),例如:

ec2-123-45-6-789.compute-1.amazonaws.com

我可以在浏览器中成功访问该服务器,通过 cURL 等访问它。

我想将此 Web 服务器用于我正在构建的应用程序中的后端服务,因此我将此 URL 放在我的应用程序配置中,并且效果很好。

但是当我手动停止并重新启动我的实例时,我看到公共 DNS 发生了变化!我读过当您明确停止并重新启动时会发生这种情况,但如果您只是“重新启动”则不会发生。

我不打算明确停止和重新启动该服务器,但我的问题是:这个公共 DNS 会因任何原因自行更改吗?例如,如果机器异常崩溃,或者其他什么。

换句话说,发布连接到此 URL 的应用程序是否安全?

Eri*_*ond 71

公共 DNS 名称始终与公共 IP 地址匹配。

实例的公共 IP 地址保持不变,直到实例终止或停止。重新启动不会更改公共 IP 地址。

如果 EC2 实例位于 VPC 中,那么它将在停止和启动期间保留相同的公共 IP 地址。

如果不在 VPC 中的 EC2 实例停止然后再次启动,它可能会收到不同的公共 IP 地址。

实例可能会失败。当您启动一个新实例来替换失败或终止的实例时,它可能会收到不同的公共 IP 地址。

因为实例可能会失败,并且因为您可能想要更改实例的大小(使用停止/启动),所以不建议“发送连接到 [公共 IP 地址] 的应用程序”(或 DNS 名称)。一旦您的实例停止/终止/失败,另一个用户可以获得分配给他们实例的 IP 地址,您的所有流量都将流向他们。

建议使用弹性IP地址将公共服务与您的实例关联。您可以保留弹性 IP 地址,并且可以随时间将其分配给您想要的任何实例,即使它在停止/启动后是同一个实例。

每个弹性 IP 地址都带有一个公共 DNS 名称,但您最好将自己的主机名映射到弹性 IP 地址,以便该名称对人类更有意义。

以下是弹性 IP 地址指南:

http://aws.amazon.com/articles/1346

这是我写的一篇文章,它讨论了重启和停止/启动实例之间的区别:

重启与停止/启动 Amazon EC2 实例
http://alestic.com/2011/09/ec2-reboot-stop-start

这是我写的一篇文章,它提供了一个您可能想要停止/启动实例的原因,即使您认为今天不会:

将 EC2 实例移动到更大的大小
http://alestic.com/2011/02/ec2-change-type