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

删除 EC2 实例集请求和实例集中的实例

如果不再需要某个 EC2 实例集请求,可以将其删除。删除实例集请求后,将取消与实例集关联的所有竞价型实例请求,避免启动任何新的竞价型实例。

删除 EC2 实例集请求后,您还必须指定是否要终止其所有实例。包括按需型实例和竞价型实例。对于 instant 实例集,EC2 实例集必须在删除实例集时终止实例。不支持包含正在运行实例的已删除 instant 队列。

如果您指定在实例集请求删除后必须终止实例,则实例集请求会进入 deleted_terminating 状态。否则,队列会进入 deleted_running 状态,并且实例会继续运行,直到遇到中断或您手动将其终止。

限制
  • 在单次操作中,最多可以删除 25 个 instant 类型的实例集。

  • 在单次操作中,最多可以删除 100 个 maintainrequest 类型的实例集。

  • 在单次操作中,最多可以删除 125 个实例集,前提是不超过上述指定的各类实例集的限额。

  • 如果要删除的实例集超过指定数量,将不会删除任何实例集。

  • 单次删除 instant 实例集的操作最多可终止 1000 个实例。

删除 EC2 实例集并终止其实例

使用 delete-fleets 命令和 --terminate-instances 参数来删除指定的 EC2 实例集并终止其关联实例。

aws ec2 delete-fleets \ --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --terminate-instances

示例输出

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_terminating", "PreviousFleetState": "active", "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" } ] }
删除 EC2 实例集但不终止其实例

您可以使用 --no-terminate-instances 参数修改上一个命令,以删除指定的 EC2 实例集而不终止其关联实例。

注意

--no-terminate-instances 队列不支持 instant

aws ec2 delete-fleets \ --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --no-terminate-instances

示例输出

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_running", "PreviousFleetState": "active", "FleetId": "fleet-4b8aaae8-dfb5-436d-a4c6-3dafa4c6b7dcEXAMPLE" } ] }

队列无法删除时进行故障排除

如果 EC2 队列 无法删除,则 UnsuccessfulFleetDeletions 将返回 EC2 队列 的 ID、错误代码和错误消息。

错误代码为:

  • ExceededInstantFleetNumForDeletion

  • fleetIdDoesNotExist

  • fleetIdMalformed

  • fleetNotInDeletableState

  • NoTerminateInstancesNotSupported

  • UnauthorizedOperation

  • unexpectedError

ExceededInstantFleetNumForDeletion 问题排查

如果您尝试在单个请求中删除超过 25 个 instant 队列,则会返回 ExceededInstantFleetNumForDeletion 错误。下面是此错误的示例输出。

{ "UnsuccessfulFleetDeletions": [ { "FleetId": " fleet-5d130460-0c26-bfd9-2c32-0100a098f625", "Error": { "Message": "Can’t delete more than 25 instant fleets in a single request.", "Code": "ExceededInstantFleetNumForDeletion" } }, { "FleetId": "fleet-9a941b23-0286-5bf4-2430-03a029a07e31", "Error": { "Message": "Can’t delete more than 25 instant fleets in a single request.", "Code": "ExceededInstantFleetNumForDeletion" } } . . . ], "SuccessfulFleetDeletions": [] }
NoTerminateInstancesNotSupported 问题排查

如果您指定在删除 instant 队列时不得终止该队列中的实例,则会返回 NoTerminateInstancesNotSupported 错误。--no-terminate-instances 队列不支持 instant。下面是此错误的示例输出。

{ "UnsuccessfulFleetDeletions": [ { "FleetId": "fleet-5d130460-0c26-bfd9-2c32-0100a098f625", "Error": { "Message": "NoTerminateInstances option is not supported for instant fleet", "Code": "NoTerminateInstancesNotSupported" } } ], "SuccessfulFleetDeletions": []
UnauthorizedOperation 问题排查

如果您没有终止实例的权限,则在删除必须终止其实例的队列时会收到 UnauthorizedOperation 错误。下面是错误响应。

<Response><Errors><Error><Code>UnauthorizedOperation</Code><Message>You are not authorized to perform this operation. Encoded authorization failure message: VvuncIxj7Z_CPGNYXWqnuFV-YjByeAU66Q9752NtQ-I3-qnDLWs6JLFd KnSMMiq5s6cGqjjPtEDpsnGHzzyHasFHOaRYJpaDVravoW25azn6KNkUQQlFwhJyujt2dtNCdduJfrqcFYAjlEiRMkfDHt7N63SKlweKUl BHturzDK6A560Y2nDSUiMmAB1y9UNtqaZJ9SNe5sNxKMqZaqKtjRbk02RZu5V2vn9VMk6fm2aMVHbY9JhLvGypLcMUjtJ76H9ytg2zRlje VPiU5v2s-UgZ7h0p2yth6ysUdhlONg6dBYu8_y_HtEI54invCj4CoK0qawqzMNe6rcmCQHvtCxtXsbkgyaEbcwmrm2m01-EMhekLFZeJLr DtYOpYcEl4_nWFX1wtQDCnNNCmxnJZAoJvb3VMDYpDTsxjQv1PxODZuqWHs23YXWVywzgnLtHeRf2o4lUhGBw17mXsS07k7XAfdPMP_brO PT9vrHtQiILor5VVTsjSPWg7edj__1rsnXhwPSu8gI48ZLRGrPQqFq0RmKO_QIE8N8s6NWzCK4yoX-9gDcheurOGpkprPIC9YPGMLK9tug </Message></Error></Errors><RequestID>89b1215c-7814-40ae-a8db-41761f43f2b0</RequestID></Response>

为了解决错误,您必须将 ec2:TerminateInstances 操作添加到 IAM policy,如下例中所示。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeleteFleetsAndTerminateInstances", "Effect": "Allow", "Action": [ "ec2:DeleteFleets" "ec2:TerminateInstances" ], "Resource": "*" } ] }