スポットインスタンスリクエストを作成する - Amazon Elastic Compute Cloud

スポットインスタンスリクエストを作成する

スポットインスタンスを使用するには、希望するインスタンス数、インスタンスタイプ、アベイラビリティーゾーンを含む、スポットインスタンスリクエストを作成します。キャパシティが利用可能になると、Amazon EC2 がすぐにリクエストを受理します。それ以外の場合、Amazon EC2 は、リクエストが受理できるようになるか、お客様がリクエストをキャンセルするまで待機します。

オンデマンドインスタンスを起動するのと同じ方法で、Amazon EC2 コンソールの インスタンス起動ウィザード またはr un-instances AWS CLI コマンドを使用してスポットインスタンスをリクエストできます。このメソッドは、以下の理由でのみ推奨されます。

  • すでに インスタンスの起動ウィザード または run-instances コマンドを使用してオンデマンドインスタンスを起動しており、単一のパラメータを変更することでスポットインスタンスの起動に変更したいだけです。

  • 異なるインスタンスタイプを持つ複数のインスタンスは、必要ありません。

複数のインスタンスタイプを指定することはできず、同じリクエストでスポットインスタンスとオンデマンドインスタンスを起動することはできないため、このメソッドは通常、スポットインスタンスの起動にはお勧めしません。複数のインスタンスタイプを持つスポットインスタンスとオンデマンドインスタンスを含むフリートの起動を含む、スポットインスタンスを起動するための推奨される方法については、「使用すべき最適なスポットリクエスト方法はどれですか?」を参照してください。

一度に複数のスポットインスタンスをリクエストした場合、 Amazon EC2 により個別のスポットインスタンスに対するリクエストが作成されるので、各リクエストのステータスを単独で追跡することが可能です。スポットインスタンスリクエストの追跡については、「スポットインスタンスリクエストのステータスを取得する」を参照してください。

Console
インスタンス起動ウィザードを使用してスポットインスタンスリクエストを作成するには

