PowerShell Script: 使用されていない不要な Azure リソースを自動検知して削除する

Azure Backup and Recovery Services

こんにちは Azure サポートチームの山口です。

今日は、Azure を使っているうちに溜まってしまったゴミリソースをお掃除する Powershell スクリプトをご紹介したいと思います。

Azure リソース漂流記


昔々、あるところに Azure VM を作成したおじいさんがいました。

おじいさんは VM をずっと大切に使っていましたが、ある日 VM との決別を決意します。そこで VM リソースを削除すると・・・

そうなんです。VM 以外の Azure リソースは自動的に削除されないんです。

おじいさんは VM を削除したことで満足してしまい、このことに気が付きません。

こうやって取り残された 6 つの Azure リソースは、サブスクリプションの海をいつまでもいつまでも漂っていたのでした。

完。

・・・こんな状態は良くないですよね。

このような使用されていない Azure リソースが増えるとリソース管理が煩わしくなるだけでなく、さらにストレージ アカウントなどの一部のリソースは放置しているだけでも課金されてしまうので、早急に削除しなければいけません。

せっせと手動でリソースを 1 個ずつ消すのも一つの手ですが、この手の自動化タスクにおいて、人類は Powershell に屈服すること必至です。Powershell に任せましょう。

PowerShell Script


というわけで、上記のようなシナリオを想定した PowerShell スクリプトをご紹介いたします。

このスクリプトは、不要だと判断された Azure リソース一覧を取得し、その中の任意のリソースを削除することが出来ます。

ダウンロード

CleanupUnusedResource.ps1

実行手順

パラメータ

削除する Azure リソース

本スクリプトが削除対象とする Azure リソースは、大きく次の 3 種類に分類することが出来ます。

  1. ストレージ関連リソース

    • VHD BLOB
    • 管理ディスク
    • ストレージ アカウント

  2. ネットワーク関連リソース

    • ネットワーク インターフェイス
    • パブリック IP アドレス
    • ネットワーク セキュリティ グループ
    • 仮想ネットワーク

  3. リソース グループ

削除する Azure リソースの詳細


ストレージ関連リソース

本スクリプトでは、3 つの Azure リソースをストレージ関連リソースと呼んでいます。以下は、それらリソースの概要と、不使用 / 使用中の判定基準の説明です。

ネットワーク関連リソース

本スクリプトでは、4 つの Azure リソースをネットワーク関連リソースと呼んでいます。以下は、それらリソースの概要と、不使用 / 使用中の判定基準の説明です。

リソースグループ