ウェブサイトをバックアップおよび復元する方法

公開: 2018-05-07

ビジネス Web サイトを構築するときに、一般的に最初に心配するのは、サイトを立ち上げて稼働させることです。 多くの作業が必要ですが、重要なのはすべてを機能させることです。

それで、順調に稼働していましたが、突然、何かが起こります。 なくなってしまった。 ファイルが見つかりません。

ローカル サーバー上に Web サイトを構築している場合は、すでにバックアップがあると感じるかもしれません。 すべてが 2 か所にありますよね? ファイルはサーバー上とコンピューター上に存在します。

何が問題になる可能性がありますか?

何が起こるかを考えるのに多くの想像力は必要ありません。 予期せぬ電力サージや、3 歳児がラップトップに牛乳を注ぐのが楽しいと判断したなど、何らかの理由でコンピューターが停止してしまいます。 しかし、サーバーに保存されているのですから、心配する必要はありません。

そんなに早くない…。

サーバーに問題が発生したり、超格安で一見信頼できるホスティング プロバイダーが何の前触れもなく倒産したりしたらどうなるでしょうか? あなたの Web サイトがデータベースを実行しているという事実についてはどうですか? コンピュータ上にすべてのファイルの正確なコピーがありますか?

ここで、Web サイトのバックアップが重要になります。

この記事では、Web サイトのバックアップについて、その理由、内容、方法など、知っておくべきことをすべて説明します。

Web サイトをバックアップする必要があるのでしょうか?

Web サイトをバックアップする必要がある理由はさまざまです。

1. マルウェア/ランサムウェア

詳細には触れませんが、完全に安全なシステムなどというものは存在しません。 どれだけ多くのセキュリティ手順やプロトコルを導入しても、すべてのシステムは脆弱です。

安全にはある程度のレベルがありますが、一部のシステムは他のシステムよりも脆弱です。 Web サイトをあらゆる種類の攻撃から防ぐことは事実上不可能であり、実際にユーザーがサイトを使用することが予想される場合はさらに困難になります。

これをあなたの家のように考えてください。 フォートノックスのように密閉することもできますが、そうすると誰も中に入ることができなくなるので、ドアが必要になります。 確かにドアにはしっかりした鍵が付いていますが、いつでも誰かが窓から侵入する可能性があります。

どのシステムにおいても最も弱いのは人間です。 フィッシング攻撃に遭うのは、悪意のあるクリックを 1 回行うか、重要な電子メールのように見えるメールに返信するだけです。 ソフトウェアなどを介して誰かがあなたのシステムに侵入すると、身代金を求めてあなたのファイルを制御する可能性があります。

あなたのサイトやファイルを返してくれるかもしれないし、返してくれないかもしれない見知らぬ人にお金を払う代わりに、コピーを持っていれば、はるかに危険にさらされることは少なくなります。

2. 削除されたファイル/不正なコマンド/人的エラー

サーバー上の間違ったファイルを削除するという単純なことでも、Windows/Mac では単に「クリック/削除」するか、Linux またはその派生版ではコマンドラインを使用して、キー ファイル、さらに言えばすべてのファイルを消去することができます。

(Linux では、コマンド rm -r diretoryname はディレクトリとその中のすべてのファイルを削除しますが、多くの場合、確認なしで、さらに悪いことに、 rm -rf / は読み取り専用ファイルやルートからすべてを削除する可能性があり、これにより基本的にマシン全体!)。

3. ハック

悪意のある行為は私たちが思っている以上に一般的です。 場合によっては、マルウェアやランサムウェア型のハッキングほど単純ではないこともあります。 スポーツとしてウェブサイトをハッキングする人はたくさんいます。 Web サイトのコンテンツがハッカーにとってそれほど価値がないと考えられるものであっても、この問題は依然として発生する可能性があります。

