スポットリクエストステータス
スポットインスタンスリクエストを追跡し、スポットインスタンスの使用を計画するには、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
|
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
に設定されます。
永続リクエスト
スポットリクエストが永続リクエストであり、関連するスポットインスタンスが (ユーザーまたは Amazon EC2 によって) 終了された場合には、そのリクエストは pending-evaluation
状態に戻るので、制約事項が満たされた後に Amazon EC2 は新しいスポットインスタンスを起動できます。
リクエストステータス情報の取得
AWS Management Consoleまたはコマンドラインツールを使用して、リクエストステータス情報を取得できます。
リクエストステータス情報を取得するには (コンソール)
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[Spot Requests] を選択し、スポットリクエストを選択します。
-
ステータスを確認するには、[説明 ] タブの [ ステータス] フィールドをチェックします。
コマンドラインを使用してリクエストステータス情報を取得する
次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。
-
describe-spot-instance-requests (AWS CLI)
-
Get-EC2SpotInstanceRequest (AWS Tools for Windows PowerShell)
スポットリクエストコード
スポットリクエストステータス情報は、ステータスコード、更新時刻、およびステータスメッセージで構成されます。同時に、リクエスト入札ステータス情報は、スポットリクエストの処理を決定する場合にも役に立ちます。
スポットリクエストステータスコードは、次のとおりです。
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
-dd
Thh
:mm
:ss
Z",
"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 ユーザーガイド」を参照してください。