EC2 Fleet 요청 및 플릿의 인스턴스 삭제하기
EC2 Fleet 요청 및 플릿의 인스턴스 삭제하기 (Delete an EC2 Fleet request and the instances in the fleet)
EC2 Fleet 요청이 더 이상 필요 없으면 삭제할 수 있어요. 플릿 요청을 삭제하면 플릿과 연결된 모든 Spot 요청도 취소되어 새 Spot 인스턴스가 시작되지 않아요.
출처: 문서
본문
EC2 Fleet 요청을 삭제할 때는 그 인스턴스(On-Demand와 Spot 모두)를 종료할지도 지정해야 해요. instant 플릿의 경우 EC2 Fleet이 플릿 삭제 시 인스턴스를 종료해야 해요. 실행 중인 인스턴스가 있는 삭제된 instant 플릿은 지원되지 않아요.
경고: 인스턴스 종료는 영구적이고 되돌릴 수 없어요. 종료 후에는 연결할 수 없고 복구할 수도 없어요. 종료 시 삭제되도록 구성된 연결된 EBS 볼륨과 인스턴스 스토어 볼륨의 모든 데이터는 영구적으로 손실돼요. 종료 후 유지하려는 데이터는 종료 전에 영구 스토리지에 백업하세요.
플릿 요청 삭제 시 인스턴스 종료를 지정하면 플릿 요청이 deleted_terminating 상태로 들어가요. 그렇지 않으면 deleted_running 상태로 들어가고, 인스턴스는 중단되거나 수동으로 종료할 때까지 계속 실행돼요.
제한 사항 (Restrictions)
- 단일 작업에서
instant유형 플릿은 최대 25개까지 삭제할 수 있어요. - 단일 작업에서
maintain또는request유형 플릿은 최대 100개까지 삭제할 수 있어요. - 각 플릿 유형의 할당량을 초과하지 않는다면 단일 작업에서 최대 125개까지 삭제할 수 있어요.
- 지정된 수를 초과하면 어떤 플릿도 삭제되지 않아요.
- 실행 중인 인스턴스가 있는 삭제된
instant플릿은 지원되지 않아요.instant플릿을 삭제하면 Amazon EC2가 모든 인스턴스를 자동으로 종료해요. 1000개가 넘는 인스턴스가 있는instant플릿은 삭제 요청이 실패할 수 있어요. 1000개를 넘으면 대부분의 인스턴스를 수동으로 종료해 1000개 이하로 만든 뒤 플릿을 삭제하면 나머지 인스턴스가 자동으로 종료돼요.
AWS CLI — 플릿 요청 삭제 및 인스턴스 종료 — delete-fleets 명령에 --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"
}
]
}
인스턴스 종료 없이 요청 삭제 — --no-terminate-instances 옵션을 사용해요. --no-terminate-instances는 instant 플릿에서 지원되지 않아요.
aws ec2 delete-fleets \
--fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
--no-terminate-instances
PowerShell — Remove-EC2Fleet cmdlet에 -TerminateInstance 파라미터를 사용해요. $true면 인스턴스 종료, $false면 종료 없음.
Remove-EC2Fleet `
-FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
-TerminateInstance $true
플릿 삭제 실패 시 문제 해결하기
EC2 Fleet 요청 삭제가 실패하면 출력의 UnsuccessfulFleetDeletions가 요청 ID, 오류 코드, 오류 메시지를 반환해요.
오류 코드는 다음과 같아요.
ExceededInstantFleetNumForDeletionfleetIdDoesNotExistfleetIdMalformedfleetNotInDeletableStateNoTerminateInstancesNotSupportedUnauthorizedOperationunexpectedError
ExceededInstantFleetNumForDeletion — 단일 요청에서 25개가 넘는 instant 플릿을 삭제하려 하면 이 오류가 반환돼요.
{
"UnsuccessfulFleetDeletions": [
{
"FleetId": " fleet-5d130460-0c26-bfd9-2c32-0100a098f625",
"Error": {
"Message": "Can't delete more than 25 instant fleets in a single request.",
"Code": "ExceededInstantFleetNumForDeletion"
}
}
...
],
"SuccessfulFleetDeletions": []
}
NoTerminateInstancesNotSupported — instant 플릿의 인스턴스를 종료하지 말라고 지정하면 이 오류가 반환돼요. --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 — 인스턴스를 종료할 권한이 없으면 인스턴스를 종료해야 하는 플릿을 삭제할 때 이 오류를 받아요. 오류를 해결하려면 IAM 정책에 ec2:TerminateInstances 작업을 추가해야 해요.