

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 스팟 인스턴스 작업
<a name="spot"></a>

AWS ParallelCluster 클러스터 구성이 [`cluster_type`](cluster-definition.md#cluster-type) = 스팟으로 설정된 경우는 스팟 인스턴스를 사용합니다. 스팟 인스턴스는 온디맨드 인스턴스보다 비용 효율적이지만 중단될 수 있습니다. 중단이 미치는 영향은 사용되는 스케줄러에 따라 다릅니다. Amazon EC2가 *스팟 인스턴스를 중지하거나 종료하기 2분 전에 경고를 제공하는 스팟 인스턴스 중단 알림을* 활용하는 데 도움이 될 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [스팟 인스턴스 중단](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html)을 참조하세요. 다음 섹션에서는 스팟 인스턴스가 중단될 수 있는 세 가지 시나리오를 설명합니다.

**참고**  
스팟 인스턴스를 사용하려면 계정에 `AWSServiceRoleForEC2Spot` 서비스 연결 역할이 있어야 합니다. 를 사용하여 계정에서이 역할을 생성하려면 다음 명령을 AWS CLI실행합니다.  

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```
자세한 내용은 *Amazon EC2 사용 설명서*에서 [스팟 인스턴스 요청을 위한 서비스 연결 역할](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests)을 참조하세요.

## 시나리오 1: 실행 중인 작업이 없는 스팟 인스턴스가 중단됨
<a name="no-jobs"></a>

이 중단이 발생하면 스케줄러 대기열에 추가 인스턴스가 필요한 보류 중인 작업이 있거나 활성 인스턴스 수가 [`initial_queue_size`](cluster-definition.md#configuration-initial-queue-size) 설정보다 적은 경우 인스턴스를 교체하려고 AWS ParallelCluster 시도합니다. AWS ParallelCluster 에서 새 인스턴스를 프로비저닝할 수 없는 경우 새 인스턴스에 대한 요청이 주기적으로 반복됩니다.

## 시나리오 2: 단일 노드 작업을 실행하는 스팟 인스턴스가 중단됨
<a name="single-node"></a>

이 중단 동작은 사용 중인 스케줄러에 따라 다릅니다.

Slurm  
상태 코드 `NODE_FAIL`으로 작업이 실패하고, 작업이 다시 대기열에 들어갑니다(작업 제출 시 `--no-requeue`이 지정되지 않은 한). 노드가 정적 노드인 경우 해당 노드가 교체됩니다. 노드가 동적 노드인 경우 노드가 종료되고 재설정됩니다. `--no-requeue` 파라미터를 포함한 `sbatch`에 관한 자세한 내용은 Slurm 설명서**의 [https://slurm.schedmd.com/sbatch.html](https://slurm.schedmd.com/sbatch.html)를 참조하세요.  
이 동작은 AWS ParallelCluster 버전 2.9.0에서 변경되었습니다. 이전 버전에서는 상태 코드가 `NODE_FAIL`인 상태로 작업이 종료되었고 해당 노드는 스케줄러 대기열에서 제거되었습니다.

SGE  
이는 AWS ParallelCluster 버전 2.11.4까지의 버전에만 적용됩니다. 버전 2.11.5부터는 AWS ParallelCluster 가 SGE 또는 Torque 스케줄러의 사용을 지원하지 않습니다.
작업이 종료됩니다. 작업에서 `qsub -r yes` 또는 `qalter -r yes` 중 하나를 사용하여 재실행 플래그를 활성화했거나 대기열에 `rerun` 구성이 `TRUE`로 설정된 경우 작업이 다시 예약됩니다. 컴퓨팅 인스턴스가 스케줄러 대기열에서 제거됩니다. 이 동작은 다음 SGE 구성 파라미터에서 발생합니다.  
+ `reschedule_unknown 00:00:30`
+ `ENABLE_FORCED_QDEL_IF_UNKNOWN`
+ `ENABLE_RESCHEDULE_KILL=1`

Torque  
이는 AWS ParallelCluster 버전 2.11.4까지의 버전에만 적용됩니다. 버전 2.11.5부터는 AWS ParallelCluster 가 SGE 또는 Torque 스케줄러의 사용을 지원하지 않습니다.
작업이 시스템에서 제거되고 노드가 스케줄러에서 제거됩니다. 작업이 다시 실행되지 않습니다. 인스턴스가 중단되었을 때 인스턴스에서 여러 작업이 실행 중이면 노드 제거 중에 Torque가 시간 초과될 수 있습니다. 오류가 [`sqswatcher`](processes.md#sqswatcher) 로그 파일에 표시될 수 있습니다. 이는 규모 조정 로직에 영향을 주지 않으며 후속 재시도 시 적절하게 정리됩니다.

## 시나리오 3: 다중 노드 작업을 실행하는 스팟 인스턴스가 중단됨
<a name="multi-node"></a>

이 중단 동작은 사용 중인 스케줄러에 따라 다릅니다.

Slurm  
상태 코드 `NODE_FAIL`으로 작업이 실패하고, 작업이 다시 대기열에 들어갑니다(작업 제출 시 `--no-requeue`이 지정되지 않은 한). 노드가 정적 노드인 경우 해당 노드가 교체됩니다. 노드가 동적 노드인 경우 노드가 종료되고 재설정됩니다. 종료된 작업을 실행 중이었던 다른 노드는 구성된 [`scaledown_idletime`](scaling-section.md#scaledown-idletime) 시간이 경과한 후에 다른 대기 중인 작업에 할당되거나 스케일 다운될 수 있습니다.  
이 동작은 AWS ParallelCluster 버전 2.9.0에서 변경되었습니다. 이전 버전에서는 상태 코드가 `NODE_FAIL`인 상태로 작업이 종료되었고 해당 노드는 스케줄러 대기열에서 제거되었습니다. 종료된 작업을 실행 중이었던 다른 노드는 구성된 [`scaledown_idletime`](scaling-section.md#scaledown-idletime) 시간이 경과한 후에 스케일 다운될 수 있습니다.

SGE  
이는 AWS ParallelCluster 버전 2.11.4까지의 버전에만 적용됩니다. 버전 2.11.5부터는 AWS ParallelCluster 가 SGE 또는 Torque 스케줄러의 사용을 지원하지 않습니다.
작업이 종료되지 않고 나머지 노드에서 계속 실행됩니다. 컴퓨팅 노드는 스케줄러 대기열에서 제거되지만 호스트 목록에 분리되어 사용할 수 없는 노드로 표시됩니다.  
이 경우 사용자는 작업을 삭제해야 합니다(`qdel <jobid>`). 노드는 AWS ParallelCluster에는 영향을 주지 않지만 호스트 목록(`qhost`)에 계속 표시됩니다. 목록에서 호스트를 제거하려면 인스턴스를 교체한 후 다음 명령을 실행하세요.  

```
sudo -- bash -c 'source /etc/profile.d/sge.sh; qconf -dattr hostgroup hostlist <hostname> @allhosts; qconf -de <hostname>'
```

Torque  
이는 AWS ParallelCluster 버전 2.11.4까지의 버전에만 적용됩니다. 버전 2.11.5부터는 AWS ParallelCluster 가 SGE 또는 Torque 스케줄러의 사용을 지원하지 않습니다.
작업이 시스템에서 제거되고 노드가 스케줄러에서 제거됩니다. 작업이 다시 실행되지 않습니다. 인스턴스가 중단되었을 때 인스턴스에서 여러 작업이 실행 중이면 노드 제거 중에 Torque가 시간 초과될 수 있습니다. 오류가 [`sqswatcher`](processes.md#sqswatcher) 로그 파일에 표시될 수 있습니다. 이는 규모 조정 로직에 영향을 주지 않으며 후속 재시도 시 적절하게 정리됩니다.

스팟 인스턴스에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [스팟 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html)를 참조하세요.