Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

终止您的实例

当您不再需要实例时,可将其删除。这称为终止 实例。实例的状态一旦变为 shutting-downterminated,就不再产生与该实例相关的费用。

在您终止之后,您将无法连接到或重新启动实例。但是您可以使用同一 AMI 启动其他实例。如果您愿意停止并重新启动您的实例,或者将其休眠,请参阅停止和启动您的实例使您的实例休眠。有关更多信息,请参阅重启、停止、休眠与终止之间的区别

实例终止

在您终止实例之后,短时间内仍可在控制台中看见该实例,然后该条目将自动被删除。您无法自行删除已终止的实例条目。在实例终止后,标签和卷等资源会逐步与实例取消关联,因此过一小段时间后,它们可能在终止的实例上不再可见。

当实例终止时,与该实例关联的所有实例存储卷上的数据都会被删除。

默认情况下,当实例终止时,Amazon EBS 根设备卷将自动删除。但是,默认情况下,即使在实例终止后,您在启动时附加的所有额外 EBS 卷或您附加到现有实例的所有 EBS 卷也会保留。这一操作是由卷的 DeleteOnTermination 属性控制的,您可以对其进行修改。有关更多信息,请参阅在实例终止时保留 Amazon EBS 卷

您可以使用 AWS 管理控制台、CLI 和 API 防止实例被别人意外终止。此功能对 Amazon EC2 实例存储支持的实例和 Amazon EBS 支持的实例都适用。每个实例的 DisableApiTermination 属性默认值均为 false(可以通过 Amazon EC2 终止实例)。您可以在实例运行或停止时修改此实例属性 (如果是由 Amazon EBS 支持的实例)。有关更多信息,请参阅 为实例启用终止保护

当使用操作系统中的系统关闭命令从实例启动关闭时,您可以控制是否应该关闭或终止实例。有关更多信息,请参阅更改实例的启动关闭操作

如果您在实例终止时运行脚本,您的实例可能会出现异常终止的情况,因为我们无法确保关闭脚本运行。Amazon EC2 会尝试彻底关闭实例,并运行任一系统关闭脚本;但某些事件 (如硬件故障) 可能会妨碍这些系统关闭脚本的运行。

终止实例 (API) 后会发生什么?

使用 terminate-instances 命令终止 EC2 实例后,将在操作系统级别注册以下内容:

  • API 请求将向访客发送按钮按下事件。

  • 由于此按钮按下事件,将停止各种系统服务。systemd 处理系统的正常关闭。对于停止和终止,都执行上述操作。来自管理程序的 ACPI 关闭按钮按下事件触发正常关闭。

  • 启动 ACPI 关闭。

  • 当正常关闭进程退出时,实例将关闭。没有可配置的操作系统关闭时间。

终止实例

您可以使用 AWS 管理控制台或命令行终止实例。

使用控制台终止实例

  1. 在终止实例前,请验证您不会丢失任何数据,方法是确认您的 Amazon EBS 卷不会在终止时被删除,并且您已将所需数据从实例存储卷复制到 Amazon EBS 或 Amazon S3。

  2. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  3. 在导航窗格中,选择 Instances

  4. 选择所需实例,然后依次选择 ActionsInstance StateTerminate

  5. 当系统提示您确认时,选择 Yes, Terminate

使用命令行终止实例

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

为实例启用终止保护

默认情况下,您可以使用 Amazon EC2 控制台、命令行界面或 API 终止您的实例。如果您希望使用 Amazon EC2 防止实例意外终止,可以启用实例终止保护DisableApiTermination 属性可控制是否可以使用控制台、CLI 或 API 终止实例。默认情况下,终止保护处于禁用状态。您可以在实例启动、运行或已停止时设置该属性值 (针对由 Amazon EBS 支持的实例)。

当设置 DisableApiTermination 属性时,InstanceInitiatedShutdownBehavior 属性不会阻止您通过从实例启动关闭来终止实例 (使用操作系统的系统关闭命令)。有关更多信息,请参阅 更改实例的启动关闭操作

限制

您不能为 Spot 实例启用终止保护 — 当 Spot 价格超过您的出价时,Spot 实例将终止。不过,您可以准备应用程序来处理 Spot 实例中断。有关更多信息,请参阅Spot 实例中断

DisableApiTermination 属性不会阻止 Amazon EC2 Auto Scaling 终止实例。对于 Auto Scaling 组中的实例,请使用下列 Amazon EC2 Auto Scaling 功能而非 Amazon EC2 终止保护:

  • 要阻止作为 Auto Scaling 组一部分的实例在缩小时终止,请使用实例保护。有关更多信息,请参阅Amazon EC2 Auto Scaling 用户指南中的实例保护

  • 要阻止 Amazon EC2 Auto Scaling 终止运行状况不佳的实例,请暂停 ReplaceUnhealthy 流程。有关更多信息,请参阅Amazon EC2 Auto Scaling 用户指南中的暂停和恢复扩展流程

  • 要指定 Amazon EC2 Auto Scaling 应先终止的实例,请选择终止策略。有关更多信息,请参阅Amazon EC2 Auto Scaling 用户指南中的自定义终止策略

