2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AMIの登録解除の際にスナップショットも併せて削除するシェルを作ったのでご紹介

Posted at

目次

1.はじめに
2.前提条件
3.シェル
4.まとめ

1. はじめに

どうも皆さんこんにちは。こんばんは。おやすみなさい。
インスタンス削除に伴って紐づくリソースを削除する際にAMIの登録解除がありますよね。

今回私が対応した時にAMIが三桁個あってAMI確認→紐づいているスナップショット確認→AMI登録解除&スナップショット削除の流れがコンソールでやるのが面倒くさすぎたのでシェルを作りました。

作った当初は覚えてても自分でも忘れるので、備忘の念も込めてここに記載します。
同じような人の役に立てれば、なお良し!!!!!
じゃ、本題です。

2. 前提条件

今回は引数指定でのシェルを採用しているので、事前に解除したいAMIをリストアップしてIDを認識しておく必要が有ります。
対話形式型ではないので一回打つと処理が走ってしまいますので注意が必要です。

(削除するなら削除対象のリストアップは事前にしていると思いますが、、、、、)

!!!!!!!削除作業系は削除前の確認が重要です!!!!!!!

環境ですが、今回はCloudshellにシェルをアップロードして権限付与し実行する流れです。

3. シェル

今回作成したシェルです。

delete_ami_snapshots.sh
#!/bin/bash

# AMI ID を引数で指定
AMI_ID=$1

if [ -z "$AMI_ID" ]; then
  echo "使用方法: $0 <AMI_ID>"
  exit 1
fi

echo "指定された AMI: $AMI_ID"

# AMI に紐づくスナップショットを取得
SNAPSHOT_IDS=$(aws ec2 describe-images \
  --image-ids "$AMI_ID" \
  --query "Images[].BlockDeviceMappings[].Ebs.SnapshotId" \
  --output text)

if [ -z "$SNAPSHOT_IDS" ]; then
  echo "AMI $AMI_ID に紐づくスナップショットはありません。"
else
  echo "AMI に紐づくスナップショット: $SNAPSHOT_IDS"
fi

# AMI を解除
echo "AMI $AMI_ID を解除します..."
aws ec2 deregister-image --image-id "$AMI_ID"
echo "AMI $AMI_ID を解除しました。"

# スナップショットを削除
for SNAPSHOT_ID in $SNAPSHOT_IDS; do
  echo "スナップショット $SNAPSHOT_ID を削除します..."
  aws ec2 delete-snapshot --snapshot-id "$SNAPSHOT_ID"
  echo "スナップショット $SNAPSHOT_ID を削除しました。"
done

echo "AMI および紐づくスナップショットの削除が完了しました。"

上記をコピーして適当に保存してください。
名前は今回「delete_ami_snapshots.sh」にしています。

Cloudshellに保存したものをアップロードしたあとで権限の付与をしてください。
※ls -alとかで権限確認してね!!

権限付与
chmod +x delete_ami_snapshots.sh

シェルを実行します。
以下のような指定方法です。
./delete_ami_snapshots.sh <amiID>

実行例
./delete_ami_snapshots.sh ami-123456789abc

改行コードで引っかかる場合は以下を打ってください。

権限付与
sed -i 's/\r$//' <改行コード変えたいシェルとかの名前>

4. まとめ

実行する際は改めて登録解除するAMIIDが間違っていないかをくれぐれもご確認ください。
削除作業は慎重に行いましょう。
それではどうぞご安全に!!!!!!!!!!!!!!!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?