

# Amazon EC2 インスタンスの休止の有効化
<a name="enabling-hibernation"></a>

インスタンスを休止するには、まずインスタンスを起動するときに休止を有効にする必要があります。

**重要**  
インスタンスの起動後に、そのインスタンスの休止を有効または無効にすることはできません。

**Topics**
+ [オンデマンドインスタンスの休止を有効にする](#enable-hibernation-for-on-demand-instances)
+ [スポットインスタンスの休止を有効にする](#enable-hibernation-for-spot-instances)
+ [インスタンスで休止が有効かどうかを表示する](#view-if-instance-is-enabled-for-hibernation)

## オンデマンドインスタンスの休止を有効にする
<a name="enable-hibernation-for-on-demand-instances"></a>

オンデマンドインスタンスの休止を有効にできます。

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

**オンデマンドインスタンスの休止を有効にするには**

1. 手順に従って[インスタンスを起動](ec2-launch-instance-wizard.md)しますが、次のステップを完了して休止状態を有効にするまでインスタンスを起動しないでください。

1. 休止状態を有効にするには、インスタンス起動ウィザードで次のフィールドを設定します。

   1. **[Application and OS Images (Amazon Machine Image)]** (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、休止状態をサポートする AMI を選択してください。詳細については、「[AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)」を参照してください。

   1. **[Instance type]** (インスタンスタイプ) で、サポートされているインスタンスタイプを選択してください。詳細については、「[インスタンスファミリー](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)」を参照してください。

   1. **[Configure storage]** (ストレージを設定) で、**[Advanced]** (高度) (右側) を選択し、ルートボリュームに関する次の情報を指定します。
      + [**サイズ (GiB)**] に、EBS ルートボリュームのサイズを入力してください。ボリュームは、RAM の内容を格納して予想使用量に対応できるだけのサイズにする必要があります。
      + **[Volume type]** (ボリュームタイプ) で、サポートされている EBS ボリュームタイプである汎用 SSD (`gp2` および `gp3`) またはプロビジョンド IOPS SSD (`io1` および `io2`) を選択してください。
      + **[Encrypted]** (暗号化) で、**[Yes]** (はい) を選択してください。この AWS リージョンでデフォルトで暗号化を有効にした場合、**[Yes]** (はい) が選択されます。
      + **[KMS key]** (KMS キー) で、ボリュームの暗号化キーを選択してください。この AWS リージョンでデフォルトで暗号化を有効にした場合、デフォルトの暗号化キーが選択されます。

      ルートボリュームの前提条件の詳細については、[EC2 インスタンスの休止の前提条件](hibernating-prerequisites.md)を参照してください。

   1. **[Advanced details]** (高度な詳細) を展開し、**[Stop - Hibernate behavior]** (停止 - 休止状態の動作) で **[Enable]** (有効にする) を選択してください。

1. **[Summary]** (概要) パネルでインスタンスの設定を確認し、**[Launch instance]** (インスタンスを起動) を選択してください。詳細については、「[コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](ec2-launch-instance-wizard.md)」を参照してください。

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

**オンデマンドインスタンスの休止を有効にするには**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用して、インスタンスを起動します。`--block-device-mappings file://mapping.json` パラメータを使用して EBS ルートボリュームのパラメータを指定し、`--hibernation-options Configured=true` パラメータを使用して休止状態を有効にします。

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type m5.large \
    --block-device-mappings file://mapping.json \
    --hibernation-options Configured=true \
    --count 1 \
    --key-name MyKeyPair
```

`mapping.json` で、以下を指定します。

```
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "VolumeSize": 30,
            "VolumeType": "gp2",
            "Encrypted": true
        }
    }
]
```

`DeviceName` の値は、AMI に関連付けられているルートデバイス名と一致する必要があります。ルートデバイス名を確認するには、次のように [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用します。

```
aws ec2 describe-images --image-id ami-0abcdef1234567890
```

この AWS リージョンで暗号化をデフォルトで有効にした場合は、`"Encrypted": true` を省略できます。

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

**オンデマンドインスタンスの休止を有効にするには**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドを使用してインスタンスを起動します。EBS ルートボリュームを指定します。最初にブロックデバイスマッピングを定義し、次に `-BlockDeviceMappings` パラメータを使用してそれをコマンドに追加します。`-HibernationOptions_Configured $true` パラメータを使用して休止を有効にします。

```
$ebs_encrypt = New-Object Amazon.EC2.Model.BlockDeviceMapping
$ebs_encrypt.DeviceName = "/dev/xvda"
$ebs_encrypt.Ebs = New-Object Amazon.EC2.Model.EbsBlockDevice
$ebs_encrypt.Ebs.VolumeSize = 30
$ebs_encrypt.Ebs.VolumeType = "gp2"
$ebs_encrypt.Ebs.Encrypted = $true

New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType m5.large `
    -BlockDeviceMappings $ebs_encrypt `
    -HibernationOptions_Configured $true `
    -MinCount 1 `
    -MaxCount 1 `
    -KeyName MyKeyPair
```

`DeviceName` の値は、AMI に関連付けられているルートデバイス名と一致する必要があります。ルートデバイス名を確認するには、次のように [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) コマンドを使用します。

```
Get-EC2Image -ImageId ami-0abcdef1234567890
```

この AWS リージョンで暗号化をデフォルトで有効にした場合は、ブロックデバイスマッピングから `Encrypted = $true` を省略できます。

------

## スポットインスタンスの休止を有効にする
<a name="enable-hibernation-for-spot-instances"></a>

スポットインスタンスの休止を有効にできます。中断時のスポットインスタンスの休止に関する詳細は、「[スポットインスタンスの中断。](spot-interruptions.md)」を参照してください。

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

**スポットインスタンスの休止を有効にするには**

1. 次の手順に従って、[インスタンス起動ウィザードを使ってスポットインスタンスをリクエスト](using-spot-instances-request.md)しますが、次のステップを完了して休止を有効にするまで、インスタンスを起動しないでください。

1. 休止状態を有効にするには、インスタンス起動ウィザードで次のフィールドを設定します。

   1. **[Application and OS Images (Amazon Machine Image)]** (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、休止状態をサポートする AMI を選択してください。詳細については、「[AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)」を参照してください。

   1. **[Instance type]** (インスタンスタイプ) で、サポートされているインスタンスタイプを選択してください。詳細については、「[インスタンスファミリー](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)」を参照してください。

   1. **[Configure storage]** (ストレージを設定) で、**[Advanced]** (高度) (右側) を選択し、ルートボリュームに関する次の情報を指定します。
      + [**サイズ (GiB)**] に、EBS ルートボリュームのサイズを入力してください。ボリュームは、RAM の内容を格納して予想使用量に対応できるだけのサイズにする必要があります。
      + **[Volume type]** (ボリュームタイプ) で、サポートされている EBS ボリュームタイプである汎用 SSD (`gp2` および `gp3`) またはプロビジョンド IOPS SSD (`io1` および `io2`) を選択してください。
      + **[Encrypted]** (暗号化) で、**[Yes]** (はい) を選択してください。この AWS リージョンでデフォルトで暗号化を有効にした場合、**[Yes]** (はい) が選択されます。
      + **[KMS key]** (KMS キー) で、ボリュームの暗号化キーを選択してください。この AWS リージョンでデフォルトで暗号化を有効にした場合、デフォルトの暗号化キーが選択されます。

      ルートボリュームの前提条件の詳細については、[EC2 インスタンスの休止の前提条件](hibernating-prerequisites.md)を参照してください。

   1. **[詳細設定]** を展開し、スポットインスタンスを設定するフィールドに加えて次の操作を行います。

      1. **[リクエストタイプ]** で **[永続的]** を選択してください。

      1. **[中断動作]** で **[休止]** を選択してください。または、**[停止 - 休止動作]** で **[有効]** を選択してください。どちらのフィールドも、スポットインスタンスの休止を有効にします。いずれか 1 つ設定すれば済みます。

1. **[Summary]** (概要) パネルでインスタンスの設定を確認し、**[Launch instance]** (インスタンスを起動) を選択してください。詳細については、「[コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](ec2-launch-instance-wizard.md)」を参照してください。

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

**スポットインスタンスの休止を有効にするには**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用してスポットインスタンスをリクエストします。`--block-device-mappings file://mapping.json` パラメータを使用して EBS ルートボリュームのパラメータを指定し、`--hibernation-options Configured=true` パラメータを使用して休止状態を有効にします。スポットのリクエストのタイプ `SpotInstanceType`は `persistent` である必要があります。

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type c4.xlarge \
    --block-device-mappings file://mapping.json \
    --hibernation-options Configured=true \
    --count 1 \
    --key-name MyKeyPair
    --instance-market-options
        {
           "MarketType":"spot",
           "SpotOptions":{
              "MaxPrice":"1",
              "SpotInstanceType":"persistent"
            }
        }
```

`mapping.json` の EBS ルートボリュームパラメータを次のとおり指定します。

```
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "VolumeSize": 30,
            "VolumeType": "gp2",
            "Encrypted": true
        }
    }
]
```

`DeviceName` の値は、AMI に関連付けられているルートデバイス名と一致する必要があります。ルートデバイス名を確認するには、次のように [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用します。

```
aws ec2 describe-images --image-id ami-0abcdef1234567890
```

この AWS リージョンで暗号化をデフォルトで有効にした場合は、`"Encrypted": true` を省略できます。

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

**スポットインスタンスの休止を有効にするには**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドを使用してスポットインスタンスをリクエストします。EBS ルートボリュームを指定します。最初にブロックデバイスマッピングを定義し、次に `-BlockDeviceMappings` パラメータを使用してそれをコマンドに追加します。`-HibernationOptions_Configured $true` パラメータを使用して休止を有効にします。

```
$ebs_encrypt = New-Object Amazon.EC2.Model.BlockDeviceMapping
$ebs_encrypt.DeviceName = "/dev/xvda"
$ebs_encrypt.Ebs = New-Object Amazon.EC2.Model.EbsBlockDevice
$ebs_encrypt.Ebs.VolumeSize = 30
$ebs_encrypt.Ebs.VolumeType = "gp2"
$ebs_encrypt.Ebs.Encrypted = $true

