LoginSignup
2
2

More than 5 years have passed since last update.

EC2 起動時・実行中に、アタッチされている EBS の DeleteOnTermination 属性 (合わせて削除) の値を変更する

Last updated at Posted at 2017-06-28

0.はじめに

EC2 を作成する時や新しく EBS をアタッチする時などに、DeleteOnTermination 属性(合わせて削除)の値を設定するかと思いますが、後で変更したいッ!!

と、
思うことがありませんか?

1.アタッチされている EBS の DeleteOnTermination 属性 (合わせて削除) の値を変更する

ということで、
私はあったので、問い合わせをしたところ、以下の様な回答を頂きました。

インスタンスの起動時またはインスタンスの実行中に、EC2にアタッチされているEBSボリュームの DeleteOnTermination 属性(合わせて削除)の値(設定)を変更することができます。しかしながら、現時点では、 管理コンソールからの設定変更はサポートされておらず、コマンドラインを使用して設定の変更を行う必要があります。

なるほど。
どうやら、AWS CLI から出来るみたいです。

コンソールから設定を変更できる機能が無かったので、てっきり出来ないものかと思い、要望をあげたところ、丁寧なご回答を頂きました。

で、
以下のサイトも補足で教えて頂きました。

ネットを調べてみると、
他にも参考になるサイトがいくつかありました。

いやー、
知らなかったです。
そして、ありがとうございました。

で、
手順もわかったので、
以下のスクリプトを使って、
今の設定がどうなっているか調べながら、セコセコと変更しました。

EC2-ModifyDeleteOnTermination.bash
#!/bin/bash

# ---1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----

# ==============================================================================
#
# EC2-ModifyDeleteOnTermination.bash
#
#   * ex) $ ./EC2-ModifyDeleteOnTermination.bash
#
# ==============================================================================

mypath=${0%/*}
myname=${0##*/}
mybase=${myname%.*}
mydate=`date +'%Y-%m-%d'`

LOG()
{
    printf "[%-10s %-8s] (%06d) %-50s\n" \
    `date '+%Y-%m-%d %H:%M:%S'` "${LINENO}" "${1}"
    printf "[%-10s %-8s] (%06d) %-50s\n" \
    `date '+%Y-%m-%d %H:%M:%S'` "${LINENO}" "${1}">>"${mypath}/${myname}.log"
}

# ------------------------------------------------------------------------------
# Set
# ------------------------------------------------------------------------------

#LOG "<<<<<<<< Set >>>>>>>>"

# Confirm Argv
#if [ ${#} -lt 2 ]; then
#    LOG "[ERROR] Parameter Error !! (${0} ${1} ${2})"
#    LOG "Usage: ${myname} [User ID] [Password]"
#    exit -1
#fi

export AWS_ACCESS_KEY_ID=[アクセスキー]
export AWS_SECRET_ACCESS_KEY=[シークレットキー]
export AWS_DEFAULT_REGION=ap-northeast-1

# ------------------------------------------------------------------------------
# Program Start
# ------------------------------------------------------------------------------

#LOG "<<<<<<<< Program Start >>>>>>>>"

aws ec2 describe-instances | jq '.Reservations[].Instances[] | {Tags, InstanceId, BlockDeviceMappings}'

EC2ID=[EC2インスタンスID]
aws ec2 describe-instances --instance-ids ${EC2ID} | jq '.Reservations[].Instances[] | {Tags, InstanceId, BlockDeviceMappings}'
DEVNM=[デバイス名]
VOLID=[ボリューム名]
aws ec2 modify-instance-attribute --instance-id ${EC2ID} --block-device-mappings "{\"DeviceName\":\"${DEVNM}\",\"Ebs\":{\"DeleteOnTermination\":true,\"VolumeId\":\"${VOLID}\"}}"
aws ec2 describe-instances --instance-ids ${EC2ID} | jq '.Reservations[].Instances[] | {Tags, InstanceId, BlockDeviceMappings}'


# ------------------------------------------------------------------------------
# Program End
# ------------------------------------------------------------------------------

#LOG "<<<<<<<< Program End >>>>>>>>"

# ---1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----

99.ポイント

  • コンソールに機能がなくても、AWS CLI では機能があったりするので、まずはネットで検索してみる。

XX.まとめ

まぁ、当たり前のことではあるんですが、
「自分が困っていること」って、実は他にも同じ様に困っている人がいたりするんですよね。

だから、
まずはネットで調べてみて、それでも見つからなかったら、問い合わせしてみる。

そして、
自分の問題が解決出来たら、ちゃんと情報発信してシェアする。

実は、
下らない様な情報でも役に立つこともあるので、しっかりやっていかないとなと思います。

とりあえず、
AWS のヘルプ担当の方々、ありがとうございましたー♪

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2