バックアップデータのリストアテストは(復元テストとも呼びます)自動バックアップが正しく動作しているか、バックアップデータに不備がないかを確認し、いざという時に、バックアップからデータを復旧できない!なんてことを防ぐためのテストです。しかし、リストアテストは、リストア先のサーバの用意が必要など、なかなかの手間がかかります。そこで今回は、さくらのクラウドを使って、すばやく簡単に WordPress のリストアテストを行う手順をまとめてみました。
バックアップからデータを復旧できない!なんてことあるの?
自動バックアップが動いていない、バックアップからデータを復旧できないなんてこと、本当にあるの? と思うかもしれませんが、実際の運用では残念ながら時々あります(^^;) 最近では GitLab.com で下のような事故がありました。
GitLab.comが操作ミスで本番データベース喪失。5つあったはずのバックアップ手段は役立たず、頼みの綱は6時間前に偶然取ったスナップショット − Publickey
私はこの記事を読んで、人ごとながらキリキリと胃が痛くなりましたが、当の本人たちはリカバリする様子をライブ配信していたそうです。(システム障害が発生したら、利用者に被害状況や復旧状況をいち早く公開/伝達するのが一番です)そのメンタルの強さと「転んでもただでは起きない」精神は素晴らしいと思います。
ただ、定期的にバックアップデータのリストアテストさえしていれば、このような事故も未然に防ぐことができたでしょう。
リストア先のサーバの用意(さくらのクラウド)
今回は、WordPressのリストアテストを行うので、LAMP環境が入ったサーバが必要になります。いくつかのクラウドサービスで試してみましたが、まったくなにも用意していない状態からであれば、さくらのクラウドが最速でLAMP環境を構築できると思います。
ではさっそくリストア先のサーバを用意しましょう。さくらのクラウドのコントロールパネルにログインして、「さくらのクラウド(IaaS)」をクリックします。
左メニューの「サーバ」を選択して「+追加」をクリックします。
「シンプルモード」のチェックを外します。
2.ディスクの「アーカイブ選択」で「CentOS 7.3 (1611) 64bit 〜」を選択します。
4.ディスクの修正の「管理ユーザのパスワード」(これが root ユーザのパスワードになります)と、適当な「ホスト名」を入力します。
「配置する スタートアップスクリプト」で「[piblic] zabbix-server 〜」を選択します。zabbix-server はサーバを監視するためのツールです、リストアテストにはまったく関係ありませんが、LAMP環境もこのスタートアップスクリプトでインストールしてくれるので、今回はこれを利用します。
一番下までスクロールして、「+作成」をクリックします。リストアテストが1時間以内で終われば10円でお釣りがきますね。
2〜3分でサーバが作成されます。
左メニューの「サーバ」をクリックして、IPアドレスを確認します。
以上で、リストア先のサーバが準備できました。作成されたサーバにSSHでログインします。
LAMP環境がインストールされるまで、こちらも2〜3分待ちます。進行状況は以下のコマンドで確認できます。
Apacheの設定変更
LAMP環境のインストールが終わったら、Apache設定を一箇所だけ変更します、これはWordPressを動作させるために必要な設定です。
vi /etc/httpd/conf/httpd.conf(151行目付近)
(略)
AllowOverride None
↓
AllowOverride All
リストア作業中に、意図しないファイルが公開されてしまうのを防ぐため、Apacheを一度停止しておきます。
リストア作業
本題のバックアップデータのリストア作業です。
WordPressコンテンツファイルのリストア
今回は、WordPressのバックアップ用プラグイン BackWPUp でとったバックアップデータをリストアします。
バックアップデータをドキュメントルート(公開ディレクトリ)以下に展開
不要なファイルを削除します。
rm -f /var/www/html/manifest.json
WordPressのアドレス(URL)を変更
IPアドレスでWordPressを表示できるように、WordPressアドレスとブログアドレスを変更します。
vi /var/www/html/wp-config.php
define('WP_HOME', 'http://<サーバのIPアドレス>/');
WordPressデータベースのリストア
まずリストア先のデータベースと、MySQL(正確にはMariaDB)ユーザを作成します。作成するデータベース名、ユーザ名、パスワードは、WordPressの設定ファイル「wp-config.php」を参照してください。
cat /var/www/html/wp-config.php
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wordpress');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'wordpress');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', '<パスワード>');
(略)
・以上をふまえてリストア先のデータベースと、MySQLユーザの作成
mysql
GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY '<パスワード>';
quit
WordPressデータベースのダンプファイルをリストアします。ダンプファイル名「wordpress.sql」はWordPress用のデータベース名になります。例えばWordPress用のデータベース名が「foo」の場合、ダンプファイル名は「foo.sql」になります。
ダンプファイルは、必ず削除もしくは公開ディレクトリから移動しておきましょう。
以上でリストア完了です。停止したApacheを起動します。
あとはWEBブラウザで「http://<サーバのIPアドレス>/'」にアクセスして、WordPressサイトが正しく表示されていることを確認します。
かたずけを忘れずに!
確認が終わったら、クラウド貧乏にならないように、忘れずにサーバを削除しておきましょう。
おわりに
サーバのデータバックアップを行うことは、かなり浸透していると思いますが、リストアテストまでは、手が回っていないのが実情ではないでしょうか?(正直私もできていません、、)
ただ、頼みの綱のバックアップデータが使えなかった時の、あの絶望感は今思い出しても胃が痛くなります。本当に目の前が真っ暗になりました(^^;) そんな思いをしないように、バックアップ運用の一部として、ぜひリストアテストを実施しておきたいですね。
コメント