

# 스팟 인스턴스 요청 상태 가져오기
<a name="spot-request-status"></a>

스팟 인스턴스 요청을 추적하고 스팟 인스턴스 사용 계획을 세우는 데 도움이 되도록 Amazon EC2에서 제공하는 요청 상태를 사용합니다. 예를 들어, 요청 상태는 스팟 요청이 아직 이행되지 않는 이유를 알려주거나, 스팟 요청을 이행할 수 없는 제약 조건을 나열할 수 있습니다.

프로세스의 각 단계(스팟 요청 *수명 주기*라고도 함)에서 특정 이벤트에 따라 연속 요청 상태가 결정됩니다.

다음 그림에서는 스팟 인스턴스 요청이 작동하는 방식을 보여 줍니다. 요청 유형(일회성 또는 영구적)에 따라 Amazon EC2가 스팟 인스턴스를 중단할 때 또는 사용자가 스팟 인스턴스를 중지하는 경우 요청이 다시 열리는지 여부가 결정됩니다. 요청이 영구적인 경우 스팟 인스턴스가 중단된 후 요청이 다시 열립니다. 요청이 영구적이고 사용자가 스팟 인스턴스를 중지하는 경우 스팟 인스턴스를 시작한 후에만 요청이 열립니다.

![\[스팟 인스턴스 요청 작동 방식입니다.\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/spot_lifecycle.png)


**Topics**
+ [요청 상태 정보 가져오기](#get-spot-instance-request-status)
+ [스팟 요청 상태 코드](#spot-instance-request-status-understand)
+ [EC2 스팟 인스턴스 요청 이행 이벤트](#spot-request-fulfillment-event)
+ [스팟 요청의 상태 변경](spot-instances-request-status-lifecycle.md)

## 요청 상태 정보 가져오기
<a name="get-spot-instance-request-status"></a>

스팟 인스턴스 요청에 대한 상태 정보를 가져올 수 있습니다.

------
#### [ Console ]

**요청 상태 정보를 가져오는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **스팟 요청**을 선택한 다음 스팟 요청을 선택합니다.

1. 상태를 확인하려면 **설명** 탭에서 **상태** 필드를 선택합니다.

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

**요청 상태 정보를 가져오는 방법**  
다음 [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) 명령을 사용합니다.

```
aws ec2 describe-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

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

**요청 상태 정보를 가져오는 방법**  
[Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html) cmdlet을 사용합니다.

```
Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

## 스팟 요청 상태 코드
<a name="spot-instance-request-status-understand"></a>

스팟 요청 상태 정보는 상태 코드, 업데이트 시간 및 상태 메시지로 구성됩니다. 이러한 정보를 하나로 모으면 스팟 요청 배치를 결정하는 데 도움이 됩니다.

다음은 스팟 요청 상태 코드입니다.

`az-group-constraint`  
Amazon EC2가 동일한 가용 영역에 요청한 모든 인스턴스를 시작할 수 있는 것은 아닙니다.

`bad-parameters`  
스팟 요청에 대한 파라미터 하나 이상이 올바르지 않습니다(예를 들어, 지정한 AMI가 존재하지 않음). 상태 메시지는 어떤 파라미터가 유효하지 않은지를 나타냅니다.

`canceled-before-fulfillment`  
요청이 이행되기 전에 사용자가 스팟 요청을 취소했습니다.

`capacity-not-available`  
요청한 인스턴스에 사용 가능한 용량이 부족합니다.

`constraint-not-fulfillable`  
하나 이상의 제약 조건이 올바르지 않기 때문에(예: 가용 영역이 존재하지 않음) 스팟 요청을 이행할 수 없습니다. 상태 메시지는 어떤 제약 조건이 유효하지 않은지를 나타냅니다.

`fulfilled`  
스팟 요청이 `active`이고 Amazon EC2에서 스팟 인스턴스를 시작하는 중입니다.

`instance-stopped-by-price`  
스팟 가격이 최고 가격을 초과하여 인스턴스가 중지됩니다.

`instance-stopped-by-user`  
사용자가 인스턴스를 중지했거나 인스턴스에서 종료 명령을 실행했기 때문에 인스턴스가 중지되었습니다.

`instance-stopped-no-capacity`  
EC2 용량 관리 필요성으로 인해 인스턴스가 중지되었습니다.

`instance-terminated-by-price`  
스팟 가격이 최고 가격을 초과하여 인스턴스가 종료됩니다. 요청이 영구적일 경우 프로세스가 다시 시작되므로 요청은 평가 보류 상태입니다.

`instance-terminated-by-schedule`  
스팟 인스턴스가 예약 기간의 만료로 종료되었습니다.

`instance-terminated-by-service`  
인스턴스가 중지된 상태에서 종료되었습니다.

`instance-terminated-by-user` , 또는 `spot-instance-terminated-by-user`  
이행된 스팟 인스턴스를 종료했으므로 요청 상태는 `closed`이고(영구 요청이 아닌 경우) 인스턴스 상태는 `terminated`입니다.

`instance-terminated-launch-group-constraint`  
시작 그룹에 있는 하나 이상의 인스턴스가 종료되었으므로 시작 그룹 제약 조건이 더 이상 충족되지 않습니다.

`instance-terminated-no-capacity`  
표준 용량 관리 프로세스로 인해 인스턴스가 종료되었습니다.

`launch-group-constraint`  
Amazon EC2가 동일한 시간에 요청한 모든 인스턴스를 시작할 수 있는 것은 아닙니다. 시작 그룹에 있는 모든 인스턴스가 함께 시작되고 종료됩니다.

`limit-exceeded`  
EBS 볼륨 또는 전체 볼륨 스토리지 수 제한을 초과했습니다. 자세한 내용은 *Amazon EBS 사용 설명서*의 [Quotas for Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-resource-quotas.html)를 참조하세요.

`marked-for-stop`  
스팟 인스턴스가 중지할 대상으로 표시되어 있습니다.

`marked-for-termination`  
스팟 인스턴스가 종료할 대상으로 표시되어 있습니다.

`not-scheduled-yet`  
예정된 날짜까지 스팟 요청이 평가되지 않습니다.

`pending-evaluation`  
스팟 인스턴스 요청을 수행한 후 시스템에서 요청 파라미터를 평가하는 동안 요청이 `pending-evaluation` 상태로 전환됩니다.

`pending-fulfillment`  
Amazon EC2에서 스팟 인스턴스를 프로비저닝하려고 합니다.

`placement-group-constraint`  
이 시점에는 스팟 인스턴스를 배치 그룹에 추가할 수 없으므로 아직 스팟 요청을 이행할 수 없습니다.

`price-too-low`  
최고 가격이 스팟 가격보다 낮기 때문에 요청을 이행할 수 없습니다. 이 경우 인스턴스가 시작되지 않으며 요청이 `open` 상태로 유지됩니다.

`request-canceled-and-instance-running`  
스팟 인스턴스가 아직 실행되고 있는 중에 사용자가 스팟 요청을 취소했습니다. 요청은 `cancelled` 상태지만 인스턴스는 여전히 `running` 상태입니다.

`schedule-expired`  
지정된 날짜 이전에 요청이 이행되지 않았기 때문에 스팟 요청이 만료되었습니다.

`system-error`  
예상치 않은 시스템 오류입니다. 이 문제가 반복되면 AWS Support에 문의하여 지원을 받으세요.

## EC2 스팟 인스턴스 요청 이행 이벤트
<a name="spot-request-fulfillment-event"></a>

스팟 인스턴스 요청이 이행되면 Amazon EC2가 EC2 스팟 인스턴스 요청 이행 이벤트를 Amazon EventBridge로 전송합니다. 이 이벤트가 발생할 때마다 Lambda 함수를 호출하거나 Amazon SNS 주제를 알리는 등의 조치를 취하는 규칙을 생성할 수 있습니다.

다음은 이 이벤트의 예제 데이터입니다.

```
{
    "version": "0",
    "id": "01234567-1234-0123-1234-012345678901",
    "detail-type": "EC2 Spot Instance Request Fulfillment",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "spot-instance-request-id": "sir-0e54a519c9EXAMPLE",
        "instance-id": "i-1234567890abcdef0"
    }
}
```

자세한 내용은 [Amazon EventBridge 사용 설명서](https://docs.aws.amazon.com/eventbridge/latest/userguide/)를 참조하세요.