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


12

我有一个网站在基于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

Answers:


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地址,并使用CNAME将外部DNS名称更改为将您的DNS指向弹性IP地址。您可以在停止/启动之后立即执行此操作,也可以提前执行此操作,以确保在停止/启动之前一切正常。


这仍然准确吗?我今天早上只是在与AWS支持聊天,他们说停止实例时,弹性IP 不会取消关联。另外,我从未见过在停止和启动实例时内部IP地址发生变化。
bshacklett

@bsacklett这个答案有点过时了。我对其进行了更新,以说明只有非VPC实例会丢失弹性IP。今天,大多数实例确实是VPC。
埃里克·哈蒙德

4

因此,从您的信息中可以看出,您似乎没有使用Elastic IP。

我相信您必须在DNS中使用CNAME来指向该实例。如果重新启动计算机,则此ec2-54-1-1-1.us-west-1.compute.amazonaws.comDNS名称将更改,并且您的站点将停止工作。

就内部IP而言,除非您使用的不是VPC,否则它也会改变。

因此,如果我是您,则在重新启动该计算机时将非常小心。

就时间而言,最多不会花费几分钟。

另外,如果您在数据库实例上运行了任何iptables(仅允许该内部IP连接到数据库),那么它也将不起作用,因为您的内部IP会发生变化。

因此,如果要重新启动该实例,请仔细考虑。


2

您的内部IP /主机名将更改,并且弹性IP将分离(除非您位于VPC中)。

重新启动实例后,重新连接弹性IP。我会定期执行此操作以更改实例大小,而您仅需要等待几分钟的停机时间。

验证Apache,并将所有其他服务设置为启动(chkconfig如果您运行amazon linux ami)。


1

据我所记得,停止系统更改其类型并重新启动它所花费的时间不应超过5-10分钟(不用说它是EBS支持的系统)。为了在系统恢复后启动服务,请确保已启用所有服务以在重新启动时启动(例如,在我的ubuntu 12.04上的puppet中,我在/ etc / default / puppet中启用了它)。记下IP(我早就做过了,所以记不清楚了),至多您的IP可以从系统中分离出来,但是它仍然存在于您的帐户中,因此进入“弹性IP”部分,然后将其与重新启动系统,您会没事的。


1

如前所述,如果您有一个弹性IP,它将重新连接到实例,因此不需要更改您的DNS设置。但是,您的私有IP将以一种或另一种方式改变。这可能意味着您需要在mysql中更新GRANT设置。因为你不只是GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%'...对吗?;)

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.