今すぐできる!WordPress のリストアテスト

2017年3月3日  カテゴリー:WEB  タグ: ,
Pocket
LINEで送る

バックアップデータのリストアテストは(復元テストとも呼びます)自動バックアップが正しく動作しているか、バックアップデータに不備がないかを確認し、いざという時に、バックアップからデータを復旧できない!なんてことを防ぐためのテストです。しかし、リストアテストは、リストア先のサーバの用意が必要など、なかなかの手間がかかります。そこで今回は、さくらのクラウドを使って、すばやく簡単に 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でログインします。

ssh root@<IPアドレス>

LAMP環境がインストールされるまで、こちらも2〜3分待ちます。進行状況は以下のコマンドで確認できます。

tail -f /root/.sacloud-api/notes/112900025293.log

Apacheの設定変更

LAMP環境のインストールが終わったら、Apache設定を一箇所だけ変更します、これはWordPressを動作させるために必要な設定です。

vi /etc/httpd/conf/httpd.conf(151行目付近)

<Directory "/var/www/html">
(略)
AllowOverride None
 ↓
AllowOverride All

リストア作業中に、意図しないファイルが公開されてしまうのを防ぐため、Apacheを一度停止しておきます。

systemctl stop httpd

リストア作業

本題のバックアップデータのリストア作業です。

WordPressコンテンツファイルのリストア

今回は、WordPressのバックアップ用プラグイン BackWPUp でとったバックアップデータをリストアします。

バックアップデータをドキュメントルート(公開ディレクトリ)以下に展開

tar xvzf backwpup_*.tar.gz -C /var/www/html/

不要なファイルを削除します。

rm -f /var/www/html/*pluginlist*.txt
rm -f /var/www/html/manifest.json

WordPressのアドレス(URL)を変更

IPアドレスでWordPressを表示できるように、WordPressアドレスとブログアドレスを変更します。

vi /var/www/html/wp-config.php

define('WP_SITEURL', 'http://<サーバのIPアドレス>/');
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

CREATE DATABASE wordpress;
GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY '<パスワード>';
quit

WordPressデータベースのダンプファイルをリストアします。ダンプファイル名「wordpress.sql」はWordPress用のデータベース名になります。例えばWordPress用のデータベース名が「foo」の場合、ダンプファイル名は「foo.sql」になります。

mysql wordpress < /var/www/html/wordpress.sql

ダンプファイルは、必ず削除もしくは公開ディレクトリから移動しておきましょう。

rm /var/www/html/wordpress.sql

以上でリストア完了です。停止したApacheを起動します。

systemctl start httpd

あとはWEBブラウザで「http://<サーバのIPアドレス>/'」にアクセスして、WordPressサイトが正しく表示されていることを確認します。

かたずけを忘れずに!

確認が終わったら、クラウド貧乏にならないように、忘れずにサーバを削除しておきましょう。

おわりに

サーバのデータバックアップを行うことは、かなり浸透していると思いますが、リストアテストまでは、手が回っていないのが実情ではないでしょうか?(正直私もできていません、、)

ただ、頼みの綱のバックアップデータが使えなかった時の、あの絶望感は今思い出しても胃が痛くなります。本当に目の前が真っ暗になりました(^^;) そんな思いをしないように、バックアップ運用の一部として、ぜひリストアテストを実施しておきたいですね。

スポンサーリンク
Pocket
LINEで送る

コメントを残す

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