リカバリ・ワークフローについて
Phoenix DRaaSは堅牢な災害復旧システムを提供します。これによりデータは常に保護され、プライマリシステムに障害が発生した場合はデータの安全性を考慮した計画性の高いフェイルオーバー機構を利用できます。Phoenix DRaaSの高度なオーケストレーション機能を使用することにより、本番環境およびテスト環境に対して仮想マシンのフェイルオーバー処理をより細かく制御できます。どのように機能するか詳細を以下に記します。
設定の流れ
リカバリ・ワークフローはユーザーの要件によってカスタマイズでき、フェイルオーバー処理をより適切に制御し、高速かつ信頼性の高いフェイルオーバーが行われます。次の図は、フェイルオーバー処理の設定方法を示しています。
- 手順1:DRプランの作成
まずDRプランを作成して、データベースサーバー、アプリケーションサーバー、およびWebサーバー(フロントエンドサーバー)を持つWebアプリケーションなど、複数の仮想マシンで構成されるアプリケーションを保護します。 - 手順2:リカバリ・ワークフローの編集
リカバリ・ワークフローはRunbookとして機能し、アプリケーションの要件に従って実行されます。これにより、DRプラン内の仮想マシンを論理的にグループ化し、定義された順序で操作を実行するように手順の定義が行えます。DRプランを作成する場合、Phoenix DRaaSはDRプランのデフォルトのリカバリ・ワークフローを自動的に作成し、DRプラン内のすべての仮想マシンを単一のVMブート手順に追加することで作業を簡単にします。Phoenix 管理コンソールのDRプラン詳細ページ内にある [ Recovery ] タブの [ Recovery Workflow ] セクションで、デフォルトのリカバリ・ワークフローを確認できます。仮想マシン(VM)の起動や時間差などの複数のリカバリ・ワークフローを追加することにより、デフォルトの復旧ワークフローをフェイルオーバー要件に従って編集できます。VMの起動と時間差について詳細を以下に示します:- VMブート:DRプランで仮想マシンのグループのブート順序を定義し、リカバリパスにスクリプトを追加して、EC2インスタンスのホスト名の変更、サービス構成の変更、ネットワーク経路やゲートウェイなどの追加または削除などの重要な操作を実行できます。
- 時間差:リカバリ操作時の2つの手順を実行する間に時間差を追加できます。
リカバリ・ワークフローを使用してすべてを構成できる内容の詳細については、リカバリ・ワークフローのカスタマイズを参照してください。
- 手順3:フェイルオーバーを起動
する復旧フローをカスタマイズしたら、フェイルオーバー操作をトリガーして、DRプランで指定された構成とフェイルオーバー設定に基づいてAWSアカウントのアプリケーションの仮想マシンを復旧します。運用セットアップまたはテストセットアップでフェイルオーバーを起動する方法の詳細については、「災害復旧フェイルオーバーの起動」を参照してください。
リカバリ・ワークフローのカスタマイズ
リカバリ・ワークフローを使用すると、次のタスクを実行できます。
- VMブート工程をリカバリ・ワークフローに追加し、実行シーケンスを指定
- 仮想マシンの起動後に実行するオンブートスクリプトを追加
- スクリプト実行時のタイムアウトを指定
- 仮想マシンのフェイルオーバーが手順において失敗したときにフェイルオーバージョブをキャンセルする場合、工程の中止設定を有効化
- 2つの工程を実行する間に時間差を追加
- 必要に応じて、仮想マシンのブート手順を既存から別のものに移動
- 工程の実行順序を変更。工程をドラッグアンドドロップするだけで、実行順序を変更できます。
- リカバリ・ワークフローからVMブート工程を削除。手順からVMブート工程を削除する前に、すべての仮想マシンをその工程から別のVMブート工程に移動する必要があります。
- リカバリ・ワークフローから時間差の工程を削除。
DRプランのリカバリ・ワークフローを編集する方法の詳細については、フェイルオーバーリカバリ・ワークフローの編集を参照してください。
参考設定例
リカバリ・ワークフローの詳細な例を考えてみましょう。Webアプリケーションが、データベースサーバー、アプリケーションサーバー、Webサーバー(フロントエンドサーバー)などの仮想マシンで構成されているとします。Webアプリケーションでは、アプリケーションサーバーとWebサーバーが起動する前にデータベースサーバーがオンラインで実行されている必要があります。Webサーバーの1つにポストブートスクリプトを追加し、フェイルオーバーしたEC2インスタンス向けにDNSレコードを更新し、スクリプトの実行が成功した場合にのみフェイルオーバー操作を続行するとします。
次の手順を使用して、Webアプリケーションのリカバリ・ワークフローを実装します。
- DRプランを作成し、次の仮想マシンをDRプランに追加します。
- データベースサーバー:Database_Server_1 と Database_Server_2
- アプリケーションサーバー:Application_Server_1 と Application_Server_2
- Webサーバー:Web_Server_1 と Web_Server_2
詳細については、DRプランの作成 を参照してください。
|拡大画像を見る|
- Webアプリケーションの要件に従って、ディザスタリカバリ・ワークフローを編集します。
- 手順1:VMブートを定義して、2つのデータベースサーバーを起動します。
- 手順2:VMブートを定義して、2つのアプリケーションサーバーを起動します。
- 手順3:VMブートを定義して、2つのWebサーバーを起動します。ポストブートスクリプトをWeb_Server_2 仮想マシンに追加してDNSレコードを更新し、スクリプト実行の失敗時にこの仮想マシンのフェイルオーバーを中止するようにします。
- DRプランのフェイルオーバーを起動します。本番またはテスト用の設定でフェイルオーバーを起動する方法の詳細については、「ディザスタリカバリフェイルオーバーの起動」を参照してください。
フェイルオーバーを起動した後、[ Job Details ] ページの [ Recovery Workflow ] タブでフェイルオーバーの状況を確認できます。次のスクリーンショットは、アプリケーション上の仮想マシンオーケストレーションを表しています。
リカバリ・ワークフローの動作
Phoenix DRaaSはフェイルオーバー時にDRプランで設定されたすべての仮想マシンを同時に変換します。DRプランのフェイルオーバーを起動すると、リカバリ・ワークフローで定義されているすべてのVMブート工程の仮想マシンが並列変換され、RTOが削減されます。その結果、対応する工程の実行が開始されるまで、いくつかのEC2インスタンスが停止状態になることがあります。
次のスクリーンショットは、DRリカバリ・ワークフローにおける仮想マシンの並列変換を示しています。
上記スクリーンショットの仮想マシン名の前にある [EARLY] タグは、DRプランで設定されたすべての仮想マシンの並列変換を示しています。