Swing-by

在宅勤務おじさんのブログ

EBSボリュームのDeleteOnTerminationの設定を後から変える方法

下記のようにCLIを使えば変更ができることを最近しりました。

既存の設定を確認。DeleteOnTerminationがtrueになっている。(EC2インスタンスが削除されたタイミングでEBSボリュームも削除)

$ aws ec2 describe-instances --instance-id i-xxxxxxxxx --query Reservations[].Instances[].BlockDeviceMappings[] --profile my_profile
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "Status": "attached",
            "DeleteOnTermination": true,
            "VolumeId": "vol-12345678",
            "AttachTime": "2016-02-02T10:19:30.000Z"
        }
    }
]

下記のようなjsonを用意します。

modify.json
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "DeleteOnTermination": false,
            "VolumeId": "vol-12345678"
        }
    }
]

作成したjsonを指定してAWS CLIの「aws ec2 modify-instance-attribute」を実行します

$aws ec2 modify-instance-attribute --instance-id i-xxxxxxxx --block-device-mappings file://modify.json --profile my_profile

再度確認するとDeleteOnTerminationがfalseになっていることを確認できました。

$ aws ec2 describe-instances --instance-id i-xxxxxxxxx --query Reservations[].Instances[].BlockDeviceMappings[] --profile my_profile
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "Status": "attached",
            "DeleteOnTermination": false,
            "VolumeId": "vol-12345678",
            "AttachTime": "2016-02-02T10:19:30.000Z"
        }
    }
]