刪除EC2叢集請求和叢集中的執行個體 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

刪除EC2叢集請求和叢集中的執行個體

如果您不再需要EC2叢集請求,您可以將其刪除。刪除叢集請求後,會取消與叢集相關聯的所有 Spot 請求,因此不會啟動新的 Spot 執行個體。

刪除EC2叢集請求時,您還必須指定是否要終止其所有執行個體。這包含隨需執行個體和 Spot 執行個體。對於instant叢集,EC2叢集必須在刪除叢集時終止執行個體。不支援具有執行中執行個體的已刪除 instant 機群。

如果您指定在刪除叢集要求時必須終止執行個體,叢集要求就會進入deleted_terminating狀態。否則會進入 deleted_running 狀態,且執行個體會一直執行直到中斷或您手動終止。

限制
  • 您可以在單一作業中刪除多達 25 個類型instant的叢集。

  • 您最多可以刪除 100 個類型的叢集,也可以requestmaintain單一作業中刪除。

  • 如上所述,您可以在單一作業中刪除多達 125 個叢集,前提是您不超過每個叢集類型的配額。

  • 如果超過要刪除的叢集指定數目,則不會刪除任何叢集。

  • 單一作業最多可終止 1000 個執行個體以刪除instant叢集。

若要刪除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原則,如下列範例所示。

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