スポットインスタンスリクエストのステータスを取得する
スポットインスタンスリクエストを追跡し、スポットインスタンスの使用を計画するにはAmazon EC2 によって提供されるリクエストステータスを使用します。例えば、リクエストステータスによって、スポットリクエストがまだ受理されていない理由や、スポットリクエストの受理を妨げている制約の一覧を確認できます。
このプロセスの各ステップ (スポットリクエストのライフサイクルとも呼ばれる) では特定のイベントによって後続のリクエスト状態が決まります。
次の図にスポットインスタンスリクエストが動作する様子を示します。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 EBS ユーザーガイド」の「Quotas for 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 サポート にお問い合わせください。
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-0e54a519c9EXAMPLE",
"instance-id": "i-1234567890abcdef0"
}
}
詳細については「Amazon EventBridge ユーザーガイド」を参照してください。