✨
【AWS】EC2インスタンス作成後にEBSの「終了時に削除」を有効化する方法とは?
はじめに
現場でAWSCLIでEC2インスタンスを作成した後にEBSの「終了時に削除」が有効化されていなかったので、有効化するということがありました。
今回は、こちらの方法をアウトプットしていきたいと思います。
前提
- EC2インスタンスが作成済みで起動している。
- EBSの「終了時に削除」の設定が無効になっている。
- PCに以下バージョンのAWSCLIを導入済み。
$ aws --version
aws-cli/2.15.11 Python/3.11.6 Darwin/23.2.0 exe/x86_64 prompt/off
作業手順
1.EC2インスタンス
AWSコンソールから対象EC2インスタンスの情報を確認し、以下の情報を控える。
控える情報 | 例 |
---|---|
インスタンスID | i-0d6191b4cc10999a |
EBSのデバイス名 | /dev/sda1 |
2.EBSの「終了時に削除」の有効化
以下のjsonを任意の場所に用意する。
json
[
{
"DeviceName": "device_name",
"Ebs": {
"DeleteOnTermination": true
}
}
]
記載例は、以下になります。
mapping.json
[
{
"DeviceName": "/dev/sda1",
"Ebs": {
"DeleteOnTermination": true
}
}
]
CLI画面にてjsonが存在するディレクトリへ移動し、AWSCLIより以下のコマンドを実行する。
コマンド
aws ec2 modify-instance-attribute --instance-id <インスタンスID> --block-device-mappings file://<json名>
コマンドの実行例は、以下になります。
実行コマンド例
aws ec2 modify-instance-attribute --instance-id i-0d6191b4cc10999a --block-device-mappings file://mapping.json
3.EBSの「終了時に削除」の設定確認
EBSの「終了時に削除」が有効化になっていることを確認する。
コマンド
$ aws ec2 describe-instances --instance-id <インスタンスID> --query Reservations[].Instances[].BlockDeviceMappings[]
DeleteOnTermination
の部分がTrue
になっていることを確認する。
実行コマンド例
$ aws ec2 describe-instances --instance-id i-0d6191b4cc10999a --query Reservations[].Instances[].BlockDeviceMappings[]
[
{
"DeviceName": "/dev/sda1",
"Ebs": {
"AttachTime": "2023-12-05T23:22:22+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-0e2d73d9d15b7d08b"
}
}
]
参考
Discussion