

# スポットリクエストの状態変化
<a name="spot-instances-request-status-lifecycle"></a>

次の図は申請から終了まで、スポットリクエストがライフサイクル全体を通してたどり得る経路を示しています。各ステップはノードとして表現され、各ノードのステータスコードはスポットリクエストおよびスポットインスタンスのステータスを示します。

![スポットインスタンスリクエストのライフサイクル。](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/spot-request-status-diagram.png)


**評価保留**  
スポットインスタンスリクエストを作成すると、リクエストパラメータのいずれかが無効な (`bad-parameters` ) 場合 を除き、そのリクエストは `pending-evaluation` 状態になります。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
| pending-evaluation | open | 該当しない | 
| bad-parameters | closed | 該当しない | 

**保持**  
1 つ以上のリクエストによる制約が有効であるが、まだ満足することができない場合や、容量が十分ではない場合、リクエストは制約が満たされるまで待機する保持状態になります。リクエストのオプションはリクエストが受理される可能性に影響します。例えば、キャパシティがない場合、キャパシティが利用可能になるまでリクエストは保留状態になります。アベイラビリティーゾーングループを指定する場合、アベイラビリティーゾーンの制約が満たされるまで、リクエストは保持状態になります。

いずれかのアベイラビリティーゾーンが停止した場合、他のアベイラビリティーゾーンのスポットインスタンスリクエストで使用可能な予備の EC2 容量が、影響を受ける可能性があります。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
| capacity-not-available | open | 該当しない | 
| price-too-low | open | 該当しない | 
| not-scheduled-yet | open | 該当しない | 
| launch-group-constraint | open | 該当しない | 
| az-group-constraint | open | 該当しない | 
|  placement-group-constraint  |  open  | 該当しない | 
|  constraint-not-fulfillable  |  open  | 該当しない | 

**評価保留/受理終了**  
特定の期間のみ有効なスポットインスタンスリクエストを作成し、そのリクエストが受理保留段階に到達する前に有効期間が経過した場合、 そのリクエストは `terminal` 状態になることがあります。これはお客様がリクエストをキャンセルした場合、またはシステムエラーが発生した場合にも発生する場合があります。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
|  schedule-expired  |  cancelled  | 該当しない | 
|  canceled-before-fulfillment ¹  |  cancelled  | 該当しない | 
|  bad-parameters  |  failed  | 該当しない | 
|  system-error  |  closed  | 該当しない | 

¹ リクエストをキャンセルする場合。

**受理保留**  
指定した制約条件 (もしあれば) が満たされると、スポットリクエストは `pending-fulfillment` ステータスになります。

この時点で、Amazon EC2 は要求されたインスタンスを提供するよう準備します。この段階でプロセスが停止した場合はスポットインスタンスが起動される前に、ユーザーがリクエストをキャンセルしたことが原因である可能性があります。または予期しないシステムエラーが発生したことが原因である可能性もあります。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
|  pending-fulfillment  |  open  | 該当しない | 

**受理済み**  
スポットインスタンスの仕様がすべて満たされると、スポットリクエストが受理されます。Amazon EC2 がスポットインスタンスを起動しますが、これには数分かかる場合があります。中断状態にあるスポットインスタンスが、休止または停止された場合、リクエストが再度受理できるようになるかキャンセルされるまで同じ状態が維持されます。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
|  fulfilled  |  active  |  pending → running  | 
|  fulfilled  |  active  |  stopped → running  | 

スポットインスタンスを停止すると、そのインスタンスを再起動できるようになるか、リクエストがキャンセルされるまで、スポットリクエストは `marked-for-stop` または `instance-stopped-by-user` 状態になります。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
|  marked-for-stop  | active |  stopping  | 
|  instance-stopped-by-user ¹  |  disabled または cancelled²  |  stopped  | 

¹ スポットインスタンスを停止するか、そのインスタンスからシャットダウンコマンドを実行すると、インスタンスは `instance-stopped-by-user` 状態になります。インスタンスを停止した後はインスタンスを再起動できるようになります。再起動時に、スポットインスタンスリクエストは `pending-evaluation` 状態に戻り、制約事項が満たされると Amazon EC2 によって新しいスポットインスタンスが起動されます。