これは、WordPress などの人気のあるプラットフォームを使用している人にとって特にリスクです。これらのプラットフォームには十分に文書化された弱点が多数あり、パッチを適用しないと大きな標的を背負うことになります。

4. 悪い開発者/従業員/誰でも

多くの企業は、サイトの設計をサードパーティに大きく依存しています。 ほとんどの場合、Web 開発者は他の人たちと同じように正直です。 ほとんどの人 (<smile>本当に </smile> など) は素晴らしい、正直な (そして謙虚な!) 人たちです。

しかし、支払いに関する紛争に巻き込まれる可能性はありますか? 何を倫理的な行動とみなすかということに関しては、人は人によって大きく異なります。 Web サイトのバックエンドにアクセスできる怒っている (または極悪な) 従業員が、気に入らない場合や何らかの理由でサイトを削除することは非常に簡単です。

これは私たちが考えたくないことですが、安全であることが一般的には良いことです。

5. サーバーのクラッシュ

テクノロジーは機能すれば素晴らしいものです。 ほとんどの場合、特に堅実で評判の良いホスティング会社を使用している場合、サーバーがクラッシュしてデータが消去されることはまれです。

しかし、最高のプロバイダーにも問題はあります。

また、最近では多くの場合、サイトは仮想サーバー上でホストされている可能性が高くなります。 言い換えれば、データは独立した物理コンピューター上にあるのではなく、他の多くの人や企業と共有されます。 ホスティング プロバイダーが 1 台の物理サーバー上で多数の異なる「仮想」インスタンスをホストするのは非常に一般的です。

ほとんどの格安 Web ホスティング会社では、これは一般的であり、大金を投じて独自の物理サーバーを取得するつもりがない限り、スペースを共有することになる可能性が非常に高いです。 別のセグメントで問題が発生した場合、サイトやファイルに影響を及ぼす可能性があります。

また、1 台の物理サーバーでサイトをホストしている場合でも、それは本質的には単なるコンピューターにすぎません。 サーバーは自分のコンピュータと同じように安全な場所に保管される傾向がありますが、それでも何か問題が発生する可能性は常にあります。

サーバーが過熱する可能性があり、予期せぬ自然災害、タイミングの悪い電源変動、さらにはデータの損失を引き起こす隠れたメーカーの欠陥が発生する可能性があります。

さらに、サーバー ファームは、組織的な専用サービス拒否 (DDOS) 攻撃の標的になる可能性があり、極端な場合には完全な再起動が必要になる場合があります。 これには、データの一部またはすべてが失われる潜在的なリスクが常に伴います。

これらの理由から、一般に、すべての重要なデータのコピーを別の場所に保存しておくことをお勧めします。そのため、これらのいずれかが可能であれば、たとえそのようなことが発生する可能性がどれほど低くても (ケースバイケースで異なります)。

Web サイトで何をバックアップする必要がありますか?

バックアップする必要があるものの種類は、次のカテゴリに分類できます。

1. ファイル

これらは Web サイトを構成するすべてのファイルです。 これらには、Web サイトの中核部分であるすべてのページ/スクリプト/CSS ファイル、画像、ドキュメント、またはマルチメディア コンテンツが含まれます。

これらは変化しないコンテンツであると考えることができます。 それらは静的なオブジェクトとして残ります。 そのため、これらは通常、サイト内で管理とバックアップが最も簡単な部分になります。

2. データベース

おそらくそうなのですが、ほとんどの Web サイトではデータベースを使用して、重複コンテンツのバリエーションである可能性が高い製品、個々のページ、またはその他のアイテムを保存しています。

データベースがある程度静的である場合 (つまり、サイト上のほとんどの項目がほとんど変更されない場合)、ファイルと同様にバックアップを維持するのは比較的簡単です。

ただし、ほとんどの場合と同様に、このコンテンツがブログ投稿、製品、トランザクション、その他定期的に変更または追加されるものなど、流動的な場合は、このデータを定期的にバックアップする方法を見つける必要があります。

