Azureで仮想マシンのバックアップを利用した検証を終え、リソースグループごとリソースをまとめて消そうとしたとき「削除に失敗しました」というエラーが出てきてたのでその原因と対処方法をまとめてみました。
この記事ではServiceRecoveryコンテナーを利用していた場合に発生するエラーを扱いますので、当てはまらない場合は参考情報としてみていただければと思います。
エラーの原因
エラーの原因は、エラー内容の通り「ServiceRecoveryコンテナーにバックアップアイテムが論理的にまだ存在しているため削除できない」というものです。
・エラー内容の抜粋
Recovery Services vault cannot be deleted as there are backup items still present in soft delete state.
ServiceRecoveryコンテナー(≒AzureBackup)ではバックアップアイテムが論理的にも存在するとServiceRecoveryコンテナーのリソース自体を削除することができません。
「論理的な削除」とは?
「論理的な削除」は、誤ってバックアップアイテムを削除してしまったときの救済措置機能です。
この設定が有効になっているとGUIなどでバックアップのアイテムを削除したとしても、「論理的な削除」で設定されている期間中(デフォルト設定は14日間)はAzure側で論理的にバックアップアイテムがまだ残っており、復旧が可能となります。
この機能は新しく作成するServiceRecoveryコンテナーではデフォルトで「有効化」として設定されており、ServiceRecoveryコンテナー作成時に有効化するか無効化するかを指定することができません。
そのため「論理的な削除」を無効化するためにはServiceRecoveryコンテナーを作成した後に、設定を変更するしかありません。
「論理的な削除」を無効化し、ServiceRecoveryコンテナーを削除する方法
上記の通り、バックアップアイテムの論理的な削除の期間(デフォルト設定は14日間)が過ぎれば、バックアップアイテムを削除する際に論理的に残ることはないので、ServiceRecoveryコンテナーは削除可能になるのですが、即時削除したい場合もあると思います。
なのでここでは「論理的な削除」を無効化して、「論理的な削除」の論理バックアップ保持期間を待たずにServiceRecoveryコンテナーを削除する方法を紹介します。
①「論理的な削除」を無効化する
ServiceRecoveryコンテナーから[プロパティ]を選択
[AzureポータルTOPページ]‐[ServiceRecoveryコンテナー]‐[※対象となるリソース] の順番でServiceRecoveryコンテナーのページを開き、[プロパティ]をクリックします。
[セキュリティ設定]を選択
[プロパティ]で開いた画面から[セキュリティ設定]の[更新]をクリックします。
[論理削除 (Azure で実行されているワークロードの場合)]を[無効化]にする
[セキュリティ設定]の設定画面が出てくるので、[論理削除 (Azure で実行されているワークロードの場合)]を[無効化]にして、「保存」をクリックします。
「セキュリティ設定を更新しました」というポップアップ通知が出てくれば設定変更完了です。
②「論理的な削除」無効化後にバックアップアイテムを削除する
上記の「論理的な削除」無効化後にバックアップアイテムを削除するとバックアップアイテムは完全に削除されて、ServiceRecoveryコンテナーを削除することができます。
バックアップされているアイテムを選択
[ServiceRecoveryコンテナー]‐[※対象となるリソース]‐[バックアップアイテム] よりバックアップされているアイテムをクリックします。 ※今回は仮想マシンを選択します。
バックアップアイテム一覧から削除したい項目を選択
バックアップアイテムの一覧から[View details]をクリックします。
[Delete backup data]を選択
[Delete backup data]をクリックします。
バックアップの削除
理由などの値を入力し、下部の「削除」をクリックします。
削除が完了するとバックアップアイテムは表示されなくなります。
③ServiceRecoveryコンテナーを削除する
該当のServiceRecoveryコンテナーのページから「削除」をクリックします。
チェックボックスにチェックを入れて、画面下部の「はい」をクリックすると削除完了です。
削除後にポップアップ通知も出てきますので、削除されたことがわかるかと思います。
この後にリソースグループも正常に削除することができるかと思います。
[参考] バックアップアイテムの再削除が必要な場合もある
上記では「論理的な削除」無効化後にバックアップアイテムを削除する流れで説明してきましたが、一度バックアップアイテムを削除した後に、「論理的な削除」無効化する場合もあるかと思います。
その場合には、バックアップアイテムを一度復旧させ、再度手動で削除する必要があります。
「論理的な削除」無効化前にバックアップアイテムを削除した場合、削除したにも関わらずバックアップアイテムの画面では以下のように注意事項が表示され、論理的にはまだ残っていますよと表示されていたはずです。
この状態で、「論理的な削除」を無効化した場合、このバックアップアイテムは自動で削除されるわけではなく、再度手動で削除しないと即時には削除されません。
逆に言うと、このバックアップアイテムを[undelete]し、再度「削除」することで完全にバックアップアイテムを消すことができ、ServiceRecoveryコンテナーを削除することができます。
[参考] バックアップアイテムを[undelete]する方法
[ServiceRecoveryコンテナー]‐[※対象となるリソース]‐[バックアップアイテム] よりバックアップされているアイテムをクリックします。 ※今回は仮想マシンを選択します。
バックアップアイテムの一覧から[View details]をクリックします。
[Undelete]をクリックします。
出てきたポップアップで、画面下部の[Undelete]をクリックします。
これで再度バックアップアイテムを削除することができるので、上記で紹介した手順「「論理的な削除」無効化後にバックアップアイテムを削除する」以降と同じ方法で削除してください。
追記:ServiceRecoveryコンテナーを削除するときには削除のための案内が出る
現在ではServiceRecoveryコンテナーを削除しようとしたときに、「「論理的な削除」を無効化にしないと削除できないよ」といったことを案内してくれるようになっているようです。
ServiceRecoveryコンテナーで「削除」を押すと、
以下のように削除するための設定へ効果所や、手順のドキュメントまで案内をしてくれます。
見ていただくとわかる通り、この記事で取り扱った「論理的な削除」の設定の他にも、プライベートエンドポイントが設定されたままになっていると削除できないといったようなことなどもあり得そうです。
ServiceRecoveryコンテナー削除の際にはこの画面の項目を確認してから削除をするとエラーなどを発生させずに削除することができるかなと思いましたので、削除する際にはぜひ参考としてみてください。