Microsoft Azure を災害復旧サイトとして使用するためのネットワーク インフラストラクチャのセットアップ
このポストは、9 月 4 日に投稿された Networking Infrastructure Setup for Microsoft Azure as a Disaster Recovery Site の翻訳です。
Azure Site Recovery (ASR) では、Microsoft Azure を Virtual Machines の災害復旧サイトとして使用するようにセットアップすることができます。ASR の詳細については、Brad Anderson が執筆した「Azure Site Recovery を使用した Azure の災害復旧機能のプレビューを発表 (英語)」の記事をお読みください。
アプリケーションに災害復旧機能を追加するにあたって重要なのは、フェールオーバー完了後にユーザーがアプリケーションにアクセスできるようになるまでのダウンタイムを最小限に抑えられるよう、ネットワーク インフラストラクチャの計画立案時に慎重に検討することです。この記事では、その要件を満たすようにネットワーク インフラストラクチャをセットアップする方法を、例を示しながら説明します。まず、ここで例示するアプリケーションについて説明し、続いてネットワークをオンプレミスと Azure でセットアップする方法、最後にテスト フェールオーバーと計画されたフェールオーバーを実行する方法を説明します。
1. アプリケーション
ここでは、IIS を基盤としてバックエンドに SQL Server を使用する、2 層構造のアプリケーションを例に説明します。
上のスクリーンショットの画面で、Active Directory をセットアップ済みの「Contoso」という名前の企業を作成します。ここでは SQL Server をバックエンドとして使用する 2 層構造の IIS Web アプリケーションを使用します。SQL Server は Windows 認証で認証が行われており、Virtual Machines はすべて contoso.com ドメインに属しています。また、このアプリケーションには企業のオンプレミス環境のユーザーとモバイル ユーザーの両方からのアクセスがあります。企業のオンプレミス環境以外のユーザーは、企業ネットワークに接続する際に VPN を使用します。
2. オンプレミス ネットワーク
contoso.com のオンプレミス インフラストラクチャは、VMM 2012 R2 Server で管理されています。また、VMM Server 上で「Application Network」という名前の VLAN を基盤とする論理ネットワークが作成されています。この論理ネットワークでは、「Application VM Network」という名前の VM ネットワークが作成されます。アプリケーション内のすべての Virtual Machines で静的 IP が使用されるため、この論理ネットワークで静的 IP プールも定義されます。ただし、Virtual Machines が DHCP を使用するように構成されている場合は、静的 IP プールは不要です。
論理ネットワーク
VM ネットワーク
上記の手順で、全 3 台の Virtual Machines のうち、ドメイン コントローラーの SQL Backend と IIS Frontend が VM ネットワークに追加されます。各 Virtual Machines には、それぞれ次の静的 IP が割り当てられます。
- Active Directory と DNS – 192.168.0.3
- SQL Backend – 192.168.0.21
- IIS Frontend – 192.168.0.22
3. Azure ネットワーク
まず、Azure Virtual Network を大まかに理解するために、Azure Virtual Network の概要記事をご一読ください。ここではまず、Microsoft Azure に「AzureNetwork」という名前の Azure Virtual Network を作成します。このネットワークの作成中に、DNS サーバーの IP としてオンプレミスの DNS サーバーの IP アドレス (ここでは 192.168.0.3) が割り当てられます。これにより Point-to-Site 接続と Site-to-Site 接続が使用できるようになります。
「AzureNetwork」では、10.0.0.0 ~ 10.0.0.255 の範囲のアドレスが使用できます。
ここで注意していただきたいのは、主に次の 2 つの要件を満たす必要がある場合、オンプレミスのアドレスとは異なるアドレス範囲を使用しなければならないという点です。
- オンプレミスのネットワークと Site-to-Site 接続を確立する。Site-to-Site 接続のゲートウェイでは、接続されるネットワークの両側で同一の IP 範囲を使用することはできません。
- 複数のアプリケーションがオンプレミスで実行されている場合、サブセットのすべてではなく一部のアプリケーションのみをフェールオーバーできるようにする。
注: 上記の 2 つの要件を満たす必要がない場合は、オンプレミスのアドレス範囲とまったく同一の範囲を定義してもかまいません。
4. Site-to-Site 接続のセットアップと AD のレプリケーション
Azure 内のネットワークはオンプレミスのネットワークの延長であるため、アプリケーションをサイト間でシームレスに移動することができます。Azure で作成された仮想ネットワークでは、ユーザーが Site-to-Site 接続を追加することができます。Site-to-Site 接続は、作成時および作成後のいずれのタイミングでも追加できます。接続の作成方法は、Azure Virtual Network に Site-to-Site 接続を追加するためのステップバイステップ手順の資料を参照してください。なお、後から追加する場合でも手順はほぼ同じです。
Site-to-Site 接続が確立されたら、次は Azure で Active Directory と DNS サーバーを作成します。これを作成すると、Azure で実行されているアプリケーションが名前の検索や認証要求のたびにオンプレミスの AD と DNS を参照する必要がなくなります。次の手順にしたがって、Azure で Active Directory を作成します。
- まず、オンプレミスの Active Directory で Active Directory サイトとサービスを使用して、AzureSite とは別のサイトを作成することを推奨します。
- セクション 3 で作成したネットワークに IaaS VM を作成します。
- サーバー マネージャーを使用して、Active Directory ドメイン サービスおよび DNS サーバー ロールをインストールします。
- サーバーをドメイン コントローラーに昇格して、オンプレミスの contoso.com ドメインの名前を割り当てます。セクション 3 でオンプレミスの DNS サーバーに DNS 用の IP が割り当られているため、IaaS VM が contoso.com という名前を解決できます。
- 「AzureSite」という名前の Active Directory サイトを既に作成している場合は、この Active Directory を追加します。
これで、Azure で DNS サーバーが実行されているため、作成済みの IaaS VM をこの時点から使用することを推奨します。これには AzureNetwork に移動して DNS サーバーの IP を変更し、前の手順で作成した IaaS VM の IP アドレスを指定します。
AD のレプリケーションの頻度: DNS レコードのレプリケーションの頻度は、Active Directory サイトとサービスで変更できます。詳細な手順については、「Active Directory サイト間でのレプリケーションをスケジュールする」を参照してください。
Active Directory と DNS のレプリケーションを Azure に作成する必要の有無: サイトの完全な災害復旧を目標とする場合は、Active Directory のレプリケーションを Azure に作成する必要があります。ただし、一度に実行する計画されたフェールオーバーを一部のアプリケーションのみに限定し、その対象となるアプリケーションが Active Directory や DNS とあまり頻繁に通信しない場合、Active Directory および DNS のレプリケーションを Azure に作成しないという選択肢も考えられます。この場合、Azure で作成したネットワークにオンプレミスの DNS サーバーの IP アドレスを割り当てることができます。
5. Point-to-Site 接続のセットアップ
アプリケーションが Azure にフェールオーバーされた場合でも、モバイル デバイスからのアクセスを維持する必要があります。これを可能にするには、AzureNetwork への Point-to-Site 接続を作成します。詳細については、Azure Virtual Network への Point-to-Site VPN のセットアップ手順の資料を参照してください。このセットアップが完了した状態が以下のとおりです。
6. テスト ネットワークの作成
Azure Site Recovery では、新たに別の Azure Virtual Network を用意すると、運用環境のワークロードに影響を与えないようにフェールオーバーのテストを実施できるようになります。ネットワークを新規作成し (ここでは「AzureTestNetwork」という名前に設定)、セクション 3 で作成したネットワークと同じ IP 範囲を使用するように構成します。この時点では、まだ Site-to-Site 接続や Point-to-Site 接続をこのネットワークに追加しません。
7. Azure Site Recovery のセットアップ
ここまででインフラストラクチャのセットアップが完了しました。さらに次の手順で ASR をセットアップしていきます。
- クラウド環境を構成します。
- 「Application VM Network」を AzureNetwork にマッピングします。
- 次の保護を有効にします。
- 1. Active Directory – AD から Azure へのレプリケーションには AD レプリケーションを使用しますが、フェールオーバーのテストの際には AD インスタンスが必要です。このため、ここでも ASR で AD を保護する必要があります。フェールオーバーのテストで AD を使用する方法については、この記事のセクション 9 で説明します。
- 2. IIS Frontend
- 3. SQL Backend
この手順の詳細については、ASR の入門ガイド (英語) および ASR のデプロイメント ガイド (英語) を参照してください。このセットアップが完了した状態が以下のとおりです。
8. 復旧計画の作成
ここでは、IIS Frontend および SQL Backend の 2 台の VM を含む環境の復旧計画を作成します。その後、もう 1 つグループを追加して、IIS Frontend をグループ 2 に移動し、復旧計画をカスタマイズします。SQL Backend のフェールオーバーは、IIS Frontend が起動する前に最初に実行し、IIS アプリケーションが正常に起動するようにします。この場合の復旧計画は次のようになります。
9. フェールオーバーのテスト/災害復旧テストの実施
災害復旧機能のセットアップの確認、およびコンプライアンス要件の遵守のために、企業では定期的にフェールオーバーのテストや災害復旧テストを実施する必要があります。ASR では、運用環境のワークロードに影響を与えることなくフェールオーバーのテストを実施できます。フェールオーバーまたは災害復旧のテストを実施する場合は、セクション 6 で作成したテスト用ネットワークを使用します。災害復旧テストは次の手順で実施します。
- ASR で AD の VM に移動し、AzureTestNetwork でフェールオーバーのテストを実施します。
- IaaS VM を AzureTestNetwork の AD で作成し、この VM に割り当てられた IP アドレスを確認します。
- IP アドレスが AzureTestNetwork の DNS に割り当てられたものと異なる場合は、DNS の IP をこの AD の VM に割り当てられたアドレスに変更します。Azure では、Virtual Network で定義された IP アドレス範囲のうち 4 番目以降のアドレスが割り当てられます。つまり、ネットワークの IP アドレス範囲が 10.0.0.0 ~ 10.0.0.255 の場合、このネットワークで作成された VM に割り当てられる最初の IP アドレスは 10.0.0.4 ということです。災害復旧テストでは最初に AD がフェールオーバーされるため、AD に割り当てられる IP アドレスはあらかじめ予想できます。このアドレスを AzureTestNetwork の DNS に追加します。
- セクション 8 で作成した復旧計画に移動し、AzureTestNetwork でフェールオーバーのテストを実施します。Azure で VM がフェールオーバーされ、その後起動されるときに、AzureTestNetwork でフェールオーバーされた VM が DNS に自動的に登録されます。さらに、AzureTestNetwork で実行されている AD DNS の VM が、復旧計画にしたがって 2 台の VM の IP アドレスを更新します。この IP アドレスは、VM が静的 IP アドレスを使用している場合でも、オンプレミスの VM のものとは異なります。
- IaaS VM を AzureTestNetwork で作成します。
- これで、IIS アプリケーションには、https://iisfrontend/ を使用して IaaS VM からアクセスできるようになります。
- テストが完了したら、ASR の [Jobs] ビューで、フェールオーバーのテストが完了したことを示すマークを付けます。この操作により、AzureTestNetwork で作成された VM が削除されます。
10. 計画されたフェールオーバーの実行
アプリケーションの計画されたフェールオーバーを実行するには、セクション 8 で作成した復旧計画を使用します。計画されたフェールオーバーの実行が完了したら、Azure で起動した Virtual Machines が自動で Azure で実行されている DNS にアクセスし、IP アドレスを更新します。この新しい IP アドレスは、セクション 4 で設定したレプリケーションの頻度にしたがってオンプレミスの DNS にも適用されます。また、Active Directory サイトとサービスに移動してサイトを展開し、ドメイン コントローラーの [NTDS Settings] を開くと、オンデマンドで DNS レコードのレプリケーションを実行できます。[NTDS Settings] を右クリックすると、選択したドメイン コントローラーに、または選択したドメイン コントローラーからレプリケーションを実行するオプションが表示されます。
DNS レコードのレプリケーションが実行され、さらにその DNS レコードの Time-To-Live (TTL) が終了すると、アプリケーションはオンプレミスのクライアント、または Point-to-Site VPN を使用して AzureNetwork に接続しているクライアントからアクセスできるようになります。
この記事では、IIS を基盤として SQL Server をバックエンドに使用する 2 層構造の Web アプリケーションで、災害復旧をセットアップする方法について説明しました。また、災害復旧テストや計画されたフェールオーバーを実施するためにドメイン コントローラーや DNS をセットアップする方法、およびフェールオーバー後にエンド ユーザーがシームレスにアプリケーションにアクセスできるように Azure Virtual Network で Site-to-Site 接続や Point-to-Site 接続をセットアップする方法についても説明しました。
ご不明な点がありましたら、MSDN の Azure Site Recovery フォーラムまでお寄せください。ここでは詳細情報を入手したり、他のユーザーと交流することもできます。
また、製品の詳細情報はこちらから確認できます。Microsoft Azure で Azure Site Recovery を試すには、Azure の無料評価版にサインアップしてください。