ステップ 1~9 は、オンデマンドインスタンスの起動に使用するステップと同じです。ステップ 10 で、スポットインスタンスリクエストを設定します。

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. 画面上部のナビゲーションバーで、リージョンを選択します。

  3. Amazon EC2 コンソールダッシュボードで、[インスタンスを起動] を選択します。

  4. (オプション) [Name and tags] (名前とタグ) で、インスタンスに名前を付け、スポットインスタンス要求、インスタンス、ボリューム、および Elastic Graphics にタグを付けることができます。タグの詳細については、「Amazon EC2 リソースのタグ付け」を参照してください。

    1. [Name] (名前) に、インスタンスのわかりやすい名前を入力します。

      インスタンス名はタグで、キーは [Name] (名前)、値は指定した名前です。名前を指定しない場合は、インスタンスをその ID で識別できます。ID は、インスタンスの起動時に自動的に生成されます。

    2. スポットインスタンスリクエスト、インスタンス、ボリューム、および Elastic Graphics にタグを付けするには、[Add additional tags] (タグを追加) を選択します。[Add tag] (タグを追加) を選択し、キーと値を入力し、タグ付けするリソースタイプを選択します。追加するタグごとに [Add tag] (タグを追加) を選択します。

  5. [Application and OS Images (Amazon Machine Image)] (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、インスタンスのオペレーティングシステム (OS) を選択してから、AMI を選択します。詳細については、「アプリケーションと OS イメージ (Amazon マシンイメージ)」を参照してください。

  6. [Instance type] (インスタンスタイプ) で、インスタンスのハードウェア設定とサイズの要件を満たすインスタンスタイプを選択します。詳細については、「インスタンスタイプ」を参照してください。

  7. [Key pair (login)] (キーペア (ログイン)) で、既存のキーペアを選択するか、[Create new key pair] (新しいキーペアを作成) を選択して新しいキーペアを作成します。詳細については、「Amazon EC2 のキーペアと Amazon EC2 インスタンス」を参照してください。

    重要

    [Proceed without key pair] (キーペアなしで進む) オプションを選択した場合 (非推奨)、ユーザーが別の方法でログインすることを許可するように設定された AMI を選択した場合でなければ、インスタンスに接続できなくなります。

  8. [Network settings] (ネットワーク設定) で、デフォルト設定を使用するか、[Edit] (編集) を選択して必要に応じてネットワーク設定を構成します。

    セキュリティグループはネットワーク設定の一部を形成し、インスタンスのファイアウォールルールを定義します。このルールでは、どの着信ネットワークトラフィックをインスタンスに配信するかを指定します。

    詳細については、「ネットワーク設定」を参照してください。

  9. 選択した AMI には、ルートデバイスボリュームを含む、1 つまたは複数のストレージボリュームが含まれます。[Configure storage] (ストレージの設定) で、[Add new volume] (新しいボリュームの追加) を選択して、インスタンスに接続する追加のボリュームを指定できます。詳細については、「ストレージの設定」を参照してください。

  10. [Advanced details] (高度な設定) で、スポットインスタンスリクエストを次のように設定します。

    1. [Purchasing option] (購入オプション) で、[Request Spot Instances] (スポットインスタンスのリクエスト) チェックボックスをオンにします。

    2. スポットインスタンスリクエストのデフォルト設定を維持するか、[Customize] (カスタマイズ) (右側) を選択して、スポットインスタンスリクエストのカスタム設定を指定できます。

      [Customize] (カスタマイズ) を選択すると、次のフィールドが表示されます。

      1. [Maximum price] (最大価格): スポット価格でスポットインスタンスをリクエストするか、オンデマンド価格を上限とするか、支払う金額の最大額を指定できます。

        警告

        最大料金を指定すると、[No maximum price] (最大料金なし) を選択した場合よりもインスタンスが頻繁に中断されます。

        • [No maximum price] (最大価格なし): スポットインスタンスは現在のスポット価格で起動します。価格はオンデマンド価格を超えることはありません。(推奨)

        • [Set your maximum price (per instance/hour)] (最大価格を設定 (インスタンス / 時間あたり): 支払う意思のある最大金額を指定できます。

          • 現在のスポット価格よりも低い最大価格を指定すると、スポットインスタンスは起動しません。

          • 現在のスポット料金よりも高い最大料金を指定すると、スポットインスタンスが起動し、現在のスポット料金で請求されます。スポットインスタンスの実行後、スポット価格が最大価格を超えると、Amazon EC2 がスポットインスタンスを中断します。

          • 指定した上限料金にかかわらず、常に現在のスポット料金が請求されます。

          スポット料金の傾向を確認するには、「スポットインスタンスの料金履歴」を参照してください。

      2. [Request type] (リクエストタイプ): 選択したスポットインスタンスリクエストタイプによって、スポットインスタンスが中断された場合に何が発生するかが決まります。

        • [One-time] (ワンタイム): Amazon EC2 は、スポットインスタンスに対して 1 回限りのリクエストを送信します。スポットインスタンスが中断された場合、リクエストは再送信されません。

        • [Persistent request] (永続リクエスト): Amazon EC2 は、スポットインスタンスに対して永続リクエストを送信します。スポットインスタンスが中断された場合、要求は再送信され、中断されたスポットインスタンスを補充します。

        値を指定しない場合、デフォルトは1回限りのリクエストです。

      3. [Valid to] (有効期限): 永続的な スポットインスタンスリクエストの有効期限日。

        このフィールドは、1 回限りのリクエストではサポートされていません。ワンタイムリクエストは、リクエストのすべてのインスタンスが起動するか、またはユーザーがリクエストをキャンセルするまで有効です。

        • [No request expiry date] (リクエストの有効期限なし): リクエストは、キャンセルされるまで有効です。

        • [Set your request expiry date] (リクエストの有効期限を設定する): 永続的なリクエストは、指定した日付まで、またはキャンセルするまで有効です。

      4. [Interruption behavior] (中断動作): 選択した動作によって、スポットインスタンスが中断されたときに何が起こるかが決まります。

        • 永続的なリクエストの場合、有効な値は [Stop] (停止) と [Hibernate] (休止) です。インスタンスが停止すると、EBS ボリュームストレージの料金が適用されます。

          注記

          スポットインスタンスはオンデマンドインスタンスと同じ休止機能を使用するようになりました。休止を有効にするには、ここで [休止] を選択するか、インスタンス起動ウィザードの下部に表示される [停止 – 休止動作] フィールドから [有効化] を選択します。休止の前提条件については、「Amazon EC2 インスタンスの休止の前提条件」を参照してください。

        • ワンタイムリクエストの場合、[Terminate] (終了) のみが有効です。

        値を指定していない場合、デフォルトは [Terminate] (終了) になり、これは、永続的なスポットインスタンスリクエストには無効です。デフォルトのままにして永続的なスポットインスタンスリクエストを起動しようとすると、エラーが発生します。

        詳細については、「スポットインスタンスの中断の動作」を参照してください。

  11. [Summary] (概要) パネルの [Number of instances] (インスタンス数) に、起動するインスタンス数を入力します。

    注記

    Amazon EC2 が、スポットインスタンスごとに個別のリクエストを作成します。

  12. [Summary] (概要) パネルで、インスタンスの詳細を確認し、必要な変更を加えます。スポットインスタンスリクエストを送信した後は、リクエストのパラメータを変更することはできません。[Summary] (概要) パネルでリンクを選択すると、インスタンスの起動ウィザードのセクションに直接移動できます。詳細については、「[概要]」を参照してください。

  13. インスタンスを起動する準備ができたら、[Launch instance] (インスタンスの起動) を選択します。

    インスタンスが起動しないか、状態が running ではなくすぐに terminated になる場合は、「Amazon EC2 インスタンスの起動に関する問題のトラブルシューティング」を参照してください。

AWS CLI
run-instances を使用してスポットインスタンスリクエストを作成するには

run-instances コマンドを使用し、--instance-market-options パラメータでスポットインスタンスのオプションを指定します。

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type t2.micro \ --count 5 \ --subnet-id subnet-08fc749671b2d077c \ --key-name MyKeyPair \ --security-group-ids sg-0b0384b66d7d692f9 \ --instance-market-options file://spot-options.json

--instance-market-options で JSON ファイルに指定するデータ構造は次のとおりです。ValidUntil、および InstanceInterruptionBehavior、を指定することもできます。データ構造でフィールドを指定しないと、デフォルト値が使用されます。

次のサンプルでは、persistent リクエストを作成します。

{ "MarketType": "spot", "SpotOptions": { "SpotInstanceType": "persistent" } }

 

request-spot-instances を使用してスポットインスタンスリクエストを作成するには

注記

request-spot-instances コマンドを使用してスポットインスタンスをリクエストすることは強くお勧めしません。これは、計画された投資がないレガシー API であるためです。詳細については、「使用すべき最適なスポットリクエスト方法はどれですか?」を参照してください。

ワンタイムリクエストを作成するには、request-spot-instances コマンドを使用します。

aws ec2 request-spot-instances \ --instance-count 5 \ --type "one-time" \ --launch-specification file://specification.json

永続リクエストを作成するには、request-spot-instances を使用します。

aws ec2 request-spot-instances \ --instance-count 5 \ --type "persistent" \ --launch-specification file://specification.json

以下のコマンドで使用する起動仕様ファイルの例については、「スポットインスタンスリクエストでの起動仕様の例」を参照してください。起動仕様ファイルをスポットリクエストコンソールからダウンロードする場合は、代わりに request-spot-fleet コマンドを使用する必要があります (スポットリクエストコンソールは、スポットフリートを使用してスポットインスタンスリクエストを指定します)。