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