技術

【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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

【ionic】Android build Error: Uh oh!(ええとああ!)

どうも中田です。 環境をいろいろとupdateしたら $ionic build …

no image

HTMLタグだけでアコーディオンを実装する

こんにちは htmlタグのdetailsというのは知っていますか? 僕も初めて知 …

【Alexa Skill】ビックリするなかれ (Unsupported Directive)

どうも中田です。 みなさんAlexa使ってます?Alexaスキル作ってます? 今 …

no image

【AngularJS】 $on, $emit, $broadcast

どうも、なかたです。 AngularJSのコントローラー(スコープ)間のデータや …

プログラミンを触ってみた

2020年から小学校でのプログラミング教育が必修になる(かも?)ということで、 …