【EBS】終了時に削除のチェックを変更するにはCLIを!EBSボリューム削除を回避する方法

  • 2020年3月24日
  • 2020年3月24日
  • AWS
AWS

こんにちわ。ますのです。
普段は何も考えず、ただひたすらに!
EC2インスタンス作成の際に、EBSボリュームの設定で「終了時に削除」を常にチェック入れて作成しております。

ある日の出来事…

Windowsサーバ死んだ!
新規でインスタンス作り直すで!
DドライブとかEドライブはEBSの付け替えで対応や!

なんてことが起こってさぁ大変。AWS管理コンソール上で設定変更の場所が見当たらないではありませんか。。。
そんな時に対応した内容を備忘として記載します!

「終了時に削除」を変更する際は【AWS CLI】環境から実施

確認しましたが、AWS CLIから設定を変更するしか無いようです。
管理コンソール上からのGUI操作は未対応な様子です。

AWS CLIの環境が無い方は「Amazon Linux2」とかを新規で作成すると初期導入されてるのでそちらより。

「DeleteOnTermination」を変更するための[mapping.json]ファイルを作成する

CLI上で設定を変更するために読み込ませるjsonファイルを作成します。
名称は何でも良さそうですが、参考サイトでは「mapping.json」として紹介されているのでそちらを踏襲。

[
 {
  “DeviceName”: “/dev/sda1”,
  “Ebs”: {
   “DeleteOnTermination”: false
  }
 }
]
【DeviceNameの値】
管理コンソール>EC2>対象インスタンスのdeviceから確認できるよ!
複数ある場合は容量で判別したであります。【DeleteOnTerminationの値】
場合によって「false」と「true」を使い分けるです。
・EC2インスタンス終了時にEBSを残す場合:false
・EC2インスタンス終了時にEBSを削除する場合:true


※引用:https://aws.amazon.com/jp/premiumsupport/knowledge-center/deleteontermination-ebs/

作成した「mapping.json」のファイルをAWS CLIが動く端末上にデータを配置します。
今回はAmazonLinux2の「~/mapping.json」として配置しました。

AWS CLIより「mapping.json」を取り込み「DeleteOnTermination」を変更する

先ほど作成した「mapping.json」ファイルをAWS CLIから読み込みます。

$ cd ~
$ aws ec2 modify-instance-attribute –instance-id i-1234567890abcdef0 –block-device-mappings file://mapping.json
これで指定したインスタンスIDのmapping.jsonで指定したEBSの「終了時に削除」のチェックが外れるはずです。
「終了時に削除」がFalseになっていれば、インスタンスを削除してもEBSは残るようになるであります!
これでインスタンス立て直しの時にも付け替えが出来るようになるはずです。

【余談】Cドライブ、Dドライブ、Fドライブ等の複数を一括で変更する

今回は1つずつ丁寧にfalseをしていきましたが、[mapping.json]内に複数のEBSを指定して変更することも出来るみたいです。
1つのインスタンスに複数のEBSが入っている際にまとめて変更したい場合は[mapping.json]で複数指定もお試しあれ。

[
 {
  “DeviceName”: “/dev/xvda”,
  “Ebs”: {
   “DeleteOnTermination”: false
  }
 },
 {
  “DeviceName”: “/dev/sdb”,
  “Ebs”: {
   “DeleteOnTermination”: false
  }
  },
 {
  “DeviceName”: “/dev/sdc”,
  “Ebs”: {
   “DeleteOnTermination”: false
  }
 }
]​
もし同じような対応が必要となった際は試してみたい所存であります。
最新情報をチェックしよう!