Azure Site Recovery が可能にする、ワンクリックでの Azure への Virtual Machines の円滑なフェールオーバー
このポストは、8 月 5 日に投稿した Azure Site Recovery Enables One-Click Orchestrated Failover of Virtual Machines to Azure の翻訳です。
Azure Site Recovery の Azure への災害復旧機能により、ワークロードを保護して Azure に IaaS VM として復旧できるようになりました。Brad Anderson が 6 月 19 日に Azure への災害復旧のプレビュー機能についてお知らせ (英語) して以来、数多くのユーザーの皆様がこの機能を導入し、Virtual Machines を保護および復旧しています。このサービスをまだご利用でない方は、ぜひ TechEd のビデオ (英語) をご覧になり、サービスにサインアップしてください。
今回の記事では、Azure Site Recovery の機能である復旧計画を利用して、常に正確で繰り返し実行や自動化が可能な、Azure への災害復旧を実現する方法をご紹介します。また、復旧計画の構築方法を簡単に説明し、Virtual Machines を Azure へフェールオーバーする際に気をつけるべきことについても取り上げます。
フェールオーバーのターゲットが Azure となることで、Virtual Machines に対する考え方や扱いも変わってきますが、Site Recovery チームの尽力により、Azure へのフェールオーバーはこれまでのように直観的かつシンプルに行うことができます。私たちが目標としているのは、これまで同様ワンクリックでの災害復旧です。また、Azure への災害復旧の手順はアプリケーションを別の VMM サイトに復旧 (英語) するのとよく似ており、Azure への復旧計画を活用して、計画内または計画外のフェールオーバーや、テスト フェールオーバーを使用した災害復旧訓練を行うこともできます。
Azure への復旧計画ではユーザーの次のようなニーズに応えます。
- フェールオーバーする Virtual Machines のグループを定義する。
- アプリケーションが正しく起動されるように Virtual Machines 間の依存関係を定義する。
- Virtual Machines のフェールオーバー以外のタスクも実行できるように、復旧と共に手作業のカスタム アクションも自動化する。
復旧計画を作成する
では、BackendSQL、MiddlewareApp、FrontendIIS から成るシンプルな 3 層の仮想化アプリケーションを例に具体的な手順を説明していきます。復旧計画を作成して、必要なときにアプリケーションを Azure に復旧できるようにします。名前は「FinanceAppRecovery」としましょう。
|
|
復旧計画をカスタマイズする
シンプルな 3 層アプリケーションは次のように仮想化できます。フロントエンド サーバーはミドルウェア サーバーや SQL Server に依存します。またミドルウェア サーバーは SQL Server に依存します。アプリケーションが正しく起動されるように、依存関係を正確に反映したモデルを作成すれば、依存関係を維持した状態で Virtual Machines が復旧されます。
アプリケーションの依存関係は、グループ (Group) で定義します。アプリケーションの各層に対応する 3 つのグループを作成し、Virtual Machines を該当するグループに移動します。ここでは、BackendSQL を Group 1 に、MiddlewareApp は Group 2 に、FrontendIIS は Group 3 に移動します。これにより、オンプレミスのアプリケーションをシャットダウンすると Group 3 が最初にシャットダウンされ、続いて Group 2、最後に Group 1 の Virtual Machines がシャットダウンされます。このため、シャットダウン時にデータが失われることはありません。
|
|
起動する順序はグループの順序になります。Group 1 の Virtual Machines が最初に起動し、続いて Group 2、最後に Group 3 が起動します。これにより必ずバックエンドの Virtual Machines が、それに依存する Virtual Machines に先行して起動します。この例では、FrontendIIS が Group 3 で起動する時点で、それが依存する BackendSQL と MiddlewareApp は稼働していることになります。
上のスクリーン ショットは、3 層アプリケーション用に作成した復旧計画です。 |
フェールオーバーを開始する
フェールオーバーを開始すると、復旧計画に従い Azure の Virtual Machines が IaaS Virtual Machines として復旧されます。依存関係が維持され、VM が正しい順序で起動します。Virtual Machines は ネットワーク マッピング (英語) の構成に従い Virtual Network にアタッチされます。
フェールオーバーを開始したら [JOBS] ページで進捗状況を確認します。このページには詳細な進捗状況が表示されます。実行時にエラーが発生していないか確認することができます。 |
フェールオーバーが完了すると、FinanceAppRecovery の Cloud Services が作成されます。アプリケーションにデプロイされているインスタンスを確認すると、3 つの Virtual Machines が IaaS マシンとして復旧され、すぐに使用できる状態になっているのがわかります。
Virtual Machines が Azure に復旧されています。これらは IaaS VM としてすぐに使用できます。 |
復旧計画は「Commit Waiting」という状態になっているので、計画をコミットしてフェールオーバーを完了します。
実際に触れてみる準備ができたら、Azure Site Recovery の製品ページをご覧になり、ぜひ Azure の無料評価版にサインアップしてください。問題が発生した場合や、他のユーザーと情報交換したい場合は、MSDN の Azure Site Recovery のフォーラム (英語) をご活用ください。マイクロソフトでは、常に機能改良と新機能の追加に取り組んでいます。こちら (英語) から皆様のご意見をお聞かせください。
「うまくいかない」、「挙動が理解できない」といった場合の簡単な FAQ をいくつかご紹介します。
Q1: 復旧計画を作成すると、“The name can contain only letters, numbers, and hyphens.It should start with a letter and end with a letter or a number.” という警告が表示されます。別の VMM サイトに復旧する計画を作成する場合は表示されません。
A: 復旧計画を使用して Azure にフェールオーバーすると、復旧計画と同じ名前の Cloud Services (英語) が作成され、復旧された VM がデプロイされます。Cloud Services は計画に含まれる VM が属するネットワークと同じアフィニティ グループに作成されます。Cloud Services の名前はグローバルなパブリック エンドポイントなので、Virtual Machines へのアクセスに使用できます。復旧計画の名前が「FinanceApplication」の場合、Cloud Services はサブドメイン financeapplication.cloudapp.net を生成します。復旧計画を VMM にフェールオーバーすると、Cloud Services が削除されます。
Q2: 1 つの復旧計画に追加できる VM の上限を教えてください。
A: 1 つの Cloud Services に最大 50 の Virtual Machines を追加できます。従って、復旧計画に追加できる VM の上限は 50 となります。
Q3: 1 つのサブスクリプションにつき 20 の Cloud Services ( 英語) が上限となっています。つまり、作成可能な復旧計画の上限は 20 ということですか。
A: Cloud Services の上限数と復旧計画の上限数に関係はありませんが、復旧計画の上限は 20 件となっています。Cloud Services の上限を引き上げることは可能です。その際は、Azure カスタマー サポートでインシデントを発行してください。
Q4: VM のポート 80 で Web ページを配信していますが、Azure へのフェールオーバー後、VM のポート 80 に接続できません。RDP 接続もできません。どうすればよいですか。
A: Azure にフェールオーバーした VM にインターネットから直接アクセスすることはできないので、エンドポイントを構成してアクセスを許可する必要があります。エンドポイントの構成方法については、こちらのチュートリアルをご覧ください。
Q5: リモート デスクトップ プロトコル (RDP) のエンドポイントを構成したのに Virtual Machines にアクセスできません。原因としては何が考えられますか。
A: フェールオーバー以前に、Virtual Machines の RDP ポートを有効にする必要があります。Windows の設定で有効に設定していないと、Virtual Machines にアクセスできません。リモート デスクトップを使用してそのマシンに他のコンピューターがアクセスすることを許可してください。