

# 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 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**(고급)(오른쪽)를 선택하고 루트 볼륨에 대해 다음 정보를 지정합니다.
      + **크기(GiB)(Size (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) 명령을 사용하여 인스턴스를 시작합니다. 먼저 블록 디바이스 매핑을 정의한 다음 `-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`를 생략할 수 있습니다.

------

## 스팟 인스턴스 최대 절전 모드 활성화
<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 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**(고급)(오른쪽)를 선택하고 루트 볼륨에 대해 다음 정보를 지정합니다.
      + **크기(GiB)(Size (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. **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) 명령을 사용하여 스팟 인스턴스를 요청합니다. 먼저 블록 디바이스 매핑을 정의한 다음 `-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. 탐색 창에서 **인스턴스**를 선택합니다.

1. 인스턴스를 선택하고 **세부 정보** 탭의 **인스턴스 세부 정보** 섹션에서 **중지 - 최대 절전 모드 동작**을 살펴봅니다. **활성**은 인스턴스에 대해 최대 절전 모드가 활성화되어 있음을 나타냅니다.

------
#### [ 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
```

------