散らかったAWS環境の整理のためタグエディタを活用する

みなさん、お持ちのAWSアカウントに存在するリソースたちを把握できていますか?私はできていません。 それらをズバッと整理するためにタグエディタを使ってみた結果、AWSアカウントに眠っていた30個弱の未使用リソースを削除することができたのでご報告します。
2020.01.10

みなさん、お持ちのAWSアカウントに存在するリソースたちを把握できていますか?

私は全然できていません!!

たくさんのリソースが請求の有無を問わずとっ散らかっています。

それらをズバッと整理するためにタグエディタを使ってみた結果、AWSアカウントに眠っていた30個弱の未使用リソースを削除することができたのでご報告します。

タグエディタとは?

タグエディタの使用 - AWS リソースグループ

AWS Resource Groupsの機能です。

AWSリソースをタグ情報に基づき検索したり、AWSリソースのタグ情報を編集したりできます。

リージョンやサービスを跨いで一気にリソースを検索することが可能なので、今回はこれをアカウント内のリソースの洗い出しのために使ってみます。

使い方は以下の弊社ブログなどでも紹介されています!

タグエディターで付け忘れたタグをまとめて適用する| Developers.IO

全リージョンから全リソースを一括検索する方法【タグエディター】| Developers.IO

まず使ってみる

画面上部のここからアクセスすることができます。

まずすべてのリージョン/すべてのリソースに対し、タグの有無を問わず検索をかけました。

検索条件

結果

  • 昔使っていて、削除が漏れていたリソース
  • めったに使わないリージョンに何故か(自分で作ったんですが…)眠っていたリソース

などを一括で発見することができました。ただしデフォルトVPCなどデフォルトのリソースも多数洗い出されるため、それらを検索結果から除外したいです。

AWSにデフォルトで作成されるリソースを除外する

タグエディタを見てみると、私のAWSアカウントでは各リージョンに以下のデフォルトリソースが存在しました。(アカウントを作った時期などによって異なる可能性があります)

  • デフォルトVPCとそれに紐づく以下のリソース
    • Subnet*
    • Security Groups*
    • Network ACL*
    • Route Table*
    • Internet Gateway*
  • デフォルトのDHCP Option Set
  • デフォルトのDBSecurityGroup

これらを検索で除外するため、今回は {Key: isDefault Value:true} というタグを付けることにします。

プログラミングの修行を兼ねてPythonスクリプトを作ってみたのでよかったら参考にしてみてください。

※ 手動で作ったデフォルトVPCや、デフォルトVPC内に手動で作った上記*印リソースにもタグが付くため ご利用いただける場合はスクリプトのDryRunや実行後のタグエディタなどで対象の確認をお願いします!m(__)m

https://github.com/pypypyo14/defaultvpc-tag

もちろんタグエディタからもタグ付けできます!

デフォルトのリソースを除外して確認

デフォルトのリソースにisDefaultタグを付けたら、

以降は検索条件に isDefault: (not tagged) を指定すれば、自分で作ったリソースの一覧を抽出できますね!

検索条件

結果

多いか少ないかわかりませんが、30個ありました。

あとはこれらを選別し、

  • 不要なリソースは削除
  • 必要なリソースはタグ付けして管理しやすく

すればOKです!

まとめ

タグエディタを使って、散らかったAWSアカウントを整理することができました。

これからもついつい消し忘れが発生してしまうと思うので、定期的に確認したいと思います。

定期的にSlackBotなどで通知してもいいかもしれません。

本来は、発生費用の内訳はコストエクスプローラでまめに確認しましょう!(完全に自戒です)