删除 EC2 实例集请求和实例集中的实例
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
删除 EC2 实例集请求和实例集中的实例如果不再需要某个 EC2 实例集请求,可以将其删除。删除实例集请求后,将取消与实例集关联的所有竞价型实例请求,避免启动任何新的竞价型实例。
删除 EC2 实例集请求后,您还必须指定是否要终止其所有实例。包括按需型实例和竞价型实例。对于 instant 实例集,EC2 实例集必须在删除实例集时终止实例。不支持包含正在运行实例的已删除 instant 队列。
警告终止实例是永久且不可逆转的。
终止一个实例后,您将无法再连接到该实例,而且也无法对其进行恢复操作。被配置为在终止后删除的所有连接的 Amazon EBS 卷也将被永久删除并且无法恢复。实例存储卷中存储的所有数据将永久丢失。有关更多信息,请参阅 实例终止的工作原理。
在终止实例之前,请务必确保已将需要在终止后保留的所有数据备份到持久存储中。
如果您指定在实例集请求删除后必须终止实例,则实例集请求会进入 deleted_terminating 状态。否则,队列会进入 deleted_running 状态,并且实例会继续运行,直到遇到中断或您手动将其终止。
限制
在单次操作中,最多可以删除 25 个 instant 类型的实例集。
在单次操作中,最多可以删除 100 个 maintain 或 request 类型的实例集。
在单次操作中,最多可以删除 125 个实例集,前提是不超过上述指定的各类实例集的限额。
如果要删除的实例集超过指定数量,将不会删除任何实例集。
不支持包含正在运行实例的已删除 instant 队列。当您删除 instant 实例集时,Amazon EC2 会自动终止其所有实例。对于具有超过 1000 个实例的 instant 实例集,删除请求可能会失败。如果您的实例集有超过 1000 个实例,请先手动终止大多数实例,留下 1000 个或更少的实例。然后删除实例集,剩余的实例将自动终止。
Amazon CLI
删除 EC2 实例集请求并终止其实例
使用带 --terminate-instances 选项的 delete-fleets 命令。
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 选项修改上一个示例。请注意,instant 实例集不支持 --no-terminate-instances。
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"
}
]
}
PowerShell
删除 EC2 实例集请求并终止其实例
使用带 -TerminateInstance 参数的 Remove-EC2Fleet cmdlet。
Remove-EC2Fleet `
-FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
-TerminateInstance $true
删除 EC2 实例集请求但不终止其实例
通过更改 -TerminateInstance 参数的值修改上一个示例。
Remove-EC2Fleet `
-FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
-TerminateInstance $false
队列无法删除时进行故障排除
如果 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 错误。下面是错误响应。
UnauthorizedOperation
operation. Encoded authorization failure message: VvuncIxj7Z_CPGNYXWqnuFV-YjByeAU66Q9752NtQ-I3-qnDLWs6JLFd
KnSMMiq5s6cGqjjPtEDpsnGHzzyHasFHOaRYJpaDVravoW25azn6KNkUQQlFwhJyujt2dtNCdduJfrqcFYAjlEiRMkfDHt7N63SKlweKUl
BHturzDK6A560Y2nDSUiMmAB1y9UNtqaZJ9SNe5sNxKMqZaqKtjRbk02RZu5V2vn9VMk6fm2aMVHbY9JhLvGypLcMUjtJ76H9ytg2zRlje
VPiU5v2s-UgZ7h0p2yth6ysUdhlONg6dBYu8_y_HtEI54invCj4CoK0qawqzMNe6rcmCQHvtCxtXsbkgyaEbcwmrm2m01-EMhekLFZeJLr
DtYOpYcEl4_nWFX1wtQDCnNNCmxnJZAoJvb3VMDYpDTsxjQv1PxODZuqWHs23YXWVywzgnLtHeRf2o4lUhGBw17mXsS07k7XAfdPMP_brO
PT9vrHtQiILor5VVTsjSPWg7edj__1rsnXhwPSu8gI48ZLRGrPQqFq0RmKO_QIE8N8s6NWzCK4yoX-9gDcheurOGpkprPIC9YPGMLK9tug
为了解决错误,您必须将 ec2:TerminateInstances 操作添加到 IAM policy,如下例中所示。