启动和停止 Amazon EC2 实例 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

启动和停止 Amazon EC2 实例

您可以停止和启动将 Amazon EBS 卷作为其根设备的实例。当您停止一个实例时,其会关闭。启动实例时,其通常会迁移到新的底层主机,并分配新的公有 IPv4 地址。

实例停止可以由用户启动(手动停止实例)或由 Amazon 启动(当 Amazon 检测到实例的底层主机发生不可修复的故障时,响应计划停止事件)。

对于由用户启动的停止,我们建议使用 Amazon EC2 控制台、CLI 或 API 而非在实例中运行操作系统停止命令。使用 Amazon EC2 时,如果实例未在几分钟内完全关闭,Amazon EC2 会执行强制关机。此外,Amazon CloudTrail 还会创建一条关于实例停止时间的 API 记录。

本主题介绍如何执行由用户启动的停止 。有关 Amazon 执行的停止的信息,请参阅 管理计划停止或停用的 Amazon EC2 实例

当您停止某个实例时,它不会被删除。当您决定不再需要实例时,可以终止该实例。有关更多信息,请参阅 终止 Amazon EC2 实例。如果您想休眠某个实例以保存实例内存(RAM)中的内容,请参阅 将您的 Amazon EC2 实例休眠。有关实例生命周期操作之间的区别,请参阅 实例状态之间的区别

手动停止和启动实例

您可以停止和启动 Amazon EBS 支持的实例(具有 EBS 根设备的实例)。您无法使用实例存储根设备停止和启动实例。

警告

当您停止某个实例时,任何实例存储卷上的数据都将被擦除。在停止实例之前,请确认您是否已将所需数据从实例存储卷复制到持久性存储,例如 Amazon EBS 或 Amazon S3。

Console
停止和启动由 Amazon EBS 支持的实例
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航窗格中,选择实例,然后选择实例。

  3. 存储选项卡上,确认根设备类型EBS。否则,您将无法停止该实例。

  4. 依次选择实例状态停止实例。如果此选项处于禁用状态,则表示实例已停止,或者其根设备是实例存储卷。

  5. 当系统提示您确认时,选择 Stop。停止实例可能需要几分钟时间。

  6. 要启动已停止的实例,请选择该实例,然后依次选择实例状态启动实例

  7. 实例进入 running 状态可能需要几分钟时间。

  8. 如果您停止了由 Amazon EBS 支持的实例,而该实例“卡在”了 stopping 状态,则可以强制停止它。有关更多信息,请参阅 排查 Amazon EC2 实例的停止问题

Command line
先决条件

确认实例的根设备为 EBS 卷。例如,运行 describe-instances Amazon CLI 命令并确认 RootDeviceTypeebs 而不是 instance-store

停止和启动由 Amazon EBS 支持的实例

使用以下命令之一:

[Linux 实例] 从实例中使用操作系统 halt 命令不会启动关闭。如果您使用 halt 命令,则实例不会终止;相反,它会将 CPU 放入 HLT,从而暂停 CPU 操作。实例仍在运行中。

自动停止和启动您的实例

您可以使用以下服务自动停止和启动实例:

Amazon 上的实例调度器

您可以在 Amazon 上使用实例调度器以自动开启和停止 EC2 实例。有关更多信息,请参阅如何将实例调度器与 CloudFormation 一起使用来制定 EC2 实例的计划? 请注意,需要支付额外费用

Amazon 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 入门

查找所有正在运行和已停止的实例

您可以在 Amazon EC2 全局视图中的单个页面上找到所有 Amazon Web Services 区域 中正在运行和已停止的所有实例。此功能对于清点资源和查找忘记的实例特别有用。有关如何使用全局视图的信息,请参阅 使用 Amazon EC2 全局视图查看跨区域的资源

查找初始和最近的启动时间

当您描述一个实例时,该实例的启动时间是其最近的启动时间。在您停止并启动一个实例后,启动时间将反映新实例的启动时间。要查找一个实例的初始启动时间(即使在停止和启动该实例之后),请查看主网络接口连接到该实例的时间。

要使用控制台查找最近的启动时间,请选择该实例,然后在详细信息选项卡上的实例详细信息下查看。要查找主网络接口的连接时间,请在联网选项卡上的网络接口下查看。

使用 Amazon CLI,运行以下 describe-instances 命令以显示指定实例的初始启动时间和最近的启动时间。

aws ec2 describe-instances --instance-id i-09453945dcf1529e9 --query 'Reservations[*].Instances[*].{InstanceID:InstanceId,InitialLaunch:NetworkInterfaces[0].Attachment.AttachTime,LastLaunch:LaunchTime}'

下面是示例输出。

{ "InstanceID": "i-09453945dcf1529e9", "InitialLaunch": "2024-03-31T00:47:08+00:00", "LastLaunch": "2024-06-30T00:24:06+00:00" }