要在实例启动时启用终止保护

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在控制面板中,选择 Launch Instance 并按照向导中的说明操作。

  3. Configure Instance Details (配置实例详细信息) 页面上,选中 Enable termination protection (启用终止保护) 复选框。

启用正在运行或已停止的实例的终止保护

  1. 选择相应实例,然后依次选择 ActionsInstance SettingsChange Termination Protection

  2. 选择 Yes, Enable

禁用正在运行或已停止的实例的终止保护

  1. 选择相应实例,然后依次选择 ActionsInstance SettingsChange Termination Protection

  2. 选择 Yes, Disable

使用命令行启用或禁用终止保护

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

更改实例的启动关闭操作

默认情况下,从由 Amazon EBS 支持的实例启动关闭(使用 shutdownpoweroff 之类的命令),该实例将会停止。(请注意,halt 不会发出 poweroff 命令;如果使用 halt 命令,实例将不会终止;而是将 CPU 置于 HLT 状态,实例仍保持运行)。您可以使用实例的 InstanceInitiatedShutdownBehavior 属性更改此操作,以便终止实例。您可以在实例运行或停止时更新此属性。

您可以使用 Amazon EC2 控制台或命令行更新 InstanceInitiatedShutdownBehavior 属性。InstanceInitiatedShutdownBehavior 属性只在您从实例自身的操作系统执行关闭操作时适用;在您使用 StopInstances API 或 Amazon EC2 控制台停止实例时不适用。

使用控制台更改实例的关闭行为

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择相应实例,然后依次选择 ActionsInstance SettingsChange Shutdown Behavior。已选定当前操作。

  4. 要更改该操作,请从 Shutdown behavior 列表中选择一个选项,然后选择 Apply

    
						“Change Shutdown Behavior (更改关闭操作)”对话框

使用命令行更改实例的关闭行为

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

在实例终止时保留 Amazon EBS 卷

当实例终止时,Amazon EC2 会使用每个挂载的 Amazon EBS 卷的 DeleteOnTermination 属性的值来确定是保留还是删除该卷。

默认情况下,实例的根卷的 DeletionOnTermination 属性将设置为 true。因此,当某个实例终止时,默认为删除该实例的根卷。

默认情况下,当您将 EBS 卷附加到某个实例时,其 DeleteOnTermination 属性将设置为 false。因此,默认为保留这些卷。您必须删除卷以避免产生更多费用。有关更多信息,请参阅删除 Amazon EBS 卷。在该实例终止后,您可以为保留的卷拍摄快照,或将其附加到另一个实例。

要验证使用中的 EBS 卷的 DeleteOnTermination 属性的值,请查看该实例的块储存设备映射。有关更多信息,请参阅查看实例块储存设备映射中的 EBS 卷

在启动该实例或在该实例正在运行时,您可以更改卷的 DeleteOnTermination 属性的值。

使用控制台将根卷更改为在启动时持久保留

当您启动实例时,可以使用控制台更改 DeleteOnTermination 属性。要对正在运行的实例更改此属性,您必须使用命令行。

使用控制台在启动时更改实例要持久保留的根卷

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 从控制台控制面板中,选择 Launch Instance

  3. Choose an Amazon Machine Image (AMI) 页面上,选择一个 AMI,然后选择 Select

  4. 遵循向导完成 Choose an Instance Type (选择一个实例类型)Configure Instance Details (配置实例详细信息) 页面。

  5. Add Storage (添加存储) 页面上,取消选中根卷的 Delete On Termination (终止时删除) 复选框。

  6. 完成其余向导页面上的操作,然后选择 Launch

您可以通过实例的详细信息窗格查看根设备卷的详细信息以验证设置。在 Block devices (块储存设备) 旁,单击根设备卷的条目。默认情况下,Delete on termination (终止时删除)True。如果您更改默认行为,Delete on termination (终止时删除) 将为 False

使用命令行将根卷更改为在启动时持久保留

当您启动 EBS 支持的实例时,可以使用以下命令之一将根设备卷更改为持久保留。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

例如,将以下选项添加到 run-instances 命令:

--block-device-mappings file://mapping.json

mapping.json 中指定以下内容:

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false, "SnapshotId": "snap-1234567890abcdef0", "VolumeType": "gp2" } } ]

使用命令行更改要持久保留正在运行的实例的根卷

您可以使用以下命令之一将正在运行的 EBS 支持实例的根设备卷更改为持久保留。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

例如,使用以下命令:

aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --block-device-mappings file://mapping.json

mapping.json 中指定以下内容:

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]