AWS の CloudWatch ロググループの保持期限を一括で設定するメモ。
AWS の CloudWatch ロググループの保持期限を一括で設定するメモ。 コンソールからたくさんのロググループの保持期限を手で変更していくのが面倒くさかったので AWS CLI で一括設定。
やったこと
aws logs describe-log-groups
コマンドで全ロググループを取得できるので取得したロググループに対して aws logs put-retention-policy
コマンドで保持期限を設定するだけ。
たとえば以下のコマンドでロググループの保持期限を30日に一括設定できる。
$ aws logs describe-log-groups | grep 'logGroupName' | sed -e 's/.*logGroupName": "//' -e 's/",.*//' | xargs -n1 -I{} aws logs put-retention-policy --log-group-name {} --retention-in-days 30
jq を使うと上のコマンドと同じことをもう少し簡潔に書ける。
$ aws logs describe-log-groups | jq -r '.logGroups[].logGroupName' | xargs -n1 -I{} aws logs put-retention-policy --log-group-name {} --retention-in-days 30