スポットリクエストステータス - Amazon Elastic Compute Cloud

スポットリクエストステータス

スポットインスタンスリクエストを追跡し、スポットインスタンスの使用を計画するには、Amazon EC2 によって提供されるリクエストステータスを使用します。例えば、リクエストステータスによって、スポットリクエストがまだ受理されていない理由や、スポットリクエストの受理を妨げている制約の一覧を確認できます。

このプロセスの各ステップ (スポットリクエストのライフサイクルとも呼ばれる) では、特定のイベントによって後続のリクエスト状態が決まります。

スポットリクエストのライフサイクル

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


					スポットインスタンスリクエストのライフサイクル。
評価保留

スポットインスタンスリクエストを作成すると、リクエストパラメータのいずれかが無効な (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 pendingrunning
fulfilled active stoppedrunning

スポットインスタンスを停止すると、そのインスタンスを再起動できるようになるか、リクエストがキャンセルされるまで、スポットリクエストは 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 に設定されます。

永続リクエスト

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

リクエストステータス情報の取得

AWS Management Consoleまたはコマンドラインツールを使用して、リクエストステータス情報を取得できます。

リクエストステータス情報を取得するには (コンソール)
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Spot Requests] を選択し、スポットリクエストを選択します。

  3. ステータスを確認するには、[説明 ] タブの [ ステータス] フィールドをチェックします。

コマンドラインを使用してリクエストステータス情報を取得する

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

スポットリクエストコード

スポットリクエストステータス情報は、ステータスコード、更新時刻、およびステータスメッセージで構成されます。同時に、リクエスト入札ステータス情報は、スポットリクエストの処理を決定する場合にも役に立ちます。

スポットリクエストステータスコードは、次のとおりです。

az-group-constraint

Amazon EC2 は、同じアベイラビリティーゾーンでお客様が要求したインスタンスをすべて起動できるとは限りません。

bad-parameters

スポットリクエストの 1 つ以上のパラメータが有効ではありません (例えば、指定した AMI が存在していません)。ステータスメッセージによって、どのパラメータが無効かを確認できます。

canceled-before-fulfillment

スポットリクエストが受理される前にユーザーがスポットリクエストをキャンセルしました。

capacity-not-available

要求したインスタンスに使用できる十分な容量が存在しません。

constraint-not-fulfillable

1 つ以上の制約条件が有効ではないため、スポットリクエストを受理できません (例えば、アベイラビリティーゾーンが存在していません)。ステータスメッセージによって、どの制約条件が無効かを確認できます。

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

起動グループ内のインスタンスの 1 つ以上が終了したため、起動グループの制約条件が満たされなくなりました。

instance-terminated-no-capacity

標準的な容量管理プロセスにより、インスタンスは終了しました。

launch-group-constraint

Amazon EC2 は、お客様が同時に要求したインスタンスをすべて起動できるわけではありません。同じ起動グループ内のインスタンスはすべて、同時に起動されて同時に終了します。

limit-exceeded

EBS ボリューム数または合計ボリュームストレージの上限を超えました。これらの制限および増加を要求する方法の詳細については、「Amazon Web Services 全般のリファレンス」の「Amazon EBS の制限」を参照してください。

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 スポットインスタンスリクエストのフルフィルメントイベント

スポットインスタンスリクエストが受理されると、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-1a2b3c4d", "instance-id": "i-1234567890abcdef0" } }

詳細については、「Amazon EventBridge ユーザーガイド」を参照してください。