Logs#AWS#Boto3小林陸2023.05.31この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。Logsにロググループが溜まっていきます。放置していると料金も発生してくるので使われなくなったロググループを削除するスクリプトを作成してみました。作成したスクリプト作成したスクリプトは以下のGitHubリポジトリに格納しています。input('問題無い場合はyキーを押下してください。削除しない場合はnキーを押下してください。'は削除されませんでした。print("指定されたキー以外が入力されました。一度入力してください。ロググループを削除します。処理の内容は以下のようになります。Timeを取得します。9行目でdescribe_log_groupsロググループの一覧を取得します。11行目でfor文を使いロググループの数だけ処理を行うようにしています。12行目でロググループの名前を取得して、13~18行目でdescribe_log_streamsを使用して最新のログストリームを取得します。19行目でログストリームから最終更新日を取得します。Timeよりも小さい場合に削除処理を行えるようif文を入れています。22~33行目で本当に削除してよいのか確認を行うようにしました。yキーを押下すると削除します。nキーを押下すると削除されません。それ以外のキーの場合はもう一度キーを押下させるようにしています。確認などは不要で今すぐ該当のロググループを消したい人向けに確認無しのスクリプトも作成しました。実行環境はCloudShellを使用しました。CloudShellを開き以下のコマンドを実行してください。CloudShellの使用方法は以下のドキュメントを参照してください。cloudwatch_logs_delete.py上記のコマンドを実行すると一つ一つ削除するか確認する方のスクリプトを実行します。確認を行わないで全て削除するスクリプトを動かす場合は3行目と4行目のファイル名を「cloudwatch_logs_delete_all.py」に変更してください。さいごに基本的に今回作成したスクリプトはシステムの検証環境や開発環境でだけ使用することをお勧めします。本番環境にあるログは殆どが重要なものになるはずなので、操作ミスで削除してしまうリスクは減らしましょう。しても本番環境で削除したい場合は以下のブログにある弊社千葉の作成した保持設定を一括で変更するLambda関数を使用するのがよいと思います。