3. メールアカウント

ユーザーの電子メールまたは連絡先情報の記録を保存している場合。 また、完全な電子メール サーバーと、ホストを介したすべての電子メール トランザクションの記録も存在する可能性があります。 このアカウントを使用したやり取り、電子メール、メーリング リストのすべての記録を保持したいと思うでしょう。

クイックメモ:連絡先情報をメール サーバー以外のデータベースに保存している場合は、それもバックアップする必要があります。

ウェブサイトをバックアップする方法

サイトのバックアップは特に難しいことではありませんが、バックアップを開始するには、複数の方法があることを理解しておく必要があります。 品質、信頼性、簡単さ (スキル レベルに応じて) によって異なります。 一般に、複数を使用することをお勧めします。

1. Web ホスト経由

適切な Web ホストは、Web サーバー上のすべてのファイルの自動バックアップを作成する必要があります。 Web ホストはこれを内部で行う必要があり、通常はユーザーが何をするかに関係なく毎日バックアップを作成します。

したがって、何かが起こった場合には、Web ホストのバックアップに頼ることができるはずです。

ただし、Web ホストは通常​​、複数のバックアップ バージョンを保持しておらず、ユーザーは彼らのなすがままになります。 独自のバックアップを手動で作成するための何らかのツールが用意されています。

たとえば、ほとんどの Web ホストで使用される一般的なコントロール パネルである cPanel を使用して、Web サイトの完全バックアップを簡単に作成できます。

cPanelを使用したWebサイトの手動バックアップ

サーバーのバックアップ ツールを使用するには、プロバイダーに問い合わせて、提供されているマニュアルを読む必要があります。 通常、ファイルは zip ファイルとして保存され、サーバーに保存されます。

プラットフォームによっては、希望する形式のタイプを指定する必要がある場合があります。 また、必要になった場合にバックアップを復元する方法についても説明します。

Webサーバーファイルのバックアップ Web ホストがこのバックアップされたコピーをサーバー上に提供する場合は、それが Web サイトとは別のサーバーに保存されていることを確認してください。 サーバーがクラッシュする可能性があります。

プロバイダーのサービスを使用する利点は非常に明白です。 通常、ホストとの接続はシームレスです。

ただし、欠点は特にホスティングプロバイダーに関係しています。 彼らはサイトをホスティングするのには優れているかもしれませんが、すべての卵を 1 つのかごに入れておくのは決して賢明ではありません。

サーバー ファームで火災が発生したり、ハッカーから何らかの攻撃を受けたりするなど、何か問題が発生した場合 (確かに、このような事態は時折発生します。誰も免疫を持たず、ホスティング プロバイダーが主な標的となります)。

上記のような理由から、ファイルのコピーをコンピュータに時々ダウンロードすることをお勧めします。 また、少なくとも手動でサイトのコピーを自分で保存したいと思うこともあるでしょう。

2. CMS Webサイトバックアッププラグイン

WordPress などの一般的な CMS を使用している場合は、Backup Buddy など、インストールできるプラグインが多数あります。 これらは非常に便利で、インストールも非常に簡単です。

ただし、バックアップ プラグインは通常、サイトの速度を低下させるという悪影響を与える可能性があります。 PHP は WordPress のネイティブ プログラミング言語であるため、ほとんどのプラグインも PHP を使用します。

これは効果的ですが、動作が遅くなる傾向があります。つまり、実行中にサイトの速度が低下する可能性があり (通常、サイトを作成しているのと同じエンジンから実行されます)、サイトが乱雑になります。これは理想よりも高いレベルの抽象化でもあります。

もう 1 つの要因は、皮肉なことに、サイトをより脆弱にしている可能性があることです。 PHP 自体には、特に使用されているコードが古いか、ずさんに書かれている場合に、セキュリティ上の問題がいくつか知られています。

