

# スポットインスタンスを管理する
<a name="using-spot-instances-request"></a>

Amazon EC2 はキャパシティが利用可能であるときにスポットインスタンスを起動します。スポットインスタンスは中断されるか、ユーザーにより終了されるまで実行されます。

**Topics**
+ [

## スポットインスタンスの検索
](#using-spot-instances-running)
+ [

## 特定のリクエストで起動したインスタンスを検索する
](#find-request-spot-instances)
+ [

## スポットインスタンスを停止する
](#stopping-a-spot-instance)
+ [

## スポットインスタンスを開始する
](#starting-a-spot-instance)
+ [

## スポットインスタンスを終了する
](#terminating-a-spot-instance)

## スポットインスタンスの検索
<a name="using-spot-instances-running"></a>

スポットインスタンスはオンデマンドインスタンスとともに、コンソールの **[インスタンス]** ページに表示されます。以下の手順で、スポットインスタンスを検索します。

------
#### [ Console ]

**スポットインスタンスを検索するには**

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. すべてのスポットインスタンスを検索するには検索ペインで **[インスタンスライフサイクル=スポット]** を選択してください。

1. インスタンスがスポットインスタンスであることを確認するにはインスタンスを選択し、**[詳細]** タブを選択し、**[ライフサイクル]** の値を確認します。スポットインスタンスの値は `spot` で、オンデマンドインスタンスの値は `normal` です。

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

**スポットインスタンスを検索するには**  
次の [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用します。

```
aws ec2 describe-instances --filters "Name=instance-lifecycle,Values=spot"
```

**インスタンスがスポットインスタンスであるかどうかを確認するには**  
次の [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用します。

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[*].InstanceLifecycle" \
    --output text
```

出力が `spot` の場合、そのインスタンスはスポットインスタンスです。何も出力されない場合、インスタンスはオンデマンドインスタンスです。

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

**スポットインスタンスを検索するには**  
[Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) コマンドレットを使用します。

```
Get-EC2Instance -Filter @{Name="instance-lifecycle"; Values="spot"}
```

**インスタンスがスポットインスタンスであるかどうかを確認するには**  
[Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) コマンドレットを使用します。

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.InstanceLifecycle
```

出力が `Spot` の場合、そのインスタンスはスポットインスタンスです。何も出力されない場合、インスタンスはオンデマンドインスタンスです。

------

## 特定のリクエストで起動したインスタンスを検索する
<a name="find-request-spot-instances"></a>

次の手順に従って、特定のスポットインスタンスまたはスポットフリートリクエストから起動されたスポットインスタンスを検索します。

------
#### [ Console ]

**リクエストのスポットインスタンスを検索するには**

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

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。リストにはスポットインスタンスリクエストとスポットフリートリクエストの両方が含まれます。

1. スポットインスタンスリクエストが受理された場合、**[キャパシティ]** がスポットインスタンスの ID となります。スポットフリートの場合、[**容量**] はリクエストされた容量のうち受理された量を示します。スポットフリートのインスタンスの ID を表示するには拡張矢印を選択するか、フリートを選択した上で [**インスタンス**] を選択してください。

1. スポットフリートの場合、**[キャパシティ]** はリクエストされた容量のうち受理された量を示します。スポットフリート内のインスタンスの ID を表示するにはフリート ID を選択して詳細ページを開き、**[インスタンス]** ペインを見つけます。

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

**リクエストのスポットインスタンスを検索するには**  
次の [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) コマンドを使用します。

```
aws ec2 describe-spot-instance-requests \
    --spot-instance-request-ids sir-0e54a519c9EXAMPLE \
    --query "SpotInstanceRequests[*].{ID:InstanceId}"
```

出力例を次に示します。

```
[
    {
        "ID": "i-1234567890abcdef0"
    },
    {
        "ID": "i-0598c7d356eba48d7"
    }
]
```

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

**リクエストのスポットインスタンスを検索するには**  
[Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html) コマンドレットを使用します。

```
(Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).InstanceId
```

------

## スポットインスタンスを停止する
<a name="stopping-a-spot-instance"></a>

スポットインスタンスを今すぐ必要とはしないが、Amazon EBS ボリューム内に保持されているデータを失うことなく、後でこれを再起動する必要がある場合は、これを停止できます。スポットインスタンスを停止する手順はオンデマンドインスタンスを停止する手順と似ています。

**注記**  
スポットインスタンスが停止している間、そのインスタンスの属性の一部は変更可能ですが、インスタンスタイプを変更することはできません。  
停止しているスポットインスタンスの使用料またはデータ転送料は課金されませんが、Amazon EBS ボリュームのストレージに対しては課金されます。

**制限事項**
+ スポットインスタンスを停止できるのはそのインスタンスが、`persistent` なスポットインスタンスリクエストから起動された場合だけです。
+ 関連するスポットインスタンスリクエストがキャンセルされている場合はスポットインスタンス を停止することはできません。スポットインスタンスリクエストがキャンセルされた場合はスポットインスタンスを終了することのみ可能です。
+ フリート、起動グループ、またはアベイラビリティーゾーングループの一部であるスポットインスタンスは停止できません。

------
#### [ Console ]

**スポットインスタンスを停止するには**

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. スポットインスタンスを選択してください。スポットインスタンスのインスタンス ID を保存しなかった場合は「[スポットインスタンスの検索](#using-spot-instances-running)」を参照してください。

1. [**Instance state (インスタンスの状態)**]、[**Stop instance (インスタンスの停止)**] の順に選択してください。

1. 確認を求められたら、[**Stop**] を選択してください。

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

**スポットインスタンスを停止するには**  
スポットインスタンスを手動で停止するには[stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) コマンドを使用します。

```
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
```

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

**スポットインスタンスを停止するには**  
[Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) コマンドレットを使用します。

```
Stop-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## スポットインスタンスを開始する
<a name="starting-a-spot-instance"></a>

以前に停止したスポットインスタンスは開始することができます。

**前提条件**

スポットインスタンスは次の場合にのみ開始できます。
+ スポットインスタンスを手動で停止している。
+ スポットインスタンスが EBS-backed インスタンスである。
+ スポットインスタンスに使用可能な容量がある。
+ スポット料金が上限価格より低くなっている。

**制限事項**
+ フリート、起動グループ、またはアベイラビリティーゾーングループの一部であるスポットインスタンスを開始することはできません。

スポットインスタンスを開始する手順はオンデマンドインスタンスを開始する手順と似ています。

------
#### [ Console ]

**スポットインスタンスを開始するには**

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. スポットインスタンスを選択してください。スポットインスタンスのインスタンス ID を保存しなかった場合は「[スポットインスタンスの検索](#using-spot-instances-running)」を参照してください。

1. [**Instance state (インスタンスの状態)**]、[**Start instance (インスタンスの開始)**] の順に選択してください。

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

**スポットインスタンスを開始するには**  
スポットインスタンスを手動で開始するには[start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) コマンドを使用します。

```
aws ec2 start-instances --instance-ids i-1234567890abcdef0
```

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

**スポットインスタンスを開始するには**  
[Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) コマンドレットを使用します。

```
Start-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## スポットインスタンスを終了する
<a name="terminating-a-spot-instance"></a>

**警告**  
**インスタンスの終了は恒久的で、元に戻すことができません。**  
インスタンスを終了すると、そのインスタンスには接続できなくなり、復元することもできません。アタッチされている Amazon EBS ボリュームで、終了時に削除されるように設定されているものも、すべて恒久的に削除され、復元できません。インスタンスストアボリュームに保存されているデータは、すべて恒久的に失われます。詳細については、「[インスタンスの終了方法](how-ec2-instance-termination-works.md)」を参照してください。  
インスタンスを終了する前に、終了後も保持する必要があるすべてのデータを永続的ストレージにバックアップしたことを確認してください。

永続スポットインスタンスリクエストによって起動された実行中または停止中のスポットインスタンスを終了すると、そのスポットインスタンスリクエストの状態は `open` に遷移し、新たなスポットインスタンスを起動できるようになります。新しいスポットインスタンスが起動されないようにするにはまずスポットインスタンスリクエストをキャンセルする必要があります。

スポットインスタンスを実行させている `active` スポットインスタンスリクエストをキャンセルしても、実行中のスポットインスタンスは自動的に終了されません。スポットインスタンスは手動で終了する必要があります。

停止中のスポットインスタンスを持つ `disabled` スポットインスタンスリクエストをキャンセルした場合、この停止中のスポットインスタンスはAmazon EC2 スポットサービスによって自動的に終了されます。スポットインスタンスリクエストをキャンセルしてから、スポットサービスがスポットインスタンスを終了するまでの間に、短い遅延が生じることがあります。

詳細については、「[スポットインスタンスリクエストをキャンセルする](using-spot-instances-cancel.md)」を参照してください。

------
#### [ Console ]

**スポットインスタンスを手動で終了するには**

1. インスタンスを終了する前に、終了時に Amazon EBS ボリュームが削除されることと、必要なデータすべてをインスタンスストアボリュームから永続的ストレージ (Amazon EBS や Amazon S3 など) にコピーしていることを確認して、データが失われないことを確認します。

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. スポットインスタンスを選択してください。スポットインスタンスのインスタンス ID を保存しなかった場合は「[スポットインスタンスの検索](#using-spot-instances-running)」を参照してください。

1. **[インスタンスの状態]**、**[インスタンスの終了 (削除)]** の順に選択してください。

1. 確認を求めるメッセージが表示されたら、**[終了 (削除)]** を選択してください。

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

**スポットインスタンスを手動で終了するには**  
スポットインスタンスを手動で終了するには[terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) コマンドを使用します。

```
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7
```

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

**スポットインスタンスを手動で終了するには**  
[Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html) コマンドレットを使用します。

```
Remove-EC2Instance -InstanceId i-1234567890abcdef0
```

------