² スポットインスタンスを停止して、リクエストをキャンセルしていない場合にはスポットリクエストの状態は `disabled` になります。スポットインスタンスが停止しており、リクエストの有効期限が切れている場合、リクエストの状態は `cancelled` になります。

**受理済み終了**  
インスタンスタイプで使用可能なキャパシティがあり、お客様がインスタンスを終了しない限り、スポットインスタンスの実行は続行されます。Amazon EC2 でスポットインスタンスを終了する必要がある場合、スポットリクエストは終了状態になります。リクエストはお客様がスポットリクエストをキャンセルした場合や、スポットインスタンス を終了した場合も、終了状態になります。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
|  request-canceled-and-instance-running  |  cancelled  |  running  | 
|  marked-for-stop  |  active  |  running  | 
|  marked-for-termination  |  active  |  running  | 
|  instance-stopped-by-price  |  disabled  |  stopped  | 
|  instance-stopped-by-user  |  disabled  |  stopped  | 
|  instance-stopped-no-capacity  |  disabled  |  stopped  | 
|  instance-terminated-by-price  |  closed (ワンタイム)、open (永続)  |  terminated  | 
|  instance-terminated-by-schedule  |  closed  |  terminated  | 
|  instance-terminated-by-service  |  cancelled  |  terminated  | 
|  instance-terminated-by-user  |  closed または cancelled¹  |  terminated  | 
|  instance-terminated-no-capacity  |  closed (ワンタイム)、open (永続)  |  running †  | 
|  instance-terminated-no-capacity  |  closed (ワンタイム)、open (永続)  |  terminated  | 
|  instance-terminated-launch-group-constraint  |  closed (ワンタイム)、open (永続)  |  terminated  | 

¹ インスタンスを終了したが、リクエストをキャンセルしていない場合、リクエストの状態は `closed` になります。インスタンスを終了し、リクエストをキャンセルする場合、リクエストの状態は `cancelled` になります。スポットリクエストをキャンセルする前にスポットインスタンスを終了した場合でも、そのスポットインスタンスの終了が Amazon EC2 によって検出されるまでに遅延が生じることがあります。この場合、リクエストの状態は `closed` または `cancelled` となります。

† Amazon EC2 が容量を戻す必要がある場合にスポットインスタンスに割り込み、かつ**、インスタンスが割り込み時に終了**するように設定されている場合、ステータスはすぐに `instance-terminated-no-capacity` に設定されます (`marked-for-termination` には設定されていません)。ただし、インスタンスはインスタンスがスポットインスタンスの中断通知を受信した 2 分間を反映して、2 分間 `running` 状態のままになります。2 分後、インスタンスの状態は `terminated` に設定されます。

**中断実験**  
AWS Fault Injection Service を使用してスポットインスタンスの中断を開始すると、スポットインスタンス上のアプリケーションがどのように応答するかをテストできます。AWS FIS がスポットインスタンスを停止すると、スポットリクエストは `marked-for-stop-by-experiment` 状態になり、次に `instance-stopped-by-experiment` 状態になります。AWS FIS によってスポットインスタンスが終了した場合、スポットリクエストは `instance-terminated-by-experiment` 状態になります。詳細については「[スポットインスタンスを中断させる](initiate-a-spot-instance-interruption.md)」を参照してください。


| ステータスコード | リクエストの状態 | インスタンスの状態 | 
| --- | --- | --- | 
| marked-for-stop-by-experiment | active | running | 
| instance-stopped-by-experiment | disabled | stopped | 
| instance-terminated-by-experiment | closed | terminated | 

**永続リクエスト**  
スポットリクエストが永続リクエストであり、関連するスポットインスタンスが (ユーザーまたは Amazon EC2 によって) 終了された場合にはそのリクエストは `pending-evaluation` 状態に戻るので、制約事項が満たされた後に Amazon EC2 は新しいスポットインスタンスを起動できます。