New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType m5.large `
    -BlockDeviceMappings $ebs_encrypt `
    -HibernationOptions_Configured $true `
    -MinCount 1 `
    -MaxCount 1 `
    -KeyName MyKeyPair `
    -InstanceMarketOption @(
        MarketType = spot;
        SpotOptions @{
        MaxPrice = 1;
        SpotInstanceType = persistent}
    )
```

`DeviceName` の値は、AMI に関連付けられているルートデバイス名と一致する必要があります。ルートデバイス名を確認するには、次のように [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) コマンドを使用します。

```
Get-EC2Image -ImageId ami-0abcdef1234567890
```

この AWS リージョンで暗号化をデフォルトで有効にした場合は、ブロックデバイスマッピングから `Encrypted = $true` を省略できます。

------

## インスタンスで休止が有効かどうかを表示する
<a name="view-if-instance-is-enabled-for-hibernation"></a>

インスタンスの休止が有効であるかどうかを確認できます。

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

**インスタンスで休止が有効かどうかを表示するには**

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

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

1. インスタンスを選択し、[**Details (詳細)**] タブの [**Instance details (インスタンスの詳細)**] セクションで、[**Stop-hibernate behavior (停止 - 休止動作)**] を確認します。[**有効**] は、インスタンスが休止に対して有効であることを示します。

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

**インスタンスで休止が有効かどうかを表示するには**  
[describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用し、`--filters "Name=hibernation-options.configured,Values=true"` パラメータを指定して、休止が有効になっているインスタンスをフィルタリングします。

```
aws ec2 describe-instances \
    --filters "Name=hibernation-options.configured,Values=true"
```

次の出力フィールドは、インスタンスで休止が有効になっていることを示しています。

```
"HibernationOptions": {
    "Configured": true
}
```

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

**インスタンスで休止が有効かどうかを表示するには**  
[Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) コマンドレットを使用し、休止が有効になっているインスタンスをフィルタリングします。

```
(Get-EC2Instance `
    -Filter @{Name="hibernation-options.configured"; Values="true"}).Instances
```

------