停止和启动您的实例
您可以停止和启动将 Amazon EBS 卷作为其根设备的实例。该实例将保留其实例 ID,但是可以按照 修改已停止的实例 部分中所述进行修改。当您停止某个实例时,该实例将关闭。启动实例时,该实例通常会迁移到新的底层主机,并分配新的公有 IPv4 地址。
当您停止某个实例时,它不会被删除。当您决定不再需要实例时,可以终止该实例。有关更多信息,请参阅终止实例。如果您想休眠某个实例以保存实例内存(RAM)中的内容,请参阅 对您的按需型实例或竞价型实例进行休眠。有关实例生命周期操作之间的区别,请参阅 重启、停止、休眠和终止之间的区别。
AWS 可为您的实例计划事件,例如重启、停止/启动或停用。有关 AWS 托管的计划事件类型以及如何查看和接收有关计划事件的通知的信息,请参阅 实例的计划事件。
下图显示了 Amazon EC2 实例停止后丢失的内容和仍然存在的情况。当实例停止时,它会丢失所有附加的实例存储卷和存储在这些卷上的数据、存储在实例 RAM 上的数据以及分配的公有 IPv4 地址(如果弹性 IP 地址未与实例关联)。实例保留分配的私有 IPv4 地址、与实例关联的弹性 IP 地址、任何 IPv6 地址以及任何附加的 Amazon EBS 卷和这些卷上的数据。

