実稼働環境の構築:Webアプリケーション—復旧計画
序章
サンプルアプリケーションのセットアップが完了したので、回復計画を立てる必要があります。 リカバリプランは、サーバーセットアップ内の潜在的な障害または管理エラーからリカバリするための一連の文書化された手順です。 リカバリプランを作成すると、アプリケーションサーバーのセットアップに不可欠なコンポーネントとデータを特定するのにも役立ちます。
サーバー障害の非常に基本的な復旧計画は、最初のサーバー展開を実行するために実行した手順のリストと、バックアップからアプリケーションデータを復元するための追加の手順で構成されます。 より優れたリカバリプランは、優れたドキュメントに加えて、展開スクリプトと、Ansible、Chef、Puppetなどの構成管理ツールを活用して、リカバリプロセスの自動化と迅速化に役立てることができます。
チュートリアルのこの部分では、セットアップしたサンプルのWordPressアプリケーションの基本的なリカバリプランを作成する方法を示します。 あなたのニーズはおそらく異なるでしょうが、これはあなたがあなた自身の回復計画を考案することを始めるのを助けるはずです。
復旧計画の要件
基本的な要件は、セットアップでのサーバーの損失から回復し、アプリケーションの機能とデータを(妥当な時点まで)復元できることです。 この目標を達成するために、各サーバーのインベントリを作成し、バックアップする必要のあるデータを決定し、使用可能な資産に基づいて復旧計画を作成します。 もちろん、これらの回復計画のいずれかが実行された場合は、アプリケーションをテストして、正しく復元されたことを確認する必要があります。
アプリケーションで構成されるサーバーの種類ごとに、復旧計画を立てます。
- データベースサーバー
- アプリケーションサーバー
- ロードバランサーサーバー
データベースサーバーを使い始めましょう。
データベースサーバー
手順をたどると(そして前のチュートリアルを見ると)、次の手順に従ってデータベースサーバーが作成されたことがわかります。
- MySQLをインストールする
- MySQLを構成する
- MySQLを再起動します
- データベースとユーザーを作成する
データベースサーバーの回復計画
データベースサーバーをどのように作成したかを見ると、データベース自体の内容(手順4で作成)を除いて、最初から再作成できることがわかります。 WordPressの例では、ほとんどのアプリケーションデータ(つまり ブログ投稿)はデータベースに保存されます。 これは、データベースサーバーを回復できるようにする場合は、データベースのバックアップを維持する必要があることを意味します。 MySQL構成ファイルも少し変更されているため、バックアップします。
データベースサーバーのインベントリに基づいて、データベースサーバーの復旧計画の概要を以下に示します。
必要なバックアップ:
- MySQLデータベース
- MySQL構成
回復手順:
- MySQLをインストールする
- MySQL構成ファイルを復元し、(変更された場合は)リスニングIPアドレスを更新します
- データベースを復元する
- MySQLを再起動します
データベースサーバーの復旧計画の概要がわかったので、復旧手順の詳細を検討し、必要なバックアップを確実に維持する必要があります。 実際の設定によって異なるため、回復手順の詳細については、読者の演習として残しておきます。 例の場合、回復手順の基礎となるドキュメントとしてアプリケーション展開チュートリアルを使用できます。
アプリケーションサーバー
手順をたどると(そして前のチュートリアルを見ると)、次の手順に従ってアプリケーションサーバーが作成されたことがわかります。
- ApacheとPHPをインストールして構成します
- アプリケーションのダウンロードと構成(WordPress)
- アプリケーションファイルをDocumentRootにコピーします
- すべてのアプリケーションサーバー間でアプリケーションファイルを複製する
アプリケーションサーバーリカバリプラン
セットアップ手順を見ると、アプリケーションファイル以外にアプリケーションサーバーを最初から再作成できることがわかります。 WordPressの例では、アプリケーションファイルには、WordPress構成ファイル(データベース接続情報を含む)、インストールされているWordPressプラグイン、およびファイルのアップロードが含まれています。 これは、アプリケーションサーバーを回復できるようにする場合は、アプリケーションファイルのバックアップを維持する必要があることを意味します。
アプリケーションファイルは複数のアプリケーションサーバーに複製されるように設定されているため、すべてのアプリケーションサーバーに障害が発生した場合、またはデータが何らかの理由で破損した場合にのみ、バックアップからデータを復元する必要があります。 少なくとも1つのアプリケーションサーバーが正常に実行されていて、正しいアプリケーションファイルがある場合は、ファイルレプリケーションを再度設定すると、適切なファイルが新しいアプリケーションサーバーに復元されます。
アプリケーションサーバーのインベントリに基づいて、アプリケーションサーバーの復旧計画の概要を説明しましょう。
必要なバックアップ:
- アプリケーションファイル(
/var/www/html/
、この例では)回復手順:
- ApacheとPHPをインストールして構成します
- 動作中のアプリケーションサーバーからアプリケーションファイルを複製する
- アプリケーションファイルを複製できない場合(すべてのアプリケーションサーバーが停止している場合)、バックアップから復元します
アプリケーションサーバーの復旧計画の概要がわかったので、復旧手順の詳細を検討し、必要なバックアップを確実に維持する必要があります。 実際の設定によって異なるため、回復手順の詳細については、読者の演習として残しておきます。 例の場合、回復手順の基礎となるドキュメントとしてアプリケーション展開チュートリアルを使用できます。
ロードバランサーサーバー
手順をたどると(そして前のチュートリアルを見ると)、次の手順に従ってロードバランサーサーバーが作成されたことがわかります。
- 取得したSSL証明書と関連ファイル
- インストールされたHAProxy
- 構成済みのHAProxy
- HAProxyを再起動しました
ロードバランサーサーバーの復旧計画
このインベントリを見ると、SSL証明書に関連するファイルを除いて、ロードバランサーサーバーを最初から再作成できることがわかります。 これは、ロードバランサーサーバーを回復できるようにする場合は、SSL証明書ファイルのバックアップを維持する必要があることを意味します。 また、バックアップにHAProxy構成ファイルを含めます。
ロードバランサーサーバーのインベントリに基づいて、ロードバランサーサーバーの復旧計画の概要を説明しましょう。
必要なバックアップ:
- SSL証明書(PEM)および関連ファイル
- HAProxy設定ファイル
回復手順:
- SSL証明書ファイルを復元する
- HAProxyをインストールする
- HAProxy設定ファイルを復元する
- HAProxyを再起動します
ロードバランサーサーバーの復旧計画の概要がわかったので、復旧手順の詳細を検討し、必要なバックアップを確実に維持する必要があります。 実際の設定によって異なるため、回復手順の詳細については、読者の演習として残しておきます。 例の場合、回復手順の基礎となるドキュメントとしてアプリケーション展開チュートリアルを使用できます。
その他の考慮事項
コンポーネントの1つを回復するために他のコンポーネントを再構成する必要がある場合、たとえば データベースサーバーのIPアドレスが変更された場合は、リカバリプランに適切な手順を含めるようにしてください。
また、DNSなど、セットアップに存在する他のすべてのコンポーネント、およびバックアップサーバー、監視、ロギングなど、将来追加するすべてのコンポーネントの回復計画を作成することもできます。 サーバーのセットアップが進化するにつれて、既存のリカバリー計画を繰り返す必要があります。
また、バックアップの作成と復元の方法についてはまだ説明していません。そのため、後でそれらの詳細を入力する必要があります。 このチュートリアルの次のパートでは、バックアップについて説明します。
結論
さまざまなサーバーの回復計画を準備した後、サーバーのセットアップとは別に、回復を実行できる必要がある人がアクセスできる場所にこの情報を保持する必要があります。
次のチュートリアルに進んで、新しいリカバリプランをサポートするために必要なバックアップの設定を開始します:本番用の構築:Webアプリケーション—バックアップ。