区别重新启动和停止启动亚马逊EC2实例

我注意到,在Amazon EC2实例上调用ec2.rebootInstances要比停止并重新启动它快得多( ec2.stopInstances ec2.startInstances )。

它也保存了实例的IP地址(我没有弹性的IP)ec2.rebootInstance和停止和启动实例有什么不同?

当你停止一个EBS启动实例时,你放弃了运行服务器的物理硬件(或其一部分),EC2可以自由启动其他人的实例。

您的EBS启动卷(和其他连接的EBS卷)仍然保留,但它们并不真正绑定到物理或虚拟服务器。 它们只与一个不在任何地方运行的实例ID相关联。

当您再次启动实例时,EC2会select一些硬件来运行它,绑定EBS卷并再次从根卷启动。

停止/开始时发生变化的事物包括:

  1. 新的内部IP地址(虽然可以随机地相同)。

  2. 新的外部IP地址(虽然可以随机地相同)。

  3. 如果弹性IP地址在停止之前与实例相关联,那么您需要在启动后重新关联它。

  4. 这个实例的前短暂存储中的任何内容都被擦除了,并且您被赋予新的临时存储。

  5. 您可以保留一个实例,只要您喜欢,并且不会因为运行时间而收费(尽pipe您的EBS卷存储的收费率要低得多)。 看下一点。

  6. 当您重新启动时,会为实例启动新的计费小时。 例如,如果您启动一个新实例,然后在前60分钟内停止/启动3次,则将收取4个小时,而不是1个。

  7. 当您想要重新启动实例时,EC2不太可能拥有正确实例types的可用插槽来运行实例。 我已经发生了这种情况,并暂时切换到一个不同的,可用的实例types,让它再次运行。

重新引导时,在操作系统级别进行简单的重新引导,并且实例保持运行在相同的硬件上,具有相同的私有和公共IP地址,保持相同的弹性IP地址(如果关联),并且保持相同的临时存储擦拭。 重新启动时不会开始新的计费小时,并且您不会放弃实例硬件。

当一个实例停止时,在再次启动之前可以做一些很酷的事情。 这里是我写的关于更改实例停止时的实例types的文章:

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

下面是一篇关于如何在停止时更改实例的EBS启动磁盘大小的文章:

在正在运行的EBS引导EC2实例上调整根磁盘的大小
http://alestic.com/2010/02/ec2-resize-running-ebs-root

下面是一篇关于如何在运行时无法连接到实例的根磁盘(停止时)的文章:

修复EC2实例的根EBS卷上的文件
http://alestic.com/2011/02/ec2-fix-ebs-root

由于停止/启动周期很有可能将您的实例移动到新的硬件,如果您怀疑当前的平台可能会变坏并导致问题,则可以轻松地更换实例硬件。 这是我写的一篇文章:

在EC2上更换实例硬件的一种更简单的方法
http://alestic.com/2011/02/ec2-move-hardware