「ごみ箱 (Recycle Bin)」が AMI の削除に対応しました

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

営業部 佐竹です。
本日は既存機能「ごみ箱(Recycle Bin)」のアップデートについて記載します。

はじめに

blog.serverworks.co.jp

ごみ箱機能は、re:Invent 2021 で発表された新機能です。詳しい利用方法は上記ブログに譲るとして、最も利用が厳しいと思われる制約に以下がありました。上記ブログから引用します。

また、AMI に紐づく Snapshot は今まで通り AMI - Snapshot 間の紐づけを解除してから削除を行う必要があり、AMI と紐づけたままごみ箱へ入れることは不可能です。この点も少し残念だなと感じました。AMI との紐づけを解除すると Windows OS 等ではもはや AMI として活用できないため、ブートボリュームとしては活用が厳しくなります。

つまり Snapshot の削除前に、それと紐づく AMI を完全に削除した状態ではないと、Snapshot をごみ箱に入れられなかったのです。

これではさすがに使い難いと言わざるを得ません。

これが、本日のアップデートで AMI も同様に論理削除(ごみ箱へ入れることが)できるようになりました。

aws.amazon.com

早速検証してみます。

ごみ箱を利用した AMI 削除を検証する

f:id:swx-satake:20220204103426p:plain

現在、上画像の通り「Recycle Bin」の機能検索が何故かできなくなっていたので、同様の症状の方は代わりに https://ap-northeast-1.console.aws.amazon.com/rbin/home から「ごみ箱」を開いてください。

もしくは Snapshot のコンソールからジャンプも可能です。

AMI 用の retention rule を新規に作成する

f:id:swx-satake:20220204115421p:plain

既存の「retention rule」を変更して Resource type に AMI を指定することはできないため、新規にルールを作成します。全ての AMI 削除(Deregister)をフックするように設定して、設定を完了します。

補足ですが、AMI の Deregister は、AMI と Snapshot の紐付きを解除する機能で、これを行うと AMI が消え、Snapshotだけが残ります。イメージとしては、EC2 インスタンスの Terminate で EBS Volume を残したままインスタンスだけを消せるという状態です。そして Snapshot に利用料がかかるので AMI を削除しただけではコスト削減になりません(※AMI は利用料が無料)。

AMI の Deregister を行う

f:id:swx-satake:20220204105256p:plain

今回削除する AMI は「ami-00813d1ef005fc379」です。紐づく Snapshot は「snap-0b1a4fdc5375376d3」になります。

f:id:swx-satake:20220204110033p:plain:w500

削除が成功しました。「ごみ箱」を確認します。

f:id:swx-satake:20220204110410p:plain

「Resources」で AMIs を指定すると、削除した AMI が確認できました。

Snapshot も別途削除が必要

AMI の削除は EC2 インスタンスと異なり、同時にストレージである Snapshot をまとめて削除してくれる機能がありません。そのため、AMI のみをごみ箱に入れても、 Snapshot はそのまま残存します。

f:id:swx-satake:20220204110649p:plain

よって、Snapshot の一覧に「snap-0b1a4fdc5375376d3」はまだ残存している状態になります。Snapshot も追ってこれを削除し「ごみ箱」に入れることにします。

f:id:swx-satake:20220204111127p:plain

Snapshot の削除と、ごみ箱への移動も問題なくできました。

AMI と Snapshot の Recover を行う

f:id:swx-satake:20220204111855p:plain

再度 AMI と Snapshot が利用可能となるように、元に戻す「Recover」を実行します。まずは Snapshot を Recover します。

f:id:swx-satake:20220204111909p:plain

次に AMI を Recover します。

f:id:swx-satake:20220204111932p:plain

上画像の通り、Recover された AMI と Snapshot がマネジメントコンソールから再度利用可能となりました。

注意点

AMI と Snapshot を削除して「ごみ箱」へと移動するのと、それらを再度利用できるように「Recover」をするのには順序があります。

削除時は「AMI」を削除してから、「Snapshot」を削除してください

Recover 時は「Snapshot」を Recover してから、「AMI」を Recover してください

AMI より先に Snapshot を削除することはできない

以前のブログにも記載した通りですが、AMI が存在している状態で Snapshot を削除することはできないため、以下のエラーが発生します。

f:id:swx-satake:20220204112211p:plain

Failed to delete snapshot. snap-0b1a4fdc5375376d3: The snapshot snap-0b1a4fdc5375376d3 is currently in use by ami-00813d1ef005fc379

Snapshot より先に AMI を Recover することはできない

反対に、Recover をするには Snapshot を先に Recover する必要があります。そのようにしないと、Snapshot が紐付かない AMI ができてしまうためです。もしこれを行った場合は、以下のエラーが発生します。

f:id:swx-satake:20220204112416p:plain

Failed to start restore on resource. ami-00813d1ef005fc379: You must first restore snapshot(s) [snap-0b1a4fdc5375376d3] from the Recycle Bin or ensure the snapshot(s) is(are) not deleted before you restore image ami-00813d1ef005fc379. This image cannot be restored without the associated EBS snapshots.

まとめ

本日は、re:Invent 2021 でリリースされた新機能「ごみ箱(Recycle Bin)」がアップデートされ、AMI の削除に対応した件について記載しました。

AMI との紐づけを解除すると Snapshot 単体が残っていても AMI として二度と使えないため、AMI 含めて「ごみ箱」へ入れられるこのアップデートは非常に良い機能アップデートだと感じます。

注意点として、ごみ箱へ入れるための「削除」と「Recover」には、AMI と Snapshot の関係性を理解し、順序を守る必要があります。

削除時は「AMI」を削除してから、「Snapshot」を削除、Recover 時は「Snapshot」を Recover してから、「AMI」を Recover してください。

本ブログは以上になります。

では、またお会いしましょう。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

営業部カスタマーサクセス課所属。AWS資格12冠。2010年1月からAWSを利用してきました。2021 Japan APN Ambassador /2020-2021 APN ALL AWS Certifications Engineer。AWSのコスト削減、最適化を得意としています。