与启动和停止实例相关的成本
以下费用与停止和启动实例有关。
正在停止 — 当某个实例的状态变为 shutting-down
或 terminated
,该实例就不再产生费用。您无需支付已停止实例的使用费或数据传输费。存储 Amazon EBS 存储卷会产生费用。
正在启动 — 每次您启动已停用的实例时,我们便会收取最低一分钟的使用费用。一分钟之后,我们仅按您使用实例的秒数收费。例如,如果您运行一个实例 20 秒后停止实例,我们将按一分钟收取费用。如果您运行一个实例 3 分 40 秒,我们将收取 3 分 40 秒的使用费用。
查找所有正在运行和已停止的实例
您可以在 Amazon EC2 全局视图
停止实例的先决条件
您可以停止由 Amazon EBS 支持的实例。由实例存储卷支持的实例不支持停止操作。要更好地了解这两种卷类型之间的区别,请参阅 存储。
要验证实例的根设备类型,您可以使用 Amazon EC2 控制台或 AWS CLI。
手动停止和启动实例
您可以使用控制台或命令行停止和启动由 Amazon EBS 支持的实例。
警告
当您停止某个实例时,任何附加实例存储卷上的数据都将被擦除。在停止实例之前,请确认您是否已将所需数据从实例存储卷复制到持久性存储,例如 Amazon EBS 或 Amazon S3。由实例存储卷支持的实例不支持停止操作。
自动停止和启动您的实例
您可以使用以下服务自动停止和启动实例:
- AWS 上的实例调度器
-
您可以在 AWS 上使用实例调度器以自动开启和停止 EC2 实例。有关更多信息,请参阅如何将实例调度器与 CloudFormation 一起使用来制定 EC2 实例的计划?
请注意,需要支付额外费用。 - AWS Lambda 和 Amazon EventBridge 规则
-
您可以使用 Lambda 和 EventBridge 规则按计划停止和开启您的实例。有关更多信息,请参阅如何使用 Lambda 定期停止和开启 Amazon EC2 实例?
- Amazon EC2 Auto Scaling
-
为确保您有正确数量的 Amazon EC2 实例来处理应用程序的负载,请创建自动扩缩组。Amazon EC2 Auto Scaling 确保您的应用程序始终具有处理流量需求的适当容量,并通过仅在需要时启动实例来节省成本。请注意,Amazon EC2 Auto Scaling 会终止而不是停止不需要的实例。要设置自动扩缩组,请参阅 Amazon EC2 Auto Scaling 入门。
在停止实例时发生的情况
当您停止实例时,将在实例的操作系统级别注册更改,一些系统资源会丢失,有些会持续存在。
停止实例时,将在操作系统级别注册以下内容:
-
API 请求会向访客发送按钮按下事件。
-
该按钮按下事件致使各种系统服务停止。来自管理程序的 ACPI 关闭按钮按下事件触发正常关闭。
-
启动 ACPI 关闭。
-
当正常关闭进程退出时,实例即会关闭。没有可配置的操作系统关闭时间。
-
如果实例操作系统未在几分钟内完全关闭,则会执行硬关闭。
-
实例将停止运行。
-
实例的状态将先更改为
stopping
,然后更改为stopped
。 -
[自动扩缩] 如果您的实例在自动扩缩组中,当实例状态是除
running
以外的其他 Amazon EC2 状态,或者状态检查的状态变为impaired
,则 Amazon EC2 Auto Scaling 会认为实例运行不正常并予以替换。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的 Auto Scaling 实例的运行状况检查。 -
当您停止和启动 Windows 实例时,启动代理将对该实例执行任务,例如更改所有附加的 Amazon EBS 卷的驱动器号。有关这些默认值以及如何更改它们的更多信息,请使用 EC2Launch v2 配置 Windows 实例。
当您停止实例时,以下内容丢失:
-
存储在 RAM 中的数据。
-
实例存储卷中存储的数据。
-
Amazon EC2 在启动或开始时自动分配给实例的公有 IPv4 地址。要保留永不更改的公有 IPv4 地址,您可以将弹性 IP 地址与您的实例关联。
当您停止实例时,以下内容持续存在:
-
任何附加的 Amazon EBS 卷。
-
存储在附加的 Amazon EBS 卷中的数据。
-
私有 IPv4 地址。
-
IPv6 地址。
-
与实例关联的弹性 IP 地址。请注意,当实例停止时,我们向您收取相关弹性 IP 地址的费用。
有关停止 Mac 实例时会发生什么的信息,请参阅停止并终止您的 Mac 实例。
在启动实例时发生的情况
启动实例时,将在实例级别注册更改。
启动 EC2 实例时,会出现以下情况:
修改已停止的实例
当实例停止时,您可以像对待所有其他卷一样修改根卷(例如,修复文件系统问题或更新软件)。
只有在实例停止时,您才能修改以下实例属性:
-
实例类型
-
用户数据
-
内核
-
RAM 磁盘
如果您在实例运行时尝试修改这些属性,Amazon EC2 会返回 IncorrectInstanceState
错误。
您可以使用 Amazon EC2 控制台或 AWS CLI 更改已停止实例的以下属性:
-
实例类型
-
用户数据
-
EBS 优化
不支持使用 Amazon EC2 控制台修改以下属性:
-
DeleteOnTermination
-
内核
-
RAM 磁盘
修改实例属性
您可以使用 Amazon EC2 控制台或命令行修改实例属性。
修改实例的根卷
您可以通过执行以下步骤来修改实例的根卷。
-
将该卷从已停止的实例中分离。
-
将卷附加到正在运行的实例。
-
修改卷。
-
将该卷从正在运行的实例中分离。
-
将卷重新附加到已停止的实例。
确保使用在实例块设备映射中指定为根设备的存储设备名称重新附加根卷。有关如何将卷分离和附加到实例的详细步骤,请参阅 从 Windows 实例分离 Amazon EBS 卷 和 将 Amazon EBS 卷挂载到实例。有关指定块设备映射的更多帮助,请参阅 块设备映射。
启用停止保护
要防止实例意外停止,可以为实例启用停止保护。停止保护还可以保护您的实例免遭意外终止。
Amazon EC2 ModifyInstanceAttribute
DisableApiStop
属性可控制是否可以停止实例。此属性可以使用 Amazon EC2 控制台、AWS CLI 或 Amazon EC2 API 进行设置。您可以在实例启动、运行或已停止时设置该属性值。
重要
设置 Amazon EC2 ModifyInstanceAttribute
DisableApiStop
属性并不能防止您在使用操作系统 shutdown 或 poweroff 命令启动实例关闭时意外停止实例。
停止保护注意事项
-
启用停止保护不会阻止 AWS 在有计划停止实例的事件时停止实例。
-
启用停止保护不会阻止 Amazon EC2 Auto Scaling 在实例运行状况不佳或在横向缩减事件期间终止实例。您可以通过使用实例横向缩减保护控制自动扩缩组在横向缩减时是否可以终止特定实例。
-
停止保护不仅可防止实例意外停止,还可以防止使用控制台、AWS CLI 或 API 时意外终止实例。但是,它不会自动设置
DisableApiTermination
属性。请注意,当DisableApiStop
属性设置为false
时,DisableApiTermination
属性设置确定是否可以使用控制台、AWS CLI 或 API 终止实例。有关更多信息,请参阅终止实例。 -
无法针对由实例存储提供支持的实例启用停止保护。
-
无法针对竞价型实例启用停止保护。
-
启用或禁用停止保护时,Amazon EC2 API 遵循最终一致性模型。这意味着运行设置停止保护属性的命令的结果可能不会立即对您运行的所有后续命令可见。有关更多信息,请参阅《Amazon EC2 API 参考》中的最终一致性。
在实例启动时启用停止保护
您可以使用以下方法之一在启动实例时为实例启用停止保护。
为正在运行或已停止的实例启用停止保护
您可以使用以下方法之一在实例正在运行或已停止时启用停止保护。
为正在运行或已停止的实例禁用停止保护
您可以使用以下方法之一为正在运行或已停止的实例禁用停止保护。
测试应用程序对停止和启动的响应
您可以使用 AWS Fault Injection Simulator 测试您的实例停止和启动时您的应用程序是如何响应的。有关更多信息,请参阅 AWS Fault Injection Simulator 用户指南。
排查实例的停止问题
如果您停止了由 Amazon EBS 支持的实例,而该实例“卡在”了 stopping
状态,则可以强制停止它。有关更多信息,请参阅排查实例的停止问题。