

# スポットインスタンス のしくみ
<a name="how-spot-instances-work"></a>

スポットインスタンスを起動するにはユーザーが*スポットインスタンスリクエスト*を作成します。またはAmazon EC2 が自動的にスポットインスタンスリクエストを作成することもできます。スポットインスタンスはスポットインスタンスリクエストが受理されると起動します。

スポットインスタンスはいくつかの異なるサービスを使用して起動できます。詳細については[Amazon EC2 スポットインスタンスの開始方法](https://aws.amazon.com/ec2/spot/getting-started/)を参照してください。このユーザーガイドではEC2 を使用してスポットインスタンスを起動する方法について説明します。
+ スポットインスタンスリクエストはAmazon EC2 コンソールの [インスタンス起動ウィザード](ec2-launch-instance-wizard.md) または [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用して作成できます。詳細については「[スポットインスタンスを管理する](using-spot-instances-request.md)」を参照してください。
+ EC2 フリートを作成して、必要な数のスポットインスタンスを指定することができます。Amazon EC2 はEC2 フリートで指定されているすべてのスポットインスタンスについて、ユーザーに代わってスポットインスタンスリクエストを作成します。詳細については[EC2 フリートの作成](create-ec2-fleet.md)を参照してください。
+ スポットフリートリクエストを作成し、必要な数のスポットインスタンスを指定することができます。Amazon EC2 はスポットフリートリクエストで指定されたスポットインスタンスごとに、ユーザーに代わってスポットインスタンスリクエストを作成します。詳細については、「[スポットフリートを作成する](create-spot-fleet.md)」を参照してください。
**注記**  
スポットフリートは、計画された投資なしでレガシー API を使用します。代わりに EC2 フリートまたは Auto Scaling グループを使用することをお勧めします。詳細については、「[フリートにどの方法を使用するのが最適か](which-fleet-method-to-use.md)」を参照してください。

空きキャパシティがある場合、スポットインスタンスが起動します。スポットインスタンスはユーザーにより停止または終了されるか、Amazon EC2 により中断 (*スポットインスタンスの中断*と呼ばれます) されるまで実行されます。Amazon EC2 はスポットインスタンスを中断する際に、そのインスタンスを停止、終了、または休止状態にすることができます。

スポットインスタンスを使用する場合には中断に備えておく必要があります。スポットインスタンスの需要が増加した場合や、スポットインスタンスの供給が減少した場合、Amazon EC2 がスポットインスタンスを中断する可能性があります。Amazon EC2 によりスポットインスタンスが中断される際にはスポットインスタンスの中断通知が送信されます。それによりインスタンスに対して、Amazon EC2 による中断が発生する 2 分前の警告が提供されます。スポットインスタンス の削除保護を有効にすることはできません。詳細については「[スポットインスタンスの中断。](spot-interruptions.md)」を参照してください。

**Topics**
+ [スポットインスタンスリクエストの状態](#creating-spot-request-status)
+ [起動グループでの スポットインスタンス の起動](#spot-launch-group)
+ [アベイラビリティーゾーングループでの スポットインスタンス の起動](#spot-az-group)
+ [VPC での スポットインスタンス の起動](#concepts-spot-instances-vpcs)
+ [バーストパフォーマンスインスタンスを起動する](#burstable-spot-instances)
+ [シングルテナントハードウェアで起動する](#spot-instance-tenancy)

## スポットインスタンスリクエストの状態
<a name="creating-spot-request-status"></a>

スポットインスタンスリクエストは次に示すいずれかの状態を取ります。
+ `open` – リクエストは受理されるまで待機状態です。
+ `active` – リクエストは受理されており、関連付けられたスポットインスタンスが存在します。
+ `failed` – リクエストの 1 つ以上のパラメータが正しくありません。
+ `closed` – スポットインスタンスは中断または終了されました。
+ `disabled` – スポットインスタンスがユーザーにより停止されました。
+ `cancelled` – このリクエストはユーザーによりキャンセルされたか、リクエストの有効期限が切れました。

次の図は リクエストの状態の遷移を示しています。遷移はリクエストのタイプ (ワンタイムまたは永続) によって異なります。

![スポットインスタンスリクエストの状態。](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/spot_request_states.png)


ワンタイムスポットインスタンスリクエストはAmazon EC2 がスポットインスタンスを起動するか、リクエストの有効期限が切れるか、またはユーザーがリクエストをキャンセルするまでアクティブ状態を維持します。利用できるキャパシティがない場合、スポットインスタンスは終了し、スポットインスタンスのリクエストは終了します。

永続スポットインスタンスリクエストはリクエストが受理された後も、リクエストの有効期限が切れるかユーザーによりキャンセルされるまで、アクティブ状態を維持します。キャパシティを利用できない場合はスポットインスタンスが中断されます。インスタンスが中断された後に、キャパシティが再び利用可能になると、スポットインスタンスが開始 (停止している場合)、あるいは再開 (休止状態の場合) されます。スポットインスタンスは停止して、キャパシティを利用できるようになったとき再び開始することができます。スポットインスタンスが (停止状態にあるか実行状態にあるかに関係なく) 終了した場合にはスポットインスタンスリクエストが再び開かれ、Amazon EC2 により新しいスポットインスタンスが起動されます。詳細については[スポットインスタンスを停止する](using-spot-instances-request.md#stopping-a-spot-instance)、[スポットインスタンスを開始する](using-spot-instances-request.md#starting-a-spot-instance)、および[スポットインスタンスを終了する](using-spot-instances-request.md#terminating-a-spot-instance)を参照してください。

スポットインスタンスリクエストの状態と、起動済みのスポットインスタンスのステータスを追跡することができます。詳細については「[スポットインスタンスリクエストのステータスを取得する](spot-request-status.md)」を参照してください。

## 起動グループでの スポットインスタンス の起動
<a name="spot-launch-group"></a>

スポットインスタンスリクエストで起動グループを指定することによって、一連のスポットインスタンスのすべてが起動可能な場合にのみ、それらを起動するよう、Amazon EC2 に指示することができます。また、スポットサービスで、起動グループ内のインスタンスのいずれかを終了する必要がある場合、すべてのインスタンスを終了することが必要となります。ただし、お客様が起動グループ内の 1 つ以上のインスタンスを終了する場合、Amazon EC2 は起動グループ内のその他のインスタンスを終了しません。

このオプションは便利な場合もありますが、この制約を追加することによって、スポットインスタンスリクエストが受理される可能性は低くなるので、スポットインスタンスが終了される可能性が高まります。例えば、起動グループに複数のアベイラビリティーゾーンのインスタンスが含まれるとします。これらのアベイラビリティーゾーンのいずれかのキャパシティーが減少して使用できなくなった場合、Amazon EC2 は起動グループのすべてのインスタンスを終了します。

以前に成功したリクエストと同じ (既存の) 起動グループを指定することで、新たに正常なスポットインスタンスリクエストを作成する場合には新しいインスタンスがこの起動グループに追加されます。したがって、この起動グループ内のインスタンスが終了されると、起動グループ内のすべてのインスタンスが終了します。これには最初のリクエストと 2 番目リクエストによって起動されたすべてのインスタンスが含まれます。

## アベイラビリティーゾーングループでの スポットインスタンス の起動
<a name="spot-az-group"></a>

スポットインスタンスリクエストでアベイラビリティーゾーングループを指定し、そのアベイラビリティーゾーン内で一連のスポットインスタンスを起動するように Amazon EC2 に指示します。Amazon EC2 はアベイラビリティーゾーングループのすべてのインスタンスを同時に中断する必要はありません。Amazon EC2 がアベイラビリティーゾーングループ内のいずれかのインスタンスを中断する場合、他のインスタンスはそのまま実行されます。

このオプションは便利な場合もありますが、この制約を追加することによって、スポットインスタンスリクエストが受理される可能性は低くなります。

アベイラビリティーゾーングループを指定したものの、スポットインスタンスリクエストでアベイラビリティーゾーンを指定していない場合の結果は使用するネットワークによって異なります。

**デフォルト VPC**  
Amazon EC2 は指定されたサブネットのアベイラビリティーゾーンを使用します。サブネットを指定しなかった場合はアベイラビリティーゾーンとそのデフォルトのサブネットが選択されますが、最低価格のゾーンではない可能性があります。アベイラビリティーゾーンのデフォルトのサブネットを削除した場合は別のサブネットを指定する必要があります。

**デフォルトではない VPC**  
Amazon EC2 は指定されたサブネットのアベイラビリティーゾーンを使用します。

## VPC での スポットインスタンス の起動
<a name="concepts-spot-instances-vpcs"></a>

スポットインスタンス のサブネットを指定するのと同じ方法で、オンデマンドインスタンス のサブネットを指定します。
+ [デフォルトの VPC] 特定の低価格のアベイラビリティーゾーンでスポットインスタンスを起動したい場合には対応するサブネットをスポットインスタンスリクエスト内で指定する必要があります。サブネットを指定しなかった場合、Amazon EC2 によってサブネットが選択されますが、このサブネットのアベイラビリティーゾーンのスポット料金は最低ではない可能性があります。
+ [デフォルト以外の VPC] スポットインスタンスのサブネットを指定する必要があります。

## バーストパフォーマンスインスタンスを起動する
<a name="burstable-spot-instances"></a>

T インスタンスタイプは[バーストパフォーマンスインスタンス](burstable-performance-instances.md)です。バーストパフォーマンスインスタンスタイプを使用してスポットインスタンスを起動し、CPU クレジットを蓄積するアイドル時間なしでバーストパフォーマンススポットインスタンスをすぐに短時間使用する場合は支払いコストが高くなるのを避けるために、インスタンスを[標準モード](burstable-performance-instances-standard-mode.md)で起動することをお勧めします。バーストパフォーマンス スポットインスタンス を [Unlimited モード](burstable-performance-instances-unlimited-mode.md) で起動し、すぐに CPU をバーストさせると、余分なクレジットがバーストに消費されます。インスタンスを短時間使用する場合、インスタンスは余分なクレジットに見合うだけの CPU クレジットを蓄積する時間がないため、インスタンスの終了時に余分なクレジットに対して課金されます。

Unlimited モードがバーストパフォーマンス スポットインスタンス に適しているのはバースト用の CPU クレジットが蓄積されるまで、そのインスタンスが十分に長く実行される場合のみです。それ以外の場合は余分なクレジットを支払う必要があるため、バーストパフォーマンス スポットインスタンス は他のインスタンスよりも、使用コストが高くなります。詳細については「[Unlimited モードと固定 CPU を使用する場合](burstable-performance-instances-unlimited-mode-concepts.md#when-to-use-unlimited-mode)」を参照してください。

T2 インスタンスは[標準モード](burstable-performance-instances-standard-mode.md)で設定すると、[起動クレジット](burstable-performance-instances-standard-mode-concepts.md#launch-credits)を取得します。T2 インスタンスは起動クレジットを取得できる唯一のバーストパフォーマンスインスタンスです。起動クレジットはインスタンスを構成するために十分なコンピューティングリソースを提供し、T2 インスタンスの初期起動を効率的に実現することを意図しています。T2 インスタンスの起動を繰り返して新しい起動クレジットにアクセスすることは許可されていません。CPU が持続的に必要な場合、(一定期間のアイドリングにより) クレジットを獲得して T2 スポットインスタンス の [Unlimited モード](burstable-performance-instances-unlimited-mode.md)　を使用するか、専用 CPU を搭載したインスタンスタイプを使用します。

## シングルテナントハードウェアで起動する
<a name="spot-instance-tenancy"></a>

スポットインスタンスはシングルテナントのハードウェア上で実行できます。ハードウェア専有 スポットインスタンス は他の AWS アカウントに属するインスタンスからは物理的に分離されます。詳細については「[Amazon EC2 ハードウェア専有インスタンス](dedicated-instance.md)」および「[Amazon EC2 ハードウェア専有インスタンス](https://aws.amazon.com/ec2/pricing/dedicated-instances/)」を参照してください。

ハードウェア専有スポットインスタンスを使用するには次のいずれかを実行します。
+ スポットインスタンスリクエストを作成する際に、`dedicated` のテナンシーを指定します。詳細については[スポットインスタンスを管理する](using-spot-instances-request.md)を参照してください。
+ `dedicated` のインスタンステナンシーを持つ VPC 内で、スポットインスタンスをリクエストします。詳細については「[デフォルトのテナンシーで VPC に専有インスタンスを起動する](dedicatedinstancesintovpc.md)」を参照してください。インスタンステナンシーが `default` である VPC ではテナンシーが `dedicated` であるスポットインスタンスをリクエストすることはできません。

T インスタンスを除くすべてのインスタンスファミリーが、Dedicated スポットインスタンス をサポートしています。対象となるインスタンスファミリーにおいて、最大のインスタンスサイズまたはメタルサイズのみが、Dedicated スポットインスタンス をサポートします。