これは

初老丸アドベントカレンダー 13 日目の記事です。

集え、初老丸達よ。初老丸達による世界に向けた技術的(又はそれに関連する)な物語を綴るカレンダーです。我こそ初老丸という方、初老丸予備軍の方も奮ってご参加下さい。

qiita.com

ということで、小ネタ大ネタを交えて 12/25 まで張り切っていきましょう。

初老と AWS(2)〜 AWS CLI で AMI を作るが削除する 〜

逃げ恥

が流行ってますよね。
この「逃げるが恥だが役に立つ」テイストの言葉を考えているのですが、全く思いつきませんえん。

ということで、AMI を作る

AMI を作ることは恥ではありません。

_PROFILE=${プロファイル名を指定する}
_INSTANCE_ID=i-xxxxxxxxxxxxx
_AMI_NAME=oreno-instance-backup-image_$(date +%Y%m%d)
aws --profile ${_PROFILE} --region ap-northeast-1 \
  ec2 \
    create-image \
      --instance-id ${_INSTANCE_ID} \
      --name ${_AMI_NAME} \
      --no-reboot \
      --output text

むしろ、何かあった時には役に立ちますよね。

AMI を登録解除する

用事が終わったら AMI は登録解除して、スナップショットを削除しましょう。

# 削除対象の IAM ID を取得
_PROFILE=${プロファイル名を指定する}
_AMI_NAME=oreno-instance-backup-image_$(date +%Y%m%d)
_AMI_ID=$(aws --profile ${_PROFILE} --region ap-northeast-1 \
  ec2 \
    describe-images \
      --filters Name=name,Values=${_AMI_NAME} \
      --query 'Images[].ImageId' \
      --output text)
echo ${_AMI_ID}

# 削除対象の IAM を登録解除
_PROFILE=${プロファイル名を指定する}
aws --profile ${_PROFILE} --region ap-northeast-1 \
  ec2 \
    deregister-image \
      --image-id ${_AMI_ID}

AMI のスナップショットを削除する

スナップショットを削除しますよ。

# 削除対象のスナップショット ID を確認   
_PROFILE=${プロファイル名を指定する}
_SNAPSHOT_ID=$(aws --profile ${_PROFILE} --region ap-northeast-1 \
  ec2 \
    describe-snapshots \
      --filters Name=description,Values=*${_AMI_ID}* \
      --query 'Snapshots[].SnapshotId' \
      --output text)
echo ${_SNAPSHOT_ID}

# 削除対象のスナップショットを削除
_PROFILE=${プロファイル名を指定する}
aws --profile ${_PROFILE} --region ap-northeast-1 \
  ec2 \
    delete-snapshot \
     --snapshot-id ${_SNAPSHOT_ID}


# 削除対象の IAM が登録解除されていることを確認する
_PROFILE=${プロファイル名を指定する}
aws --profile ${_PROFILE} --region ap-northeast-1 \
  ec2 \
    describe-images \
      --image-ids ${_AMI_ID}

# 削除対象のスナップショットが削除されていることを確認する
_PROFILE=${プロファイル名を指定する}
aws --profile ${_PROFILE} --region ap-northeast-1 \
  ec2 \
    describe-snapshots \
     --snapshot-id ${_SNAPSHOT_ID}

以上

メモでした。

元記事はこちら

ショロカレ 13 日目 | 初老と AWS(2)〜 AWS CLI で AMI を作るが削除する 〜