その他
    ホーム 技術発信 DoRuby IDCF オブジェクトストレージを利用したMySQLのバックアップ

    IDCF オブジェクトストレージを利用したMySQLのバックアップ

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    rickNo39です。
    IDCフロンティアでは、スナップショットという機能がありますが、対象ディスク全てが対象となりサイズと時間で従量課金となるため、オブジェクトストレージ(の無料枠)を利用して対象ファイルだけバックアップを行った設定を記載します。

    事前設定

    使用するミドル

    • logrotate
    • mysql

    料金プラン

    50GBまで無料、10TBまでの定額プラン有
    136.7GBまで保存すると定額プランのほうがお得になってくるようです。

    オブジェクトストレージへ送信・削除

    vim /etc/logrotate.d/mysql-dump
    —–
    /extdisk1/dump/*.sql {
    create 600 mysql mysql
    daily
    rotate 7
    size 0
    missingok
    dateext
    compress
    create 444
    postrotate
    mysqldump -uroot -h localhost –single-transaction –opt –all-databases > /extdisk1/dump/dump.sql
    endscript
    lastaction
    // 圧縮したdumpをオブジェクトストレージに送信
    s3cmd put /extdisk1/dump/dump.sql-`date ‘+%Y%m%d’`.gz s3://バケット名
    // logrotateでは当日分圧縮してくれないので自分で圧縮
    cp /extdisk1/dump/dump.sql /extdisk1/dump/dump.sql-new
    gzip /extdisk1/dump/dump.sql-new
    // 当日分のdumpもオブジェクトストレージへ送信
    s3cmd put /extdisk1/dump/dump.sql-new.gz s3://バケット名
    // 6日前(実質7日前)のdumpを削除
    s3cmd del s3://バケット名/dump.sql-`date -d ‘6 day ago’ ‘+%Y%m%d’`.gz
    endscript
    }
    —-

    容量確認のメール送信

    日々容量を確認するのも手間なので、
    下記のようなシェルを作成しcronで設定してメールを送るようにします。
    vim object_storage_consumption.sh
    —-
    #!/bin/bash
    PID=$!
    TIMER=1
    HOSTNAME=”hoge@hoge.com”
    ADDRESS=”hoge@hoge.com”
    DATA=`timeout -s 9 60 s3cmd du -H`
    if [ -n “$DATA” ]; then
    BODY=”IDCF オブジェクトストレージ使用量\n$DATA\n50GBから有料、136.7GBを超える場合はプラン変更”
    echo -e “$BODY” | /usr/bin/mail -s ‘IDCF Object storage consumption’ -r $HOSTNAME $ADDRESS
    echo “s3cmdからデータを取得できませんでした。”
    fi
    —-

    たまに?オブジェクトストレージのレスポンスがやたら遅くてメールの中身が途中で途切れることもありますが、気にしない。

    以上、とっても簡単バックアップ方法でした。