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

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

我需要closures这个实例,并增加它背后的计算能力…如果我这样做,需要多长时间,然后当我再次旋转机器,我的网站才会恢复在线? 将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 

停止和启动一个EBS启动实例与简单重启实例非常相似,只有一些例外,最显着的是:

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

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

  3. 如果该实例不在VPC中,则任何弹性IP地址都将与该实例分离。

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

我在本文中描述了一些计费和可用性方面的问题:

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

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

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

我在这篇文章中更详细地介绍了这种方法:

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

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

将EC2实例移至较大(或较小)的实例types
http://alestic.com/2011/02/ec2-change-type

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

所以,看起来你没有使用Elastic IP,就像我从你的信息中看到的那样。

我相信你必须在DNS中使用CNAME来指向这个实例。 如果你重新启动你的机器,那么这个ec2-54-1-1-1.us-west-1.compute.amazonaws.com DNS名称将改变,你的网站将停止工作。

就内部知识产权而言,除非你使用VPC,否则它也会改变。

所以,如果我是你,我会在重新启动本机时非常小心。

就Time而言,只要几分钟就可以完成。

另外,如果你有任何在数据库实例上运行的iptables,只允许这个内部IP连接到数据库,那么它也不能工作,因为你的内部IP将会改变。

所以,如果你想重新启动这个实例,请小心,并仔细想想。

您的内部IP /主机名将会改变,您的Elastic IP将会分离(除非您在VPC中)。

重新启动实例后重新连接弹性IP。 我经常这样做,以改变实例大小,你只是在看几分钟的停机时间。

validationApache和任何其他服务设置为启动( chkconfig如果你运行亚马逊linux ami)。

据我记得,停止系统改变它的types,并再次启动它不应该超过5-10分钟(它并不意味着它是一个EBS支持的系统)。 一旦系统启动后,要启动服务,请确保启动了所有服务,以便在重新启动时启动(例如我的Ubuntu 12.04上的木偶,我在/ etc / default / puppet中启用了它)。 记下IP(我做了很久,所以不记得清楚),最多IP可以脱离系统,但它仍然在你的帐户,所以去弹性IP部分,并再次与重新启动系统,你会没事的。

正如已经提到的,如果你有一个弹性IP,它将重新连接到实例,所以你的DNS设置不需要被触及。 不pipe怎样,你的私有IP都会改变。 这可能意味着你需要在MySQL中更新你的GRANT设置。 因为你不只是把GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%' …对吗? ;)