スナップショットを削除する前に、紐づいたAMIがないか確認しよう

記事タイトルとURLをコピーする

コーヒーが大好きな木谷映見です。亀の歩みで頑張っています。
今回は私がハマってしまったスナップショットの削除について注意喚起する記事となります。

結論

スナップショットを削除する前に、紐づいたAMIがないか確認しましょう。
元になったEC2インスタンスやEBSボリュームが無い場合でも、紐づいたAMIが残っているとスナップショットは削除できない点に注意してください。

スナップショットは紐づいたAMIがあると削除できない

スナップショットに紐づいたAMIがある場合、スナップショットを削除しようとすると以下のようなエラーが出ます。

snap-xxxxxxxxxxxxxxxxx: The snapshot snap-xxxxxxxxxxxxxxxxx is currently in use by ami-xxxxxxxxxxxxxxxxx

「このスナップショットはAMIによって使用されています」というエラーです。
スナップショットがAMIに紐づいている場合、スナップショットを削除する前にAMIの登録を解除しておく必要があります。

また、少々面倒ですが、AMIを削除しただけでは、紐づいているスナップショットは残ってしまいます。AMIもスナップショットも削除したい場合、「AMIを削除⇒スナップショットを削除」の順番で実施してください。

本記事では触れませんが、AMI削除時にCloudWatch EventsでLambdaをトリガーして、紐づくスナップショットを同時に削除する実装も可能です。

元になったEBSボリュームやEC2インスタンスが存在しないからといって油断しないで!

削除したいスナップショットの詳細画面を見ると「ボリュームID」というのがあります。ここをクリックしてみます。 「The volume ‘vol-xxxxxx’ does not exist.」って書いてある!もうボリュームは削除済みってことだからスナップショットも要らないよね~消しちゃおう!

残念、不正解です。元となったインスタンスが削除済みなのでEBSボリュームはありませんが、よく見ると[説明]欄に「Created by CreateImage(i-xxxxxxxxxxxxxxxxx) for ami-xxxxxxxxxxxxxxxxx」と書いてあります。EBSボリュームがすでに削除済みで存在しない場合でも、紐づいたAMIが残っているかもしれませんので、削除前に確認してください。

また、「Created by CreateImage(i-xxxxxxxxxxxxxxxxx) for ami-xxxxxxxxxxxxxxxxx」のインスタンスIDを調べて、すでに削除済みで存在しないインスタンスだった場合でも、AMIが残っていれば同様に削除ができませんのでご注意ください。

終わりに

「すでに削除済みのEC2の残骸で、不要なスナップショットが残っているから削除しましょう」となったときにハマりました。
同じ轍を踏むことがありませんよう、ご注意ください。

emi kitani(執筆記事の一覧)

AS部LX課。2022/2入社、亀の歩みで頑張っています。コーヒーとサウナが好きです。AWS認定11冠