しばらくAWSを使用しています。AWSリソースとそれらがどのように相互接続されているかを追跡するのは常に困難です。明らかに、私はTerraformを使用していますが、それでも、私の可視性を低下させる特別な操作が常にあります。
存在しているが使用していないリソース/サービスに対して複数回課金されたため。
未使用のサービスには、他のサービスを指していないがAWS環境に存在するリソースが含まれます。
ツールの提案も歓迎します。
しばらくAWSを使用しています。AWSリソースとそれらがどのように相互接続されているかを追跡するのは常に困難です。明らかに、私はTerraformを使用していますが、それでも、私の可視性を低下させる特別な操作が常にあります。
存在しているが使用していないリソース/サービスに対して複数回課金されたため。
未使用のサービスには、他のサービスを指していないがAWS環境に存在するリソースが含まれます。
ツールの提案も歓迎します。
回答:
未使用のリソースを削除する方法はいくつかあります。信頼できるグループまたは既知のグループの一部であるアイテムにタグを付けたり、ここで提案されているようにタグを付けたり、適切にタグ付けされていないリソースを手動で監視したりする方法があります。
次に、これを頻繁に実行するPythonスクリプトに拡張して、これらのリソースを識別して削除することができます。
ただし、他の(潜在的にそれほど集中的ではない)オプションがあります。
1)AWSはすでにリソースを監視し、未使用のものを識別してCloudWatchアラームでそれらを終了する方法を提供しています。最初に、すでに手動で行っている可能性のある一連のチェックに基づいて、いくつかのアラームを設定することができます。アラームが正確であることを確認したら、チェーンに終了ステップを追加できます。
2)あるいは、Netflixの友人がJanitorMonkeyと呼ばれるこのチルツールを作成して、未使用のインスタンス、EBSボリューム、EBSスナップショット、および自動スケーリンググループを監視および削除しました。これは、Netflixからのいわゆる「Simian Army」オープンソースパックの一部であり、Javaで記述されています。今から数年経っているとはいえ、この設定は高度に設定可能で、一見の価値があります。
ここで両方のオプションを使用して、必要に応じて警告とビジネスルールを構成できます。さらに、CloudWatchを使用することは、AWSのログと異常の識別についてさらに学ぶ良い機会になるかもしれません。
私はそのようなツールを作成しました。それはAWS Inventoryと呼ばれ、最終的にはアカウントで利用可能なすべてのリソースをカバーします。それはまだ進行中の作業ですが、API名をリストに追加するだけで、不足している可能性のある項目を簡単に追加できます。
このツールは、用途があることだけで、単一のHTMLファイルであるaws-sdk.js
すべての異なる照会するlist...
とdescribe...
CORS対応サービスのAPIを。
プロジェクトはhttps://github.com/devops-israel/aws-inventoryにあるMITライセンスであり、オープンソースです。
AWSが提供するツールのみでそれを実行したい場合は、これを試してください:
すべてのリソースにタグを付けたら、AWS予算を使用して支出の変化を監視および追跡し、定義した予算のしきい値を超えたときにアラートを取得します。
また、AWS Costs Explorer内でいくつかのレポートを作成して定期的に確認し、リージョンの支出やサービスの支出などの毎日の変化を見つけます。
厳密で意味のあるタグ付けスキームを使用すると、無駄なお金を減らして健全なアカウントを維持できます。
これは、AWSコンソールだけを使用する1つの方法です。
私は他の多くの目的でTotalCloudを使用していますが、これはプラットフォームで非常に簡単に可能です。今のところ無料のようです。2つの大きなAWSアカウントで3か月間使用しています。
リソース/サービス間の関係を非常に簡単に理解できるようにする、視覚的なトポロジービューですべてを1つのビューに表示します。グループ化は、必要に応じてリソースを見つけるのに役立ちます。