

# Amazon EC2 인스턴스가 종료된 후에도 Amazon EBS 루트 볼륨 유지
<a name="configure-root-volume-delete-on-termination"></a>

기본적으로 인스턴스의 Amazon EBS 루트 볼륨은 인스턴스 종료 시 삭제됩니다. 인스턴스가 종료된 후에도 Amazon EBS 루트 볼륨이 지속되도록 기본 동작을 변경할 수 있습니다. 기본 동작을 변경하려면 `DeleteOnTermination` 속성을 `false`로 설정합니다. 인스턴스 시작 이후에도 변경할 수 있습니다.

**Topics**
+ [인스턴스 시작 중 루트 볼륨이 지속되도록 구성](#Using_ChangeRootDeviceVolumeToPersist)
+ [기존 인스턴스에서 루트 볼륨이 지속되도록 구성](#set-deleteOnTermination-aws-cli)
+ [루트 볼륨이 지속되도록 구성되었는지 확인](#Using_ConfirmRootDeviceVolumeToPersist)

## 인스턴스 시작 중 루트 볼륨이 지속되도록 구성
<a name="Using_ChangeRootDeviceVolumeToPersist"></a>

인스턴스를 시작할 때 루트 볼륨이 지속되도록 구성할 수 있습니다.

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

**인스턴스를 시작할 때 루트 볼륨이 지속되도록 구성하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택한 후 **인스턴스 시작**을 선택합니다.

1. Amazon Machine Image(AMI)를 선택하고 인스턴스 유형을 선택한 후 키 페어를 선택하고 네트워크 설정을 구성합니다.

1. **스토리지 구성**에서 **고급**을 선택합니다.

1. 루트 볼륨을 확장합니다.

1. **종료 시 삭제**에서 **예**를 선택합니다.

1. 인스턴스 구성을 마치면 **인스턴스 시작**을 선택합니다.

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

**인스턴스를 시작할 때 루트 볼륨이 지속되도록 구성하는 방법**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 명령을 사용하고 다음 옵션을 포함합니다.

```
--block-device-mappings file://mapping.json
```

`mapping.json`에서 `DeleteOnTermination` 속성을 `false`로 설정하는 블록 디바이스 매핑을 지정합니다.

```
[
    {
        "DeviceName": "/dev/sda1",
        "Ebs": {
            "DeleteOnTermination": false
        }
    }
]
```

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

**인스턴스를 시작할 때 루트 볼륨이 지속되도록 구성하는 방법**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet을 사용하고 다음 파라미터를 포함합니다.

```
-BlockDeviceMapping $bdm
```

`DeleteOnTermination` 속성을 `$false`로 설정하는 블록 디바이스 매핑을 생성합니다.

```
$ebs = New-Object Amazon.EC2.Model.EbsBlockDevice
$ebs.DeleteOnTermination = $false
$bdm = New-Object Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "dev/xvda"
$bdm.Ebs = $ebs
```

------

## 기존 인스턴스에서 루트 볼륨이 지속되도록 구성
<a name="set-deleteOnTermination-aws-cli"></a>

실행 중인 인스턴스에 대해 루트 볼륨이 지속되도록 구성할 수 있습니다. 단, Amazon EC2 콘솔에서는 이 작업을 완료할 수 없습니다.

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

**기존 인스턴스에 대한 루트 볼륨이 지속되도록 구성하는 방법**  
`DeleteOnTermination` 속성을 `false`로 설정하는 블록 디바이스 매핑과 함께 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 명령을 사용합니다.

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --block-device-mappings file://mapping.json
```

`mapping.json`에서 다음을 지정합니다.

```
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "DeleteOnTermination": false
        }
    }
]
```

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

**기존 인스턴스에 대한 루트 볼륨이 지속되도록 구성하는 방법**  
`DeleteOnTermination` 속성을 `$false`로 설정하는 블록 디바이스 매핑과 함께 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet을 사용합니다.

```
$ebs = New-Object Amazon.EC2.Model.EbsInstanceBlockDeviceSpecification
$ebs.DeleteOnTermination = $false
$bdm = New-Object Amazon.EC2.Model.InstanceBlockDeviceMappingSpecification
$bdm.DeviceName = "/dev/xvda"
$bdm.Ebs = $ebs
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -BlockDeviceMapping $bdm
```

------

## 루트 볼륨이 지속되도록 구성되었는지 확인
<a name="Using_ConfirmRootDeviceVolumeToPersist"></a>

루트 볼륨이 지속되도록 구성되었는지 확인할 수 있습니다.

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

**루트 볼륨이 지속되도록 구성되었는지 확인하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택한 후 해당 인스턴스를 선택합니다.

1. **스토리지** 탭의 **블록 디바이스**에서 루트 볼륨에 대한 항목을 찾습니다. **종료 시 삭제**가 `No`인 경우 볼륨이 지속되도록 구성된 것입니다.

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

**루트 볼륨이 지속되도록 구성되었는지 확인하는 방법**  
[describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 명령을 사용하고 `DeleteOnTermination` 속성이 `false`로 설정되었는지 확인합니다.

```
aws ec2 describe-instances \
    --instance-id i-1234567890abcdef0 \
    --query "Reservations[].Instances[].BlockDeviceMappings"
```

다음은 예제 출력입니다.

```
[
    [
        {
            "DeviceName": "/dev/xvda",
            "Ebs": {
                "AttachTime": "2024-07-12T04:05:33.000Z",
                "DeleteOnTermination": false,
                "Status": "attached",
                "VolumeId": "vol-1234567890abcdef0"
                
        }
    ]              
]
```

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

**루트 볼륨이 지속되도록 구성되었는지 확인하는 방법**  
[ Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet을 사용하고 `DeleteOnTermination` 속성이 `False`로 설정되었는지 확인합니다.

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

다음은 예제 출력입니다.

```
AssociatedResource  : 
AttachTime          : 7/12/2024 4:05:33 AM
DeleteOnTermination : False
Operator            : 
Status              : attached
VolumeId            : vol-1234567890abcdef0
```

------