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

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

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

我可以成功地在我的浏览器中访问这个服务器,通过cURL等命令。

我想在我正在构build的应用程序中使用此Web服务器作为后端服务,所以我将这个URL放在了我的应用程序的configuration中,并且效果很好。

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

我不打算明确停止和重新启动这台服务器,但我的问题是: 这个公共的DNS是否由于任何原因自行改变? 例如,如果机器exception崩溃,或不pipe。

换句话说,运送连接到此URL的应用程序安全吗?

公共DNS名称总是匹配公共IP地址。

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

如果一个EC2实例在VPC中,那么它将在一个停止和启动过程中保留相同的公共IP地址。

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

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

由于实例可能会失败,并且因为您可能需要更改实例的大小(使用stop / start),所以不build议“发送连接到[公共IP地址](或DNS名称)的应用程序”。 一旦您的实例停止/终止/失败,另一个用户可能会获得分配给其实例的IP地址,并且您的所有stream量都将转到其中。

build议使用弹性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