各種サービスのアプリデータのバックアップについての基本方針。
1.対象データ
データ1)DBデータ
MariaDB、PostgreSQL、SQLServerなどのデータ。
データ2)アプリデータファイル
サービス固有のデータファイル。細かいファイルがどんどん増えていく。
2.バックアップ先
異なるタイミングで2拠点にバックアップする。
転送先1)LAN内サーバー
同一センター内でプライベートネットワーク内の別サーバー
転送先2)別拠点サーバー
別事業者の別地域のサーバー。例えば、実サーバーがConoHaの東京リージョンの場合、転送先2としては、ConoHa以外の事業者(ニフクラやさくらインターネット等)で、東京以外(大阪とか)のサーバーにする。
3.バックアップのタイミング
1)1時間毎
DBデータ、アプリデータファイルをバックアップフォルダにバックアップして、転送先1)LAN内サーバーに転送する。
2)日毎
DBデータ、アプリデータファイルをバックアップフォルダにバックアップして、転送先2)別拠点サーバーに転送する。。
4.バックアップ方法
データ1)DBデータ
データベースアプリのバックアップ方法によりバックアップファイルを作成し、必要あればgzip等で圧縮する。
今のところ、フルバックアップでも問題ないため、すべてフルバックアップとする。
データ2)アプリデータファイル
rsyncコマンドにて、バックアップフォルダに差分コピーする。過去ファイルが残っていても問題ないなら、deleteオプションはつけない。
5.転送方法
データ1)DBデータは、scpによるファイル転送。
データ2)アプリデータファイルについては、rsync over sshで転送。
※プライベートネットワーク内であれば、rsyncプロトコルでもいいかもしれないが、ここもssh経由とする。
6.バックアップのローテート
データ1)DBデータ
転送先1)LAN内サーバーについては、バックアップファイル、またはディレクトリに時間(date +%H)を付けることで、24セット(24時間)でローテートする。
転送先2)別拠点サーバーについては、日にち(date +%d)を付けることで、翌月の同日にローテートする。
データ2)アプリデータファイル
1セットとしてローテートしない。
7.その他
1)ホストベース認証
バックアップ先のサーバーに、バックアップ専用のユーザーを作成し、そのユーザーに対してホストベース認証を許可する。
suコマンドによるrootユーザーへのスイッチは禁止しておく。
2)タスクの優先度
バックアップ元(アプリ運用中のサーバー)のバックアップ処理については、以下コマンドで実行することで、優先度を下げること。
ionice -c 2 -n 7 nice -n 19 コマンド
バックアップ先のサーバーについては、バックアップ専用のため、優先度は気にしない。
実際の設定は、次の記事。