- WordPressを始めたけど、どのようにバックアップを取ればよいかわからない
- BackWPupプラグインをとりあえずインストールしてみた・・・
- いろいろなサイトでオススメされた通りに設定したけど、このままで良いのか不安
WordPressのバックアップとしてBackWPupプラグインを紹介する記事は多いですが、なんとなく設定していませんか?
バックアップはそれぞれのサイト運営に合わせた設計が重要となります。しかし、”バックアップ設計”を解説したサイトというのは非常に少ないです。きちんと”バックアップ設計”をしておかないと、本当にバックアップデータが必要になった際に役に立たない可能性があります。
この記事では、国内大手サーバーベンダーで8年間勤務し、現在はバックアップソフトウェアベンダーでエンジニアをしている私が、それぞれのサイト運営に合わせたバックアップ設計方法について解説します。
WordPressにおけるバックアップとは?
データの紛失や損失、破損などの障害が発生した際に、元の状態に戻せるようにデータのコピーを保管しておくことをバックアップと呼びます。WordPressのブログ運営においてもバックアップは非常に重要です。
バックアップが必要な理由
バックアップが必要となるのは、データの紛失や損失、障害が発生したときです。そのデータの紛失や損失、障害がが発生する要因となるのが、以下のパターンです。
- 人為的ミス
操作や設定のミス、メンテナンス不備により発生する障害の一つです。特に、ファイルの編集や削除といったファイル操作や編集中の記事を消してしまうといったWordPressの操作ミスにより発生することが多いです。 - サイバー攻撃
ウイルス攻撃やランサムウェア、不正侵入によるデータ改ざん、破壊等になります。データを改ざんまたは破壊をされると、サイトへのアクセスができなくなったり、不具合が発生することがあります。 - ソフトウェア障害
WordPressやプラグインのバグやアップデート、プラグインの競合等による不具合があります。 - ハードウェア故障
WordPressを利用されている方の多くはレンタルサーバを契約しているケースが多いため、原則レンタルサーバ提供事業者が対策をされている - 自然災害
地震や火事、水害等の自然災害によって、サーバーやネットワーク機器などのハードウェア障害が発生することがあります。
ハードウェア障害同様にレンタルサーバを利用している場合には
WordPressでバックアップが必要なデータ
WordPressには大きく分けてバックアップする必要があるデータが以下の2種類があります。
- ファイル
WordPressの構成ファイルやテーマ、プラグイン、画像などのメディアがファイルとして保存されています。 - データベース
投稿記事、コメント、各種設定、ログイン情報等がデータベースに保存されています。
この2つをバックアップしておくことで、もしすべてのデータが消失した場合でもWordPressのサイトを復旧することが可能になります。
WordPressのバックアップ手法
WordPressをバックアップするための手法として以下の3つがあります。
- バックアッププラグインによるバックアップ
BackWPupやUpdraftPlusといったWordPressのバックアップ用プラグインを使用した方法です。
多くのサイトで設定方法が紹介されているため、初心者でも簡単にバックアップを取得することができますが、無償版では機能が制限されていることがあります。 - レンタルサーバ自動バックアップ
WordPressをレンタルサーバ上で運用している場合には、レンタルサーバが自動でバックアップを取得している可能性があります。自動的に取得されるため、詳細な設定を行うことはできません。他のバックアップ方法と併用して補助として活用することをオススメします。 - 手動バックアップ
WordPressのファイルとデータベースを手動でバックアップする方法です。スクリプト化することで自動化することも可能です。多少の知識が必要となりますが、最も自由度の高いバックアップ設計が可能になります。
バックアップ設計
バックアップの「3-2-1 ルール」
有名なバックアップ手法の一つに「3-2-1 ルール」と呼ばれるものがあります。データの破損や損失、ウィルス感染などの様々な障害に対して、効果的にデータを保護し復旧するためのルールです。
「3-2-1 ルール」ではそれぞれの数字が安全なバックアップの特徴を示しています。
- 3つ以上のデータコピーを保持
- 2つ以上の異なる媒体にコピーを保管
- 1つは遠隔地に保存
3つ以上のデータコピーを保持
3つ以上のデータコピーとは、対象のデータ(プライマリ)に加えて2つ以上のバックアップを保持する必要があることを示しています。
もしデータコピーを一つしか保持していない場合、この一つのデータに障害が発生した場合には、データの復旧ができなくなります。しかし、複数のバックアップデータをコピーを保持している場合には、一つのデータに障害が発生した場合でも別のバックアップデータのコピーから、復旧が可能になります。
複数のバックアップデータをコピーを保持することで、すべてのバックアップデータを同時に失う確率が低くなることから、バックアップデータのコピーは保持する数が多ければ多いほど、データ損失のリスクを下げることができます。
ただし、バックアップデータの保持にはストレージが必要となるため、無制限にコピーを増やすわけではなく、最低でも3つ以上のデータコピーを保持することが必要とされています。
2つ以上の異なる媒体にコピーを保管
2つ以上の異なる媒体とは、バックアップデータは対象のデータ(プライマリ)と異なるメディアへの保管する必要があることを示しています。
3つ以上のデータコピーを保持していたとしても、同じストレージに保管していたのでは、そのストレージに障害が発生した場合に、すべてのコピーを失ってしまうため、意味がありません。
レンタルサーバの自動バックアップやプラグインでサーバ内にバックアップしている場合には、注意が必要です。バックアップデータはレンタルサーバー上のストレージに存在するため、災害等によりレンタルサーバに障害が発生した場合には、復旧ができなくなります。
一般的には外付けストレージ(外付けHDDやBD/DVD/CD等)やNAS、クラウドストレージ等の、サーバに障害が発生した場合でも、参照が可能なメディアへの保管が、必要とされています。
1つは遠隔地に保存
1つは遠隔地とは、バックアップデータのうち1つ以上は対象のデータ(プライマリ)とは異なる場所に保存する必要があることを示しています。
2つ以上の異なる媒体にデータを保管していたとしても、保管場所が同じであれば、自然災害等でデータを失った場合、復旧することができません。
レンタルサーバを利用していて、異なる媒体として、クラウドストレージや自宅のストレージ(PCやNAS)を利用する場合には、すでに遠隔地への保管ができているため、問題ありません。
レンタルサーバを利用せず、自宅にサーバを構築している場合には、データをクラウドや遠隔地に保管する必要があります。
バックアップ設計に最低限必要な5項目
ここからはバックアップ設計に必要となる5項目を解説します。順番に検討す進めることで、だれでも簡単に、バックアップ設計を進めることができます。
各項目の最後に設計例と解説を載せているので、こちらを参考にバックアップに必要な項目を決めてください。
なぜバックアップするのか?
始めに「なぜバックアップするのか?」を決めます。次以降の検討を進める上での基準となるため、もっとも重要な項目です。
なぜバックアップするのか?と言われると、バックアップが必要な理由でも説明した通り、データの紛失や損失、障害が発生したときに、データを復旧するため。という理由になると思いますが、ここで言っているのは、もう少し具体的な内容です。
言い換えると、どのような障害に備えるか?ということを決めます。人為的ミスに備えるのと、ハードウェア障害に備えるのでは、バックアップへのアプローチが異なるためです。
何をバックアップするか?
次に「何をバックアップするか?」を決めます。
WordPressには大きく分けるとバックアップ対象は、ファイルとデータベースの2種類があります。先ほど想定した障害ごとに、ファイルとデータベースのどちらが必要となるかを考えます。
どこにバックアップするか
次は「どこにバックアップするか?」を決めていきます。こちらも言葉の通り、バックアップデータをどこに保管するかを決めることになります。
バックアップデータの保存先としてはいくつかの選択肢があります。
- レンタルサーバ内
- クラウドストレージ(Dropbox、Googleドライブ等)
- 自己所有PC
- 自宅NAS(NASを所有しているならオススメ)
この中から、それぞれの障害が発生した際に、データが取り出せる場所にバックアップデータを保管します。
例えば、記事の編集に失敗した場合には、レンタルサーバからデータを取り出すことが可能です。
しかしレンタルサーバに障害が発生した場合には、レンタルサーバ上にバックアップデータがあるとアクセスすることができません。そのため、レンタルサーバとは別の場所に、バックアップデータを保管する必要があります。
これが、上で説明したバックアップの「3-2-1 ルール」の「2つ以上の異なる媒体にコピーを保管」が意味するものです。
いつバックアップするか?
次は「いつバックアップするか?」を決めます。バックアップを実行する頻度とタイミングです。
バックアップ頻度は、高ければ高いほど障害発生時の出戻りを少なくすることができます。例えば毎日バックアップを取得している場合には、障害が発生しても1日前に戻ることができます。
しかし、1か月に1度しかバックアップを取得していない場合には、最大で1か月前まで戻ることになります。つまり1か月分の作業が無駄になってしまうのです。
極端な例だと、毎分バックアップを取得すれば、無駄になる作業量は最大で1分間分となりますが、バックアップを頻繁に取得するとそれだけバックアップ先のストレージを使用することになります。クラウドストレージを使用する場合には容量の増加に伴い、費用も掛かります。
そのため、バックアップ頻度はサイトの変更(記事更新やコメント)の量と比例させるのが原則です。
バックアップタイミングは基本的に、サーバへの負荷が低い時間帯に行います。一般的にはサイトへのアクセスが少ない深夜等の時間に設定しますが、サイトへの変更を深夜に行う場合には、その時間をさけたほうが、変更中の中途半端なバックアップとなる可能性を避けることができます。
どの位の期間バックアップデータを保持するか?
最後に「どの位の期間バックアップデータを保持するか?」を決めます。
バックアップデータの保持期間は、障害が発生したことにどのくらいの期間で気が付くことができるか?というのがポイントになります。
例えば、障害が発生したことに1か月後に気が付いた場合、バックアップデータの保持期限が1週間だと、最も古いバックアップデータは1週間前のものになるため、障害が発生した状態のものをバックアップしたものになるため、復旧することができません。
バックアップ方法
バックアップ設計に必要な5項目を決めたら、いよいよバックアップ方法の検討に移ります。
同一のバックアップを重複してバックアップする必要はないため、バックアップタイミングと保持期限が共通のものは、同時にバックアップを取得することにします。条件が共通のものをまとめたものが、実際に取得が必要となるバックアップの設定です。
あとは、バックアップ設定を実現可能な方法にて、バックアップの設定を行えば、それぞれのサイト運用に適したバックアップを実現することができます。
バックアップ設計例
以上でバックアップ設計は完了となります。ここまでに、設計例として作成してきたバックアップ設定のまとめると、以下の3つとなります。
- バックアップ対象 : ファイル、データベース
- バックアップ先 : レンタルサーバ、クラウドストレージ(Dropbox)
- バックアップ方法 : スケジュール実行(毎日2:00)
- データ保持期限 : 2週間
- バックアップ対象 : ファイル、データベース
- バックアップ先 : レンタルサーバ
- バックアップ方法 : 手動実行(システム変更前/後の任意のタイミング)
- データ保持期限 : 1年間
- バックアップ対象 : ファイル、データベース
- バックアップ先 : クラウドストレージ(Dropbox)
- バックアップ方法 : スケジュール実行(毎月1日 2:00)
- データ保持期限 : 2年間
具体的なバックアップ方法の決め方と設定方法については、今後記事を作成します。
コメント