これらのプラグインに組み込まれるコードを完全に確信していない限り (そして真剣に、他人のソース コードをじっくり検討する時間は誰にあるでしょうか?)、データを安全に保つために使用しているプラ​​グインによって、データの安全性が低下する可能性があります。 (はい、多くは評判が良く、高品質のコードを提供しています。ここでパニックになることはありませんが、これは心に留めておくべきことです)。

PHP は優れたコーディング言語 (私のお気に入りの 1 つであり、毎日使用しています) ですが、できるだけ多くの機能をこのプラットフォームの外部で実行し続けることをお勧めします。 通常は、OS レベルでバックアップを実行する場合に使用します。

Linux またはその派生製品を実行している場合は、Windows ではシェル スクリプトまたはバッチ ファイルを、Mac では macos ファイルを実行することになるでしょう。

3. Web サイトの手動バックアップ

私たちの多くは、ファイルをバックアップする「昔ながらの」方法、つまりすべてのファイルのコピーを作成し、リムーバブル ハード ドライブに保存するか、クラウドに保存する方法に精通しているかもしれません。

これは基本的に Web サイトで使用する方法と同じですが、いくつかの注意点があります。

もちろん、Web サイトをローカルに作成し、それを FTP (またはできれば SFTP) 経由でホストに転送した場合、技術的にはすでにサイトのコピーが存在します。

ただし、重要な違いがあります…

サイトにデータベースがある場合、ライブ サイトとは異なるコンテンツがローカル (テスト データベース内) に存在する可能性が高くなります。 これは、ある種の CMS ソフトウェア (WordPress など) を使用している場合に特に当てはまります。

この場合、サイト上のほぼすべてのコンテンツがデータベースに保存され、データベース自体の外部にはファイルが存在しないことになります。

データベースのバックアップは、特に MySQL を使用している場合、実際には比較的簡単です。 必要なのは、データベースの SQL ダンプを取得することだけです。 これは、データベースのすべてのコンテンツを含む単なるプレーン テキスト ファイルです。

作成したら、簡単にアップロードするか、ファイルとして実行してデータベースを再構築できます。

コマンドライン方式

これは比較的簡単です。 次のコマンドはデータベース全体をバックアップします。

$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql

これらとさまざまなオプションの実行に関する詳細が必要な場合は、MySQL ドキュメントを参照してください。

PhpMyAdmin メソッド

データベースのエクスポート タブに移動し、必要なオプションをすべて選択します (通常は、「テーブルの削除」を含めて、古いバージョンに新しいコピーをロードできるようにするデータベース オプションを作成しますが、購入者は注意してください...既存のデータを完全に消去して、新しいコピーに置き換えます)。

その後、作成されたすべてのファイル (ソース コード、データベース、イメージ) を圧縮して、好きな場所にコピーを保存できます (私は個人的に Google ドライブや Dropbox などのクラウド ストレージを使用するのが好きです)。

明らかな欠点は、これを忘れずに行う必要があり、非常に忘れやすいことです。 したがって、これをさらに一歩進めたい場合は、これらすべてを実行するスクリプトを作成し、システムを使用してこれらを定期的に実行できます。

Linux では、コマンドライン経由で SQL ダンプを実行し、このスクリプトを cron ジョブとして実行し、1 日に 1 回、1 週間に 1 回、または任意の時間枠で実行するのが比較的簡単です。

Windows では、バッチと組み込みのタスク スケジューラを使用できます。 私の典型的な方法は、SQL ダンプを使用してバッチを実行し、ディレクトリ全体を Dropbox アカウントに一括コピーすることです。

クイックメモ:これらが保存されているディレクトリを定期的に空にすることをお勧めします。 テキスト ファイルである SQL ファイルは小さい傾向にありますが、時間の経過とともに蓄積される可能性があり、画像やマルチメディア ファイルの他のバックアップを実行している場合は、やがてドライブ/サーバーが継ぎ目で破裂してしまうことがあります。

