About
GitLabにはバックアップの仕組みが標準で備わっており、クラウドストレージへのバックアップ機能を利用すれば、S3等のクラウドストレージに簡単にバックアップを保存できます。
非常に便利な機能なのですが、バックアップ先がクラウドストレージの場合、backup_keep_time
の設定が機能しないらしく、バックアップファイルが日々増えていき、場合によっては無駄な課金が発生することになります。
暫定対応
暫定的な対応として、バックアップファイル数を一定数に保つbashスクリプトをcronで定期実行することにしました。AWS CLIがインストールされていることを前提としています。
あとはGitLab側の対応を待つことにします。。。
#!/bin/bash
# Set your credentials if you want to configure locally.
#export AWS_ACCESS_KEY_ID=PUT_YOUR_ACCESS_KEY
#export AWS_SECRET_ACCESS_KEY=PUT_YOUR_SECRET_ACCESS_KEY
#export AWS_DEFAULT_REGION=ap-northeast-1
S3_BUCKET=PUT_YOUR_BACKET_NAME
NUM_TO_KEEP_BACKUP=7
files=(`aws s3 ls s3://${S3_BUCKET} | sort -nr | awk '{print $4}'`)
for ((i = 0; i < ${#files[@]}; ++i)); do
if test $i -ge $NUM_TO_KEEP_BACKUP; then
aws s3 rm s3://${S3_BUCKET}/${files[$i]}
fi
done