ほとんどが、この記事のパクリインスパイア。
https://qiita.com/taiko19xx/items/215b9943c8aa0d8edcf6
↑こちらでは全DBをわーっとdumpしてるけど、DB毎にやったほうが使い勝手がいいかなーと。
AWS cli install
ここを参考にインストールしましょう。
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-tutorial-cli-installation.html
もしくはpipが入ってればこれで一発。
sudo pip install awscli
AWS cli cofigure
IAMでS3をフルアクセスできるユーザを作って、アクセスキー、シークレットをゲットします。
そしてconfigureの設定をしましょう。
aws configure
AWS Access Key ID [None]: KEEEEEYYYYYYYYY
AWS Secret Access Key [None]:
Default region name [None]: ap-northeast-1
Default output format [None]: json
こんな感じのシェルを用意しましょう。
#!/bin/bash
BACKUP_PATH="/your/backup/dir/db_backup/"
S3_PATH="s3://hoge-aws-db-backup/"
FILE_NAME="mysql_dump_`date +%Y%m%d`.sql.gz"
AWS_CONFIG_FILE="/home/ec2-user/.aws/config"
ARRAY=(hoge_db fuga_db nyamo_db moga_db abeshi_db ohyo_db)
cd $BACKUP_PATH
for item in ${ARRAY[@]}; do
mysqldump --single-transaction -u user -ppassword $item | gzip > $item_$FILE_NAME
done
find $BACKUP_PATH -type f -name "*_mysql_dump_*.sql.gz" -mtime +6 -daystart | xargs rm -rf
aws s3 sync $BACKUP_PATH $S3_PATH --delete
ARRAYの中にバックアップしたいDB名を羅列します。
適当な時間にcron設定しましょう。
0 3 * * * /home/ec2-user/bin/db_backup.sh
いーじょー
参考記事)
https://qiita.com/taiko19xx/items/215b9943c8aa0d8edcf6