停止和启动您的实例
您可以停止和启动将 Amazon EBS 卷作为其根设备的实例。该实例将保留其实例 ID,但是可以按照概览部分中所述进行更改。
当您终止一个实例时,我们会将其关闭。我们不会对已停止的实例收费,也不会收取数据传输费,但我们会对所有 Amazon EBS 卷的存储收费。每次您启动已停用的实例时,我们便会收取最低一分钟的使用费用。一分钟之后,我们仅按您使用实例的秒数收费。例如,如果您运行一个实例 20 秒后停止实例,我们将按一整分钟收取费用。如果您运行一个实例 3 分 40 秒,我们将收取 3 分 40 秒的使用费用。
当实例停止时,您可以像对待所有其他卷一样修改根卷 (例如,修复文件系统问题或更新软件)。您只需从停止的实例分离卷,将其附加到运行中的实例并进行修改,然后将其分离,再次附加到该已停止实例即可。请确保您已使用设备名称被指定为实例块储存设备映射中的根设备对其进行了重新附加。
当您决定不再需要实例时,可以终止该实例。实例的状态一旦变为 shutting-down
或 terminated
,我们就会停止收取与该实例相关的费用。有关更多信息,请参阅终止实例。如果您愿意休眠实例,请参阅休眠 Linux 按需型实例。有关更多信息,请参阅重启、停止、休眠和终止之间的区别。
概览
您只能停止由 Amazon EBS 支持的实例。要验证您的实例的根设备类型,请描述实例并检查其根卷的设备类型是 ebs
(由 Amazon EBS 支持的实例)还是 instance store
(由实例存储支持的实例)。有关更多信息,请参阅确定 AMI 的根设备类型。
只有在实例停止时,您才能修改以下实例属性:
-
实例类型
-
用户数据
-
内核
-
RAM 磁盘
如果您在实例运行时尝试修改这些属性,Amazon EC2 会返回 IncorrectInstanceState
错误。
在停止实例时发生的情况
当您使用 StopInstances API 停止 EC2 实例时(例如,通过选择 Amazon EC2 控制台中的 Instance state(实例状态)、Stop instance(停止实例),或使用 stop-instances Amazon CLI 命令),则在操作系统级别注册以下内容:
-
API 请求会向访客发送按钮按下事件。
-
该按钮按下事件致使各种系统服务停止。来自管理程序的 ACPI 关闭按钮按下事件触发正常关闭。
-
启动 ACPI 关闭。
-
当正常关闭进程退出时,实例即会关闭。没有可配置的操作系统关闭时间。
-
如果实例操作系统未在几分钟内完全关闭,则会执行硬关闭。
-
实例将停止运行。
-
实例的状态将先更改为
stopping
,然后更改为stopped
。 -
(Auto Scaling 组)如果您的实例处于 Auto Scaling 组中,则 Amazon EC2 Auto Scaling 服务会将已停止的实例标记为运行状况不佳,可能会终止它并启动替换实例。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的 Auto Scaling 实例的运行状况检查。
-
(Windows)当您停止和启动 Windows 实例时,EC2Config 服务将对该实例执行任务,例如更改所有附加的 Amazon EBS 卷的驱动器号。有关这些默认值以及如何更改它们的更多信息,请参阅 Amazon EC2 用户指南(适用于 Windows 实例)中的使用 EC2Config 服务配置 Windows 实例。
-
(ClassicLink)当您停止 ClassicLink 实例时,它会从链接的 VPC 取消链接。您必须在开启之后将实例再次链接到 VPC。有关 ClassicLink 的更多信息,请参阅 ClassicLink。
默认情况下,当您从 Amazon EBS 支持的实例启动关闭(例如,使用 shutdown 或 poweroff 命令)时,该实例会停止。您可以更改此行为,以便使其终止。有关更多信息,请参阅更改实例启动的关闭操作。
从实例中使用 halt 命令不会启动关闭。如果使用,实例并不会终止,而是将 CPU 置于 HLT
状态,实例将保持运行。
当您停止实例时,以下内容丢失:
-
存储在 RAM 中的数据。
-
实例存储卷中存储的数据。
-
Amazon EC2 在启动或开始时自动分配给实例的公有 IPv4 地址。(要保留永不更改的公有 IPv4 地址,您可以将弹性 IP 地址与您的实例关联。)
-
(EC2-Classic)使用 EC2-Classic 时,弹性 IP 地址会与实例分离。有关更多信息,请参阅EC2-Classic。
当您停止实例时,以下内容持续存在:
-
存储在 Amazon EBS 卷中的数据。EBS 卷保持与实例的连接。
-
私有 IPv4 地址。
-
IPv6 地址。
-
与实例关联的弹性 IP 地址。请注意,当实例停止时,我们开始向您收取相关弹性 IP 地址的费用。
有关更多信息,请参阅重启、停止、休眠和终止之间的区别。
在启动实例时发生的情况
当您使用 StartInstances API 启动 EC2 实例时(例如,通过选择 Amazon EC2 控制台中的 Instance state(实例状态)、Start instance(启动实例),或使用 start-instances Amazon CLI 命令),将发生以下情况:
-
大多数情况下,实例会迁移到新的底层主机(尽管在某些情况下,它仍会保留在当前主机上)。
-
如果将实例配置为接收公有 IPv4 地址,Amazon EC2 会为实例分配一个新的公有 IPv4 地址。(要保留永不更改的公有 IPv4 地址,您可以将弹性 IP 地址与您的实例关联。)
有关更多信息,请参阅重启、停止、休眠和终止之间的区别。
停止和启动您的实例
您可以使用控制台或命令行停止和启动由 Amazon EBS 支持的实例。
运行受控的故障注入实验
您可以使用 Amazon Fault Injection Simulator 测试您的实例停止和启动时您的应用程序是如何响应的。有关更多信息,请参阅 Amazon Fault Injection Simulator 用户指南。
按计划停止和开启您的实例
您可以制定停止和开启 EC2 实例的计划。以下是配置此过程的两个选项。
在 Amazon 上使用实例调度器
您可以在 Amazon 上使用实例调度器以自动开启和停止 EC2 实例。有关更多信息,请参阅如何将实例调度器与 CloudFormation 一起使用来制定 EC2 实例的计划?
使用 Amazon Lambda 和 Amazon EventBridge 规则
您可以使用 Lambda 和 EventBridge 规则按计划停止和开启您的实例。有关更多信息,请参阅如何使用 Lambda 定期停止和开启 Amazon EC2 实例?
启用停止保护
默认情况下,您可以使用 Amazon EC2 控制台、命令行界面或 API 停止您的实例。要防止实例意外停止,可以为实例启用停止保护。停止保护还可以保护您的实例免遭意外终止。
DisableApiStop
属性可控制是否可以使用 Amazon EC2 控制台、Amazon CLI 或 API 停止实例。您可以在实例启动、运行或已停止时设置该属性值。
DisableApiStop
属性不会阻止您通过从实例启动关闭来停止实例(使用操作系统的系统关闭命令)。
注意事项
-
启用停止保护不会阻止 Amazon 在实例具有停止实例的计划事件时停止实例。
-
停止保护不仅可防止实例意外停止,还可以防止使用控制台、Amazon CLI 或 API 时意外终止实例。但是,它不会自动更改
DisableApiTermination
属性。请注意,当DisableApiStop
属性设置为 False,DisableApiTermination
属性用于确定是否可以使用控制台、Amazon CLI 或 API 终止实例。 -
启用停止保护不会阻止 Amazon EC2 Auto Scaling 在实例运行状况不佳或在横向缩减事件期间终止实例。
-
无法针对由实例存储提供支持的实例启用停止保护。
-
无法针对竞价型实例启用停止保护。
-
启用或禁用停止保护时,Amazon EC2 API 遵循最终一致性模型。有关更多信息,请参阅《Amazon EC2 API 参考》中的最终一致性。
在实例启动时启用停止保护
您可以使用以下方法之一在启动实例时为实例启用停止保护。
为正在运行或已停止的实例启用停止保护
您可以使用以下方法之一在实例正在运行或已停止时启用停止保护。
为正在运行或已停止的实例禁用停止保护
您可以使用以下方法之一为正在运行或已停止的实例禁用停止保护。
修改已停止的实例
您可以使用 Amazon Web Services Management Console或命令行界面来更改已停止实例的实例类型、用户数据或 EBS 优化属性。您无法使用 Amazon Web Services Management Console修改 DeleteOnTermination
、内核或 RAM 磁盘属性。
修改实例属性
-
要更改实例类型,请参阅更改实例类型。
-
要更改您的实例的用户数据,请参阅处理实例用户数据。
-
要为您的实例启用或禁用 EBS 优化,请参阅修改 EBS 优化。
-
要更改您的实例的根卷的
DeleteOnTermination
属性,请参阅更新正在运行的实例的块储存设备映射。您无需停止实例即可更改此属性。
使用命令行修改实例属性
您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2。
-
modify-instance-attribute (Amazon CLI)
-
Edit-EC2InstanceAttribute (Amazon Tools for Windows PowerShell)
查找所有正在运行和已停止的实例
您可以在 Amazon EC2 全局视图中的单个页面上找到所有 Amazon Web Services 区域 中正在运行和已停止的实例。这对于清点资源和查找忘记的实例特别有用。有关如何使用全局视图的信息,请参阅 使用 Amazon EC2 全局视图列出和筛选跨区域的资源。
排查实例的停止问题
如果您停止了由 Amazon EBS 支持的实例,而该实例“卡在”了 stopping
状态,则可以强制停止它。有关更多信息,请参阅排查实例的停止问题。