

# 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. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで [**インスタンス**]、[**インスタンスの作成**] の順に選択します。

1. Amazon マシンイメージ (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) コマンドレットを使用して、次のパラメータを含めます。

```
-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) コマンドレットを使用します。

```
$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. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/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) コマンドレットを使用して、`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
```

------