

# EC2 フリートリクエストおよびフリート内のインスタンスを削除する
<a name="delete-fleet"></a>

EC2 フリートリクエストが不要になった場合には削除できます。フリートリクエストを削除すると、そのフリートに関連付けられているすべてのスポットリクエストがキャンセルされるため、新しいスポットインスタンスは起動されません。

EC2 フリートリクエストを削除するときは、そのインスタンスをすべて終了させるかどうかを指定する必要があります。これには、オンデマンドインスタンスとスポットインスタンスの両方が含まれます。`instant` フリートの場合、EC2 フリートはフリートの削除時にインスタンスを終了する必要があります。実行中のインスタンスを持つ削除した `instant` フリートはサポートされていません。

**警告**  
**インスタンスの終了は恒久的で、元に戻すことができません。**  
インスタンスを終了すると、そのインスタンスには接続できなくなり、復元することもできません。アタッチされている Amazon EBS ボリュームで、終了時に削除されるように設定されているものも、すべて恒久的に削除され、復元できません。インスタンスストアボリュームに保存されているデータは、すべて恒久的に失われます。詳細については、「[インスタンスの終了方法](how-ec2-instance-termination-works.md)」を参照してください。  
インスタンスを終了する前に、終了後も保持する必要があるすべてのデータを永続的ストレージにバックアップしたことを確認してください。

フリートリクエストを削除するときに、インスタンスを終了するように指定した場合、フリートリクエストは `deleted_terminating` 状態に移行します。それ以外の場合は `deleted_running` 状態になり、インスタンスは中断または手動終了されるまで、引き続き実行されます。

**制限事項**
+ 1 回の操作で最大 25 個の `instant` タイプのフリートを削除できます。
+ 1 回の操作で最大 100 個の `maintain` または `request` タイプのフリートを削除できます。
+ 上記のように、各フリートタイプのクォータを超えない場合は、1 回の操作で最大 125 個のフリートを削除できます。
+ 削除するフリートの指定された数を超えると、フリートは削除されません。
+ 実行中のインスタンスを持つ削除した `instant` フリートはサポートされていません。`instant` フリートを削除すると、Amazon EC2 はすべてのインスタンスを自動的に終了させます。1000 個を超えるインスタンスで構成された `instant` フリートの場合、削除リクエストは失敗する可能性があります。1000 個を超えるインスタンスで構成されたフリートの場合は、まずほとんどのインスタンスを手動で終了させ、残りのインスタンスが 1000 個以下になるようにします。次に、フリートを削除すると、残りのインスタンスは自動的に終了します。

------
#### [ AWS CLI ]

**EC2 フリートリクエストを削除してインスタンスを終了するには**  
[delete-fleets](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-fleets.html) コマンドを `--terminate-instances` オプションと共に使用します。

```
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` オプションを使用して、前の例を変更します。`--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"
        }
    ]
}
```

------
#### [ PowerShell ]

**EC2 フリートリクエストを削除してインスタンスを終了するには**  
[Remove-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Fleet.html) コマンドレットを `-TerminateInstance` パラメータと共に使用します。

```
Remove-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $true
```

**インスタンスを終了せずに EC2 フリートリクエストを削除するには**  
`-TerminateInstance` パラメータの値を変更して、前の例を変更します。

```
Remove-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $false
```

------

## フリートの削除に失敗した場合のトラブルシューティング
<a name="troubleshoot-delete-fleet"></a>

EC2 フリートリクエスト の削除に失敗すると、出力中の `UnsuccessfulFleetDeletions` は EC2 フリートリクエスト の ID、エラーコード、エラーメッセージを返します。

エラーコードは次のとおりです。
+ `ExceededInstantFleetNumForDeletion`
+ `fleetIdDoesNotExist`
+ `fleetIdMalformed`
+ `fleetNotInDeletableState`
+ `NoTerminateInstancesNotSupported`
+ `UnauthorizedOperation`
+ `unexpectedError`

**`ExceededInstantFleetNumForDeletion` のトラブルシューティング**  
1 回のリクエストで 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 ポリシーに追加する必要があります。