AMIがRecycle Bin(ごみ箱)機能に対応しました

2022.02.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

昨年のAWS re:Invent 2021で削除したEBSスナップショットを一定期間保持し、復元することが出来る「ごみ箱」機能が発表されていました。

今回、Amazon Machine Images (AMI) でも「ごみ箱」機能が使えるようになりました。

ルール設定

使い勝手はEBSと全く同じです。
Recycle Binでルールを作成し、全てあるいはタグで対象のフィルタリングが可能です。

以前まではリソースタイプに「EBSスナップショット」しか選択出来ませんでしたが、「Amazonマシンイメージ(AMI)」も選択出来るようになっています。ルールはスナップショットとAMIで別の管理となります。

削除と復元をしてみる

ルールを設定したので、AMIの登録解除をしてみます。

登録解除後にRecycle Binのリソース画面を見てみましょう。
リソースタイプで絞り込まれているので、AMIsを選択しましょう。

解除されたAMIが表示されました。

復元するには、リソースを選択した状態で「復旧」ボタンを押すだけです。

すぐに復元されました。

CLIで操作

AWS CLIのv2.4.16からAMIのごみ箱操作が可能です。

登録解除して、ごみ箱で確認してみましょう。

# 登録解除
$ aws ec2 describe-images --owners 123456789012 | jq '.Images[].ImageId' -r
ami-069d25a463d43452b
ami-0a7a3a94b6593dcda
$ aws ec2 deregister-image --image-id ami-0a7a3a94b6593dcda
$ aws ec2 describe-images --owners 123456789012 | jq '.Images[].ImageId' -r
ami-069d25a463d43452b

## ごみ箱確認
$ aws ec2 list-images-in-recycle-bin                                       
{
    "Images": [
        {
            "ImageId": "ami-0a7a3a94b6593dcda",
            "Name": "iwasa-apache-sleep2",
            "Description": "[Copied ami-069d25a463d43452b from ap-northeast-1] iwasa-apache-sleep",
            "RecycleBinEnterTime": "2022-02-05T23:13:26+00:00",
            "RecycleBinExitTime": "2022-02-06T23:13:26+00:00"
        }
    ]
}

AMIのリストからは削除され、ごみ箱のリストに表示されていますね。
次にごみ箱から復元してみます。

$ aws ec2 restore-image-from-recycle-bin --image-id ami-0a7a3a94b6593dcda 
{
    "Return": true
}
$ aws ec2 describe-images --owners 123456789012| jq '.Images[].ImageId' -r
ami-069d25a463d43452b
ami-0a7a3a94b6593dcda

復元出来ました!

さいごに

本日はAMIのごみ箱機能を紹介させて頂きました。
すごく簡単に使うことが出来ました。

ルール作成による有効化が事前に必要なので、誤った削除に備えてあらかじめ保持期間短めの適当なルールを用意しておくのも良さそうですね。