

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# スポットインスタンスの操作
<a name="spot"></a>

AWS ParallelCluster クラスター設定で [`cluster_type`](cluster-definition.md#cluster-type) = spot が設定されている場合、 はスポットインスタンスを使用します。スポットインスタンスはオンデマンドインスタンスよりも費用対効果が高いが、中断される可能性があります。中断の効果は、使用する特定のスケジューラによって異なります。これは、Amazon EC2 *がスポットインスタンスを停止または終了するまで 2 分間の警告を提供するスポットインスタンスの中断通知*を活用するのに役立ちます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[スポットインスタンスの中断](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html)」を参照してください。以下のセクションでは、スポットインスタンスを中断できる 3 つのシナリオについて説明します。

**注記**  
スポットインスタンスを使用するには、お客様のアカウントに `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 のドキュメント」*の [「sbatch」](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 スケジューラの使用をサポートしていません。
ジョブがシステムから削除され、ノードがスケジューラから削除されます。ジョブは再実行されません。中断時にインスタンス上で複数のジョブが実行されている場合、ノードの削除中にトルクがタイムアウトすることがあります。[`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>}}`)。ノードは引き続きホストリスト (`qhost`) に表示されますが、 AWS ParallelClusterに影響はありません。リストからホストを削除するには、インスタンスを置き換えた後に次のコマンドを実行します。  

```
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 スケジューラの使用をサポートしていません。
ジョブがシステムから削除され、ノードがスケジューラから削除されます。ジョブは再実行されません。中断時にインスタンス上で複数のジョブが実行されている場合、ノードの削除中にトルクがタイムアウトすることがあります。[`sqswatcher`](processes.md#sqswatcher) ログファイルにエラーが表示されることがあります。これはスケーリングロジックには影響せず、その後の再試行によって適切なクリーンアップが実行されます。

スポットインスタンスの詳細については、「*Amazon EC2 ユーザーガイド*」の「[スポットインスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html)」を参照してください。