4. ウェブサイトバックアップサービス

もちろん、これらすべてを手動で処理するのは少し面倒に感じるかもしれません。 それでも注意が必要で、ディレクトリを消去するのを忘れるという単純なことで、ファイルがドロップされたり、アカウントに突然料金が追加されたりする可能性があります(Dropbox では数ギガを無料で利用できますが、その後すぐに料金が上がります)。

このため、ビジネス サイトを運営している場合は、専門的なバックアップ サービスを利用することをお勧めします。 これらは通常、上記のすべてをより信頼性の高い方法で実行します。

手動バックアップとは異なり、他の人があなたの代わりに作業を行い、発生する可能性のある小さな問題すべてに対処します。 プラグインとは異なり、プラグインはサイトの外部で実行されます。 追加する必要はありません。 処理速度が低下することはなく、その際にセキュリティ上の脆弱性が生じることもありません。

以下は、いくつかの人気のあるバックアップ サービスの非常に簡単なサンプルです。 (免責事項: これは、包括的なガイドを目的としたものではなく、世の中にあるものを理解するのに十分なだけです。私は言及されているすべてのサービスをテストしたわけではありません)。

  • Sucuri バックアップ – Web サイトのセキュリティのために Sucuri の使用を推奨しているため、優れたソリューションです。
  • コードガード
  • バックアップガード
  • 私のサイトをドロップ

Web サイトのバックアップ戦略: ベスト プラクティス

どの方法を選択する場合でも、Web サイトのバックアップにはワークフロー計画を立てる必要があります。

上記の方法はすべて機能しますが、適切な戦略を立てる必要があります。そうしないと、前述のシステムに重大な脆弱性が発生する可能性があります。

チェックリストを作成し、次のカテゴリに対する回答を決定します。

1. Web サイトをバックアップする頻度はどれくらいですか?

これは重要。 バックアップを毎日実行しますか、それとも毎月実行しますか?

サイトに変更 (新製品、新しいブログ投稿など) があるたびに実行するというアイデアを検討することもできます。 これはあなた次第ですが、計画を立てておく必要があります。

2. 自動スケジューリング

上記に続いて、スケジュールを設定することが重要です。 ベースラインとして、バックアップを実行するスケジュールを設定することをお勧めします。

3. リモートストレージを使用する

このデータはどこに保存されていますか? サーバーやラップトップに単にコピーを保存することは望ましくありません。 外付けハードドライブを使用しますか? クラウド? どのクラウドサービスですか?

4. 保存期間

各バックアップのコピーをどれくらいの期間保持する必要がありますか? 1 年前のファイルは必要なのでしょうか、それともゴミが溜まっているだけで、より最近のバックアップで置き換えることができるのでしょうか?

5. 暗号化

バックアップのセキュリティは、特に機密情報 (機密の製品価格情報やさらに重要な顧客記録など) がある場合に重要です。

バックアップを暗号化して保護するための計画を立ててください (AES 256 ビット秘密キー暗号化と TLS/SSL トランスポート セキュリティ)。 暗号化について詳しくは、こちらをご覧ください。

6. バックアップを RAID アレイに保存する

RAID アレイ (独立したディスクの冗長アレイ) は、Web サイトやデータの複数のコピーを作成するのに良いアイデアであるだけでなく、パフォーマンスも向上します。

いずれかのディスクに障害が発生した場合に備えて、追加の保護を提供します。 これは、専門のバックアップ サービスが提供する一般的な機能です。

7. 選択的復元

サイトのすべての部分を復元する必要がない場合に備えて、手順を用意してください。 おそらくほとんどは大丈夫ですが、いくつかの部分が失われた可能性があります。

たとえば、1 つの製品テーブルが破損した場合、SQL ダンプ内のその部分を置き換えるだけで済みます。 通常、これは、すべてを消去して 1 つのファイルを置き換えるよりも良いアイデアです。

