

# スポットインスタンスリクエストを作成する
<a name="spot-requests"></a>

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

オンデマンドインスタンスを起動するのと同じ方法で、Amazon EC2 コンソールの [インスタンス起動ウィザード](ec2-launch-instance-wizard.md) または [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) マンドを使用してスポットインスタンスをリクエストできます。このメソッドは以下の理由でのみ推奨されます。
+ すでに [インスタンスの起動ウィザード](ec2-launch-instance-wizard.md) または [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用してオンデマンドインスタンスを起動しており、単一のパラメータを変更することでスポットインスタンスの起動に変更したいだけです。
+ 異なるインスタンスタイプを持つ複数のインスタンスは必要ありません。

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

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

------
#### [ Console ]<a name="create-spot-instance-request-console-procedure"></a>

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

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

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 画面上部のナビゲーションバーで、リージョンを選択してください。

1. Amazon EC2 コンソールダッシュボードで、[**インスタンスを起動**] を選択してください。

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

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

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

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

1. **[Application and OS Images (Amazon マシンイメージ)]** (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、インスタンスのオペレーティングシステム (OS) を選択してから、AMI を選択してください。詳細については「[アプリケーションと OS イメージ (Amazon マシンイメージ)](ec2-instance-launch-parameters.md#liw-ami)」を参照してください。

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

1. **[Key pair (login)]** (キーペア (ログイン)) で、既存のキーペアを選択するか、**[Create new key pair]** (新しいキーペアを作成) を選択して新しいキーペアを作成します。詳細については「[Amazon EC2 のキーペアと Amazon EC2 インスタンス](ec2-key-pairs.md)」を参照してください。
**重要**  
[**Proceed without key pair**] (キーペアなしで進む) オプションを選択した場合 (非推奨)、ユーザーが別の方法でログインすることを許可するように設定された AMI を選択した場合でなければ、インスタンスに接続できなくなります。

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

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

   詳細については「[ネットワーク設定](ec2-instance-launch-parameters.md#liw-network-settings)」を参照してください。

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

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

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

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

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

      1. **[Maximum price]** (最大価格): スポット価格でスポットインスタンスをリクエストするか、オンデマンド価格を上限とするか、支払う金額の最大額を指定できます。
**警告**  
最大料金を指定すると、**[No maximum price]** (最大料金なし) を選択した場合よりもインスタンスが頻繁に中断されます。  
上限の料金を指定する場合は、0.001 USD 以上にする必要があります。0.001 USD 未満の値を指定すると、起動が失敗します。
         + **[No maximum price]** (最大価格なし): スポットインスタンスは現在のスポット価格で起動します。価格はオンデマンド価格を超えることはありません。(推奨)
         + **[Set your maximum price (per instance/hour)]** (最大価格を設定 (インスタンス / 時間あたり): 支払う意思のある最大金額を指定できます。
           + 現在のスポット価格よりも低い最大価格を指定すると、スポットインスタンスは起動しません。
           + 現在のスポット料金よりも高い最大料金を指定すると、スポットインスタンスが起動し、現在のスポット料金で請求されます。スポットインスタンスの実行後、スポット価格が最大価格を超えると、Amazon EC2 がスポットインスタンスを中断します。
           + 指定した上限料金にかかわらず、常に現在のスポット料金が請求されます。

           スポット料金の傾向を確認するには[スポットインスタンスの料金履歴の表示](using-spot-instances-history.md)を参照してください。

      1. **[Request type]** (リクエストタイプ): 選択したスポットインスタンスリクエストタイプによって、スポットインスタンスが中断された場合に何が発生するかが決まります。
         + **[One-time]** (ワンタイム): Amazon EC2 はスポットインスタンスに対して 1 回限りのリクエストを送信します。スポットインスタンスが中断された場合、リクエストは再送信されません。
         + **[Persistent request]** (永続リクエスト): Amazon EC2 はスポットインスタンスに対して永続リクエストを送信します。スポットインスタンスが中断された場合、要求は再送信され、中断されたスポットインスタンスを補充します。

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

      1. **[有効期間終了]**: *永続的な*スポットインスタンスリクエストの有効期限。

         このフィールドは1 回限りのリクエストではサポートされていません。*ワンタイム*リクエストは、リクエストのすべてのインスタンスが起動するか、ユーザーがリクエストをキャンセルするまで有効です。
         + **[No request expiry date]** (リクエストの有効期限なし): リクエストはキャンセルされるまで有効です。
         + **[Set your request expiry date]** (リクエストの有効期限を設定する): 永続的なリクエストは指定した日付まで、またはキャンセルするまで有効です。

      1. **[Interruption behavior]** (中断動作): 選択した動作によって、スポットインスタンスが中断されたときに何が起こるかが決まります。
         + 永続的なリクエストの場合、有効な値は **[Stop]** (停止) と **[Hibernate]** (休止) です。インスタンスが停止すると、EBS ボリュームストレージの料金が適用されます。
**注記**  
スポットインスタンスはオンデマンドインスタンスと同じ休止機能を使用するようになりました。休止を有効にするにはここで **[休止]** を選択するか、インスタンス起動ウィザードの下部に表示される **[停止 – 休止動作]** フィールドから **[有効化]** を選択してください。休止の前提条件については「[EC2 インスタンスの休止の前提条件](hibernating-prerequisites.md)」を参照してください。
         + ワンタイムリクエストの場合、**[Terminate]** (終了) のみが有効です。

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

         詳細については「[スポットインスタンスの中断の動作](interruption-behavior.md)」を参照してください。

1. **[合計mary]** (概要) パネルの **[Number of instances]** (インスタンス数) に、起動するインスタンス数を入力してください。
**注記**  
Amazon EC2 が、スポットインスタンスごとに個別のリクエストを作成します。

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

1.  インスタンスを起動する準備ができたら、**[Launch instance]** (インスタンスの起動) を選択してください。

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

------
#### [ AWS CLI ]

**run-instances を使用してスポットインスタンスリクエストを作成するには**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用し、`--instance-market-options` パラメータでスポットインスタンスのオプションを次のように指定します。

```
--instance-market-options file://spot-options.json
```

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

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

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

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

**注記**  
[request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) コマンドを使用してスポットインスタンスをリクエストすることは強くお勧めしません。これは計画された投資がないレガシー API であるためです。詳細については「[使用すべき最適なスポットリクエスト方法はどれですか?](spot-best-practices.md#which-spot-request-method-to-use)」を参照してください。

ワンタイムリクエストを作成するには[request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) コマンドを使用します。

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

永続リクエストを作成するには[request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) を使用します。

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

以下のコマンドで使用する起動仕様ファイルの例については[スポットインスタンスリクエストでの起動仕様の例](spot-request-examples.md)を参照してください。起動仕様ファイルをスポットリクエストコンソールからダウンロードする場合は代わりに [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) コマンドを使用する必要があります (スポットリクエストコンソールはスポットフリートを使用してスポットインスタンスリクエストを指定します)。

------
#### [ PowerShell ]

**スポットインスタンスリクエストを作成する**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用し、`-InstanceMarketOption` パラメータを使ってスポットインスタンスオプションを指定します。

```
-InstanceMarketOptions $marketOptions
```

スポットインスタンスオプションのデータ構造を、次のように作成します。

```
$spotOptions = New-Object Amazon.EC2.Model.SpotMarketOptions
$spotOptions.SpotInstanceType="persistent"
$marketOptions = New-Object Amazon.EC2.Model.InstanceMarketOptionsRequest
$marketOptions.MarketType = "spot"
$marketOptions.SpotOptions = $spotOptions
```

------