

# EC2 Fleet 요청 및 플릿의 인스턴스 삭제
<a name="delete-fleet"></a>

EC2 Fleet 요청이 더 이상 필요하지 않으면 삭제할 수 있습니다. 플릿 요청을 삭제하면 플릿과 연결된 모든 스팟 요청이 취소되어 새 스팟 인스턴스가 시작되지 않습니다.

EC2 Fleet 요청을 삭제하는 경우 해당 인스턴스도 모두 종료할지 여부를 지정해야 합니다. 여기에는 온디맨드 인스턴스와 스팟 인스턴스가 모두 포함됩니다. `instant` 플릿의 경우, EC2 Fleet은 플릿이 삭제될 때 인스턴스를 종료해야 합니다. 삭제된 `instant` 플릿에서 인스턴스를 실행하는 것은 지원되지 않습니다.

**주의**  
**인스턴스 종료는 영구적이며 취소할 수 없습니다.**  
종료한 인스턴스는 더 이상 연결할 수 없으며 복구할 수 없습니다. 연결된 Amazon EBS 볼륨도 종료 시 삭제하도록 구성한 경우 영구적으로 삭제되며 복구할 수 없습니다. 인스턴스 저장소 볼륨에 저장된 데이터는 모두 영구적으로 손실됩니다. 자세한 내용은 [인스턴스 종료 작동 방식](how-ec2-instance-termination-works.md) 섹션을 참조하세요.  
인스턴스를 종료하기 전에 종료 후에도 보존해야 하는 모든 데이터를 영구 스토리지에 백업했는지 확인하세요.

플릿 요청이 삭제되면 인스턴스가 종료되도록 지정할 경우 플릿 요청이 `deleted_terminating` 상태가 됩니다. 그렇게 하지 않으면 `deleted_running` 상태가 되어 인스턴스가 중단되거나 수동으로 종료될 때까지 계속 실행됩니다.

**제한 사항**
+ 단일 작업으로 `instant` 유형의 플릿을 25개까지 삭제할 수 있습니다.
+ 단일 작업으로 `maintain` 또는 `request` 유형의 플릿을 100개까지 삭제할 수 있습니다.
+ 위에서 지정한 대로 각 플릿 유형의 할당량을 초과하지 않는 경우 단일 작업으로 최대 125개의 플릿을 삭제할 수 있습니다.
+ 삭제할 플릿의 지정된 수를 초과하면 플릿이 삭제되지 않습니다.
+ 삭제된 `instant` 플릿에서 인스턴스를 실행하는 것은 지원되지 않습니다. `instant` 플릿을 삭제하면 Amazon EC2가 모든 인스턴스를 자동으로 종료합니다. 인스턴스가 1,000개 이상인 `instant` 플릿의 경우 삭제 요청이 실패할 수 있습니다. 플릿에 인스턴스가 1,000개 이상인 경우 먼저 인스턴스를 대부분 수동으로 종료하여 1,000개 이하를 남깁니다. 그런 다음 플릿을 삭제하면 나머지 인스턴스가 자동으로 종료됩니다.

------
#### [ 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) cmdlet을 `-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 Fleet 요청이 삭제에 실패하는 경우 출력의 `UnsuccessfulFleetDeletions`에서 EC2 Fleet의 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>
```

이 오류를 해결하려면 다음 예제와 같이 IAM 정책에 `ec2:TerminateInstances` 작업을 추가해야 합니다.