実際、何か問題が発生した場合にすべてを交換するのはよくある間違いです。 もちろん、これでも機能しますが、最後のバックアップ以降に発生した内容はすべて失われます。

すべてを交換する必要があるかどうかを確認することが最善です。 他のすべてが失敗した場合の最後の手段として、完全なバックアップを保存してください。

ウェブサイトのバックアップを復元する方法

サイトは消えてしまいましたが、バックアップはあります。 バックアップからサイトを復元するにはどうすればよいですか? これは比較的簡単です。

コピーが zip ファイルとして保存されている場合は、それを解凍し、すべてのファイルを元の場所にロードして戻します。

SQL ファイル (SQL ダンプ中に作成されたテキスト ファイル) を取得し、コマンドラインを使用してデータベースを再作成するか、phpMyAdmin (または MySQL Workbench などの他のグラフィカル データベース管理システム) を使用する場合は、ファイルをインポートするか、全体を SQL ウィンドウにコピーして実行します。

ローカルでテストし、すべてが機能している場合は、すべてをサーバーにロードし直します。 すぐにバックアップして実行できるようになるはずです。

専門的なバックアップ サービスを使用している場合、このプロセスはさらに簡単になる可能性があります。 まともなサービスであれば、部分的な復元でもサイト全体の復元でも、バックアップを復元するためのツールが提供されているはずです。

ボーナスヒント: 開発にはステージングを使用する

既存のファイルを単純にバックアップするだけでなく、独自のサイトを開発している場合、または開発者のチームと協力している場合は、開発プロセス中のすべての段階の記録を保持するためのバージョン管理システムを検討することをお勧めします。

サイトを構築するとき、通常、サイトの設計方法にバージョンが追加され、変更が加えられます。 おそらく、サイトの完全な再設計を行っているが、古いサイトのコピーを保持したいと考えているかもしれません。

また、よくあることですが、サイトの開発中に何かひどい問題が発生し、変更される前の状態のファイルを見つける必要があります。 また、サイトを公開する前に更新や変更を行うために、サイトのローカル開発バージョンを保存しておくこともできます。

ここでバージョン管理システムが活躍します。 これらは、変更を加えるたびにフォルダーのコピーを作成することに似ていますが、より整理されており、共同開発が可能になります。

Git は、開発プロセスを適切に整理しておくための素晴らしいツールです。 これは、ローカルで適切なコードのバックアップを作成すると同時に、安全なリモート バックアップのためにクラウドに簡単に移動できるように機能します。

異なるディレクトリにファイルの複数のコピーを置く代わりに。 ファイルはブランチに保存されるため、複数の人が競合のリスクを最小限に抑えてファイルを操作できるようになります。

準備ができたら、メインの開発ブランチにマージし、最終的にはマスター ブランチにマージしてデプロイできます。

以下に、最も人気のある 2 つの Git リポジトリを示します。

  • GitHub は、ソース コードを共有する場合は無料ですが (本質的にはオープン ソースです)、非常に手頃な価格のプライベート コード リポジトリも提供します。 コード スニペットを探すのにも最適な場所であり、開発者の素晴らしいコミュニティをホストしています。
  • BitBucket も同様です。 コミュニティとしてはそれほど大きくありませんが、いくつかのプライベート リポジトリを無料で提供しています。

結論

いくつかの方法には他の方法よりも優れた利点がありますが、Web サイトのバックアップは必要不可欠であり、見落としてはなりません。 理想的には、上記の方法を組み合わせて使用​​することを検討してください。

ファイルの重複コピーを必ず作成しておくと、将来的に大きな頭痛の種を避けることができます。 サイトに何も悪いことが起こらず、これが必要ない場合でも、心配せずに余分に睡眠が取れることを考えてください。

ファイルをコンピュータにバックアップします。 あなたのウェブサイトも同じルールに従う必要があります。