【WordPress】IDCFクラウドの無料オブジェクトストレージでミラーサイトをつくってみた

 

 

 

概要

 

クラウドサービスを利用してWordPressでブログを立ち上げる場合、不測の事態に陥った時にどうやって迅速に復旧するか、いつも頭を悩まします。バックアップはとっていても、まさかの時にバックアップデータが壊れていないかとても心配です。

しかし、本番で稼働しているサイトとまったく同じ環境で動作するミラーサイトを作っておけば、本番のサイトが表示できなくなっても、本番サイトドメインのDNS設定を切り替えるだけで復旧できるので安心です。

 

 

環境

 

IDCFクラウド環境

  • サーバー  (仮想マシン・ハードウェア専有マシン)
    S1:200円

  • ボリューム(ディスク)
    基本 15GB:300円

  • オブジェクトストレージサービス
    50GB未満無料
    https://www.idcf.jp/cloud/storage/

  • WordPress仮想マシンKUSANAGIテンプレート使用

※ドメイン管理、DNSサーバーはお名前ドットコム

 

 

データミラーリングの流れ

 

本番で稼働しているサイトとまったく同じ環境で動作するミラーサイトを作成するためには、本番と同じバージョンのWordPressをあらかじめインストールする必要があります。サイトドメイン以外は同じ構成で設定でインストールしておく必要があります。

データミラーリングの大まかな流れは、次のようになります。

 

  1. 本番環境WodPressバックアップデータを作成する
  2. バックアップデータをオブジェクトストレージに転送する
  3. ミラー環境にオブジェクトストレージのバックアップデータを取込む
  4. ミラー環境WordPressにバックアップデータをリストア(復元)する

 

 

本番環境WodPressバックアップデータを作成する

 

WordPressのバックアップは、WordPressインストール先のデータファイルとデータベースを保存しておく必要があります。データベースはWordPressインストール時に指定したデータベースです。

WordPressのバックアップ方法についてはWordPressリファレンス 「WordPress のバックアップ」を参考にしました。

 

 

WordPressファイルのバックアップデータ作成

 

WordPressインストール先のデータコンテンツフォルダ(wp-content)の中に存在する次の3つのフォルダを圧縮して保存します。

  • plugins(プラグイン)
  • themes(テーマ)
  • uploads(メディアファイル)

 

tar -zcvf (プラグインバックアップデータファイル名).tar.gz (データコンテンツフォルダ)/plugins
tar -zcvf (テーマバックアップデータファイル名).tar.gz (データコンテンツフォルダ)/themes
tar -zcvf (メディアファイルバックアップデータファイル名).tar.gz (データコンテンツフォルダ)/uploads

 

 

WordPressデータベースのバックアップデータ作成

 

WordPressデータベースのバックアップはWordPressリファレンス 「データベースのバックアップ」に詳しい方法が記載されています。

WordPressデータベースのバックアップは、WordPressで使用しているデータベースをエクスポートしてそのデータを保存します。エクスポートの方法には、プラグインを使用する方法、phpMyAdmin等のデータベース接続ツールを使用する方法などいろいろありますが、今回は自動でバックアップする必要があるため、コマンドラインからバックアップファイルを作成する方法を採用しました。

 

mysqldump --single-transaction -u DBユーザ名 -p DB名 > 出力先ファイル名

 

“–single-transaction”オプションは、対象テーブルがInnoDBの場合は必ずつけておいた方がよいオプションです。このオプションをつけておくとバックアップ中でもデータベースを停止することなく、バックアップをとることが可能です。バックアップ開始直後にスナップショットをとって、そのデータを出力しているため書込みロックも読み込みロックもかかりません。

 

–single-transaction
このオプションはサーバからデータをダンプする前にBEGIN SQLステートメントを発行します。InnoDBといったトランザクションテーブルに対してのみ便利です。なぜなら、アプリケーションをブロックせずに、BEGINが発行された当時のデータベースの状態をダンプするからです。 このオプションを使用しているときは、一定の状態でダンプされるのはInnoDBテーブルのみだということを留意してください。例えば、このオプションを使用中にダンプされたMyISAMやMEMORYテーブルは状態が変化する可能性があります。
4.5.4 mysqldump — データベースバックアッププログラム(MySQL)

 

 

 

バックアップデータをオブジェクトストレージに転送する

 

オブジェクトストレージはIDCFクラウドのオブジェクトストレージを使用します。オブジェクトストレージのアクセスはs3cmdを使用しますので、インストールしていない場合は、下記のIDCFリファレンスを参考にしてインストールします。

 

s3cmd自体はオープンソースでIDCFに問い合わせても質問に答えてもらえませんが、IDCFのリファレンスに導入方法が載っています。これにしたがって進めていけば別段悩むことなくインストールできそうです。

 

 

バックアップデータ転送スクリプト

 

先ほど作成したWordPressバックアップデータをs3cmdを使用してオブジェクトストレージに転送します。

 

準備

下記のコマンドを実行してバックアップ用のバケットを作成します。
※バケットを利用するため最初に一度だけ実行します。(転送時にはここで作成したバケット名を指定します)

s3cmd mb s3://バックアップ用バケット名

 

バックアップデータ転送

バックアップスクリプトを作成します

s3cmd put 転送対象データファイル名 s3://バックアップ用バケット名

 

 

【IDCFクラウド】無料オブジェクトストレージにバックアップしてみる

 

 

ミラー環境にオブジェクトストレージのバックアップデータを取込む

 

オブジェクトストレージに格納した本番バックアップデータをs3cmdを使用してミラー環境に取込みます。

 

