

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 Amazon EC2 執行個體啟用休眠
<a name="enabling-hibernation"></a>

若要讓執行個體休眠，必須在啟動執行個體時先為其啟用休眠。

**重要**  
啟動執行個體之後，就不能對它啟用或停用休眠。

**Topics**
+ [為隨需執行個體啟用休眠功能](#enable-hibernation-for-on-demand-instances)
+ [為 Spot 執行個體啟用休眠功能](#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)** (應用程式和作業系統映像 (Amazon Machine Image)) 中，選取支援休眠的 AMI。如需詳細資訊，請參閱[AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)。

   1. 在 **Instance type** (執行個體類型) 中，選取支援的執行個體類型。如需詳細資訊，請參閱[執行個體系列](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)。

   1. 在 **Configure storage** (設定儲存) 中，選擇 **Advanced** (進階) (在右側)，並指定根磁碟區的下列資訊：
      + 針對 **Size (GiB) (大小 (GiB))**，輸入 EBS 根磁碟區大小。磁碟區必須夠大，才能存放 RAM 內容並容納您預期的使用量。
      + 針對 **Volume type** (磁碟區類型)，選取支援的 EBS 磁碟區類型：一般用途 SSD (`gp2` 和 `gp3`) 或佈建 IOPS SSD (`io1` 和 `io2`)。
      + 針對 **Encrypted** (加密)，選擇 **Yes** (是)。如果您在此 AWS 區域中預設啟用加密，則會選取**是**。
      + 針對 **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) 命令來啟動執行個體。先定義區塊型設備映射，然後使用 `-BlockDeviceMappings` 參數將其新增至命令，以指定 EBS 根磁碟區。使用 `-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`區塊型設備映射中省略 。

------

## 為 Spot 執行個體啟用休眠功能
<a name="enable-hibernation-for-spot-instances"></a>

您可為 Spot 執行個體啟用休眠功能。如需中斷時讓 Spot 執行個體休眠的詳細資訊，請參閱 [Spot 執行個體中斷](spot-interruptions.md)。

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

**為 Spot 執行個體啟用休眠功能**

1. 遵循程序[使用啟動執行個體精靈要求 Spot 執行個體](using-spot-instances-request.md)，但在完成下列步驟以啟用休眠之前，請勿啟動執行個體。

1. 若要啟用休眠功能，請在啟動執行個體精靈中設定下列欄位：

   1. 在 **Application and OS Images (Amazon Machine Image)** (應用程式和作業系統映像 (Amazon Machine Image)) 中，選取支援休眠的 AMI。如需詳細資訊，請參閱[AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)。

   1. 在 **Instance type** (執行個體類型) 中，選取支援的執行個體類型。如需詳細資訊，請參閱[執行個體系列](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)。

   1. 在 **Configure storage** (設定儲存) 中，選擇 **Advanced** (進階) (在右側)，並指定根磁碟區的下列資訊：
      + 針對 **Size (GiB) (大小 (GiB))**，輸入 EBS 根磁碟區大小。磁碟區必須夠大，才能存放 RAM 內容並容納您預期的使用量。
      + 針對 **Volume type** (磁碟區類型)，選取支援的 EBS 磁碟區類型：一般用途 SSD (`gp2` 和 `gp3`) 或佈建 IOPS SSD (`io1` 和 `io2`)。
      + 針對 **Encrypted** (加密)，選擇 **Yes** (是)。如果您在此 AWS 區域中預設啟用加密，則會選取**是**。
      + 針對 **KMS key** (KMS 金鑰)，選取磁碟區的加密金鑰。如果您在此 AWS 區域中預設啟用加密，則會選取預設加密金鑰。

      如需根磁碟區必要條件的詳細資訊，請參閱[EC2 執行個體休眠的先決條件](hibernating-prerequisites.md)。

   1. 展開**進階詳細資訊**，除了用於設定 Spot 執行個體的欄位之外，請執行下列操作：

      1. 對於**要求類型**，請選擇**持續**。

      1. 對於**中斷行為**，請選擇**休眠**。或者，對於**停止 - 休眠行為**，請選擇**啟用**。這兩個欄位都能在 Spot 執行個體上啟用休眠。您只須設定其中之一。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。如需詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

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

**為 Spot 執行個體啟用休眠功能**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令要求 Spot 執行個體。使用 `--block-device-mappings file://mapping.json` 參數指定 EBS 根磁碟區參數，然後使用 `--hibernation-options Configured=true` 參數啟用休眠。Spot 要求類型 (`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 ]

**為 Spot 執行個體啟用休眠功能**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 命令來要求 Spot 執行個體。先定義區塊型設備映射，然後使用 `-BlockDeviceMappings` 參數將其新增至命令，以指定 EBS 根磁碟區。使用 `-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. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取執行個體，然後在 **Instance details (執行個體詳細資訊)** 區段的 **Details (詳細資料)** 標籤上，檢查 **Stop-hibernate behavior (停止休眠行為)**。**Enabled (啟用)** 表示執行個體已啟用休眠。

------
#### [ 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) cmdlet，並篩選已啟用休眠的執行個體。

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

------