如果我关闭 Amazon EC2 实例然后重新启动它,一切都会好吗?

Eri*_*ric 12 domain-name-system linux amazon-ec2 amazon-web-services

我有一个在基于 Amazon EC2 Linux 的实例上运行的网站,并映射到常规域名 (x.com)。该站点与第二个 EC2 实例上的数据库通信。

我需要关闭这个实例并增加它背后的计算能力......如果我这样做,需要多长时间,然后当我再次启动机器时,我的网站会重新上线吗?是否会保留 IP 地址、DNS 信息等,以便域名继续工作,并且仍然能够与数据库通信?

仅供参考,这是我目前在 AWS EC2 信息面板中看到的 Web 服务器(确切的 IP 地址略有变化,但您明白了):

Public DNS: ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Private DNS: ip-10-1-1-1.us-west-1.compute.internal
Private IPs: 10.1.1.1
Run Code Online (Sandbox Code Playgroud)

Eri*_*ond 13

停止和启动 EBS 启动实例与简单地重启实例非常相似,但有一些例外,最值得注意的是:

  1. 该实例被分配了一个新的内部 IP 地址。

  2. 该实例被分配了一个新的公共 IP 地址。

  3. 如果实例不在 VPC 中,则任何弹性 IP 地址都将与实例解除关联。

  4. 临时存储(通常在 /mnt 下)上的所有数据都丢失了

我在本文中还描述了一些计费和可用性影响:

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

VPC 实例的行为略有不同,包括通过停止/启动保持弹性 IP 地址。

如果您将实例用作数据库服务器,并且希望使用内部 IP 地址(更便宜、更快)连接到它,并且您不想在停止/启动后重新配置数据库客户端,那么您可以分配实例的弹性 IP 地址并使用外部弹性 IP DNS 名称。在您将弹性 IP 地址重新关联到重新启动的实例后,这将解析为当前的内部 IP 地址,并且您的客户端将从停止的地方继续。

我在本文中详细介绍了这种方法:

使用弹性 IP 识别 Amazon EC2 上的内部实例
http://alestic.com/2009/06/ec2-elastic-ip-internal

正如您所预料的那样,停止/启动是一种更改为您的实例供电的硬件的简单方法。我在这篇文章中写了这个以及一些说明和警告:

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

对于您的特定情况,我建议为实例分配一个弹性 IP 地址,并将您的 DNS 更改为使用指向外部 DNS 名称的 CNAME 指向弹性 IP 地址。您可以在停止/启动后立即执行此操作,也可以提前确保在停止/启动之前一切正常。