スポットインスタンスリクエストのステータスを取得する - Amazon Elastic Compute Cloud

スポットインスタンスリクエストのステータスを取得する

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

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

次の図にスポットインスタンスリクエストが動作する様子を示します。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 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-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 ユーザーガイド」を参照してください。