バックアップデータ取り込み

データ取込スクリプトを作成します

s3cmd get s3://バックアップ用バケット名/取込対象データファイル名

 

 

 

ミラー環境WordPressにバックアップデータをリストア(復元)する

 

さきほどの処理で、本番環境WordPressのバックアップデータをミラー環境にすでに取り込み済みですので、バックアップデータを展開してミラー環境のWordPressのデータベースおよびデータコンテンツフォルダに反映することで、ミラー環境のデータは本番環境のデータと同期されます。

 

WordPressの復元の方法についてはWordPressリファレンス「WordPressの引っ越し」を参考にしました。

 

 

WordPressファイルのバックアップデータ復元

 

本番環境のバックアップデータをミラー環境WordPressのインストール先のデータコンテンツフォルダ(wp-content)の中に復元します。

  • plugins(プラグイン)
  • themes(テーマ)
  • uploads(メディアファイル)

 

tar -xvzf (プラグインバックアップデータファイル名).tar.gz -C (データコンテンツフォルダ)/plugins
tar -xvzf (テーマバックアップデータファイル名).tar.gz -C (データコンテンツフォルダ)/themes
tar -xvzf (メディアファイルバックアップデータファイル名).tar.gz -C (データコンテンツフォルダ)/uploads

 

 

WordPressデータベースのバックアップデータ復元

 

WordPressの方法についてはWordPressリファレンス 「データベースの復元」を参考にしました。

 

mysql -h mysqlサーバーホスト名 -u ユーザー名 -pPASSWORD データベース名 < データベースバックアップファイル名

 

 

WordPressデータベース設定データ(ミラーサイトULR)の変更

 

WordPressのデータベースをすべて本番環境と同じにすると、WordPress設定画面のサイトURLも本番環境と同じになってしまいます。そこで、本番環境のデータベースをミラー環境に反映した後に、サイトURLの設定情報だけあとで変更します。

 

update wp_options set option_value='ミラーサイトのURL' where  option_name='siteurl' or option_name='home' ;

 

以上です。

 

 

まとめ

 

結局ここでやっていることは、データのバックアップとリストアを自動化しているだけなので、サイトURLやWordPressインストール先のパス名等の環境によって変わる部分をパラメータ化すれば、汎用的なバックアップスクリプト・リストアスクリプトとして使えます。WordPressのあまたあるプラグインの中からバックアッププラグインを探して使うのが楽ですが、データやファイル構成を調べながらスクリプトを書いてみるのもいろいろ新しい発見があっておもしろいです。

ちなみに、このブログサイトのミラーサイトは、https://diy.smart-agri.infoです。

 

 

 

 

おまけ

2017/08/01追記
WordPressプラグインの中には使えるバックアッププラグインもあるだろうと思っていろいろ探してみました。

おすすめWordPressバックアッププラグインを比較、吟味しているサイトの中では、次のサイトがかなりわかりやすかったです。

 

WordPressをバックアップする優良プラグイン8選を徹底比較!

 

 

このサイトではバックアップ系プラグインとしてBackWPupとUpdraftPlus WordPress Backup Pluginを紹介しており、機能と安定性の面でBackWPupをすすめています。他のブログやまとめサイトの記事でもBackWPup押し多いのですが、ダウンロードサイトの評価でいうとUpdraftPlus WordPress Backup Pluginのほうが五つ星の数が多く評価が高いようです。どちらも同様の機能を備えているので、UIや好みの面で意見が分かれるのかもしれません。

ただ、これらの多くのバックアッププラグインはバックアップするところまでは無償ですが、リストアやそれ以外のサービスになると有償版を購入するか、手動でバックアップデータをリストアする必要があるようです。

時間ができたら、一度記事で紹介されていたバックアッププラグインをインストールしてバックアップを試してみたいと思います。

 

 

 

参考

 

IDCFオブジェクトストレージ資料

IDCFクラウド、IDCFrontierのサイトから抜粋しました

 

従量プラン

50GB未満無料! まずはお試しください

項目 初期費用
/一時費用
料金
ストレージ利用料*1 月間平均使用量 50GB未満 0円 0円
50GB以上 7.8円/GB
ネットワーク転送料 INトラフィック 0円
OUTトラフィック 10.0円/GB *2
リクエスト課金 APIリクエスト 0円
  • *1月間平均使用量が50GB未満の場合は、料金の請求を行いません。月間平均使用量が50GBに達した場合は、50GBに単価を乗じた料金(50GB×7.8円/GB=390円)が適用されます。
  • *2IDCフロンティアサービス間のトラフィックは無料となります。また、月間データ転送量が10GB未満の場合は、ネットワーク転送料の請求を行いません。月間データ転送量が10GBに達した場合は、10GBに単価を乗じた料金(10GB×10.0円/GB=100円)が適用されます。

 

ネットワーク転送量は課金対象ですか?

■インターネット経由で接続されている場合
オブジェクトストレージのネットワーク転送料は、月間のOUTトラフィックが10GBを超えた場合のみ課金対象となります。INトラフィックは課金対象外です。
ただし、オブジェクトストレージからIDCフロンティアのサービス(クラウド、データセンター)へのOUTトラフィックは課金対象外となります。

また、IDCFクラウドとオブジェクトストレージをインターネット経由でご利用いただいている場合は、IDCFクラウド(コンピューティング)のOUTトラフィックのネットワーク転送量が別途課金対象*となります。
*月間で3,240GBまでは無料です

【図表】オブジェクトストレージのネットワーク課金体系

Image

Image