停止和启动 EC2 实例的工作原理
当您停止实例时,将在实例的操作系统级别注册更改,一些资源会丢失,而另一些资源会持续存在。启动实例时,将在实例级别注册更改。
下图显示了 Amazon EC2 实例停止后丢失的内容和仍然存在的情况。当实例停止时,它会丢失所有附加的实例存储卷和存储在这些卷上的数据、存储在实例 RAM 上的数据以及分配的公有 IPv4 地址(如果弹性 IP 地址未与实例关联)。实例保留分配的私有 IPv4 地址、与实例关联的弹性 IP 地址、任何 IPv6 地址以及任何附加的 Amazon EBS 卷和这些卷上的数据。

在停止实例时发生的情况
在操作系统级别注册的更改
-
API 请求会向访客发送按钮按下事件。
-
该按钮按下事件致使各种系统服务停止。来自管理程序的 ACPI 关闭按钮按下事件触发正常关闭。
-
启动 ACPI 关闭。
-
当正常关闭进程退出时,实例即会关闭。没有可配置的操作系统关闭时间。
-
如果实例操作系统未在几分钟内完全关闭,则会执行硬关闭。
-
实例将停止运行。
-
实例的状态将先更改为
stopping
,然后更改为stopped
。 -
[自动扩缩] 如果您的实例在自动扩缩组中,当实例状态处于除
running
以外的其他 Amazon EC2 状态,或者状态检查的状态变为impaired
,则 Amazon EC2 Auto Scaling 会认为实例运行不正常并予以替换。有关更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的自动扩缩组中实例的运行状况检查。 -
[Windows 实例] 当您停止和启动 Windows 实例时,启动代理将对该实例执行任务,例如更改所有附加的 Amazon EBS 卷的驱动器号。有关这些默认值以及如何更改它们的更多信息,请参阅 使用 EC2Launch v2 代理在 EC2 Windows 实例启动期间执行任务。
资源丢失
-
存储在 RAM 中的数据。
-
实例存储卷中存储的数据。
-
Amazon EC2 在启动或开始时自动分配给实例的公有 IPv4 地址。要保留永不更改的公有 IPv4 地址,您可以将弹性 IP 地址与您的实例关联。
持续存在的资源
-
任何附加的 Amazon EBS 卷。
-
存储在附加的 Amazon EBS 卷中的数据。
-
私有 IPv4 地址。
-
IPv6 地址。
-
与实例关联的弹性 IP 地址。请注意,当实例停止时,我们向您收取相关弹性 IP 地址的费用。
在启动实例时发生的情况
在操作系统级别注册的更改
-
大多数情况下,实例会迁移到新的底层主机(尽管在某些情况下,例如在专属主机配置中将实例分配到主机时,它仍会保留在当前主机上)。
-
如果该实例配置为接收公有 IPv4 地址,则 Amazon EC2 会为该实例分配一个新的公有 IPv4 地址,除非其具有辅助网络接口或与弹性 IP 地址关联的辅助私有 IPv4 地址。
测试应用程序对停止和启动的响应
您可以使用 Amazon Fault Injection Service 测试您的实例停止和启动时您的应用程序是如何响应的。有关更多信息,请参阅《Amazon Fault Injection Service 用户指南》。
与实例停止和启动相关的成本
以下费用与停止和启动实例有关。
正在停止 — 当某个实例的状态变为 shutting-down
或 terminated
,该实例就不再产生费用。您无需支付已停止实例的使用费或数据传输费。存储 Amazon EBS 存储卷会产生费用。
正在启动 — 每次您启动已停用的实例时,我们便会收取最低一分钟的使用费用。一分钟之后,我们仅按您使用实例的秒数收费。例如,如果您运行一个实例 20 秒后停止实例,我们将按一分钟收取费用。如果您运行一个实例 3 分 40 秒,我们将收取 3 分 40 秒的使用费用。