技術

【AWS】mysqldump&S3バックアップ。それは一瞬の出来事

投稿日:

こんにちは、中田です。

RDSでしっかりとバックアップ!
とまでしなくていい場合、どうやろうかとか色々考えるの面倒ですよね。
なので、これやっとけば一先ずバッックアップ取れるってやり方を残しておきます。

前提

OS:CentOS6.4
mysql:5.6
AWSのAPI-KEY, S3のバケット作成済みであること

流れ

1.AWSコマンドラインインターフェイス(aws-cli)導入
2.シェルスクリプト作成
3.cron設定

以上!

1.AWSコマンドラインインターフェイス(aws-cli)導入

pipを使ってインストール作業をする訳ですが、pipが入ってなかったのでまずはそこから。

$ curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python
$ pip -V

はい、入りました。
では、aws-cliのインストールと初期設定を行います

$ sudo pip install awscli
$ aws configure

コマンド実行すると設定項目が聞かれます

AWS Access Key ID [None]: xxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json

AWS Access Key/AWS Secret Access Key は事前にAWSコンソール画面より作成したものを設定してください。

2.シェルスクリプト作成

aws-cliを使ってS3にバックアップをするシェルスクリプトを書きます

#!/bin/bash

BACKUP_PATH="/opt/data/"
S3_PATH="s3://data_backup/"
FILE_NAME="mysql_dump_`date +%Y%m%d%H%M%S`.sql.gz"

AWS_CONFIG_FILE="/home/centos/.aws/config"

cd $BACKUP_PATH
mysqldump -uAAAA -pBBBB CCCC | gzip > $FILE_NAME

find $BACKUP_PATH -type f -name "mysql_dump_*.sql.gz"  -mtime +14 -daystart | xargs rm -rf

aws s3 sync $BACKUP_PATH $S3_PATH  --delete

・BACKUP_PATHはmysqldumpファイルを格納する場所
・S3_PATHはバケットのパス
・mysqldumpの
AAAAはmysqlユーザー(前にスペースはいれない)
BBBBはパスワード(前にスペースはいれない)
CCCCは対象データベース
・findコマンドの行は、14日以降立ったものを削除してます
・最後の行はBACKUP_PATH毎同期を取ってます

3.cron設定

2.で作成したシェルをcronに設定して定期実行します

crontab -e

0 * * * * /home/centos/mysql_backup.sh

これで1時間毎、14日分のバックアップが自動で取れます。
いやはや、簡単簡単〜〜

感謝サイト
http://qiita.com/taiko19xx/items/215b9943c8aa0d8edcf6

-技術
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

[Rails]rake db:seedに成功しているのにuserテーブルにデータが作成されない!

こんにちは。たなかです。 railsで開発してて、seedファイルがうまく流し込 …

どの端末で見ても、要素を上下左右の中央に配置する!

こんにちは。たなかです。 最近はスマホで表示するWebアプリの開発をさせてもらっ …

git_logo

[Git] どのコミットでバグが入ったか原因究明する方法【git blame】

こんにちは。さとうです。 今回はgitを使って、どのコミットでバグが入ったか原因 …

no image

【ionic】Cannot read property ‘startTrackerWithId’ of undefined だとよ

どうも中田です。 GoogleAnalyticsプラグインを導入したのですが、A …

no image

auto_incrementの値を確認して変更

こんにちは、コーテッグのこやまです。 railsとmysqlを使っていて、自動で …