Azure クラウド アプリケーション サーバーを使用した 1 日の時間に基づく DNS 応答

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016

このトピックを使用すると、1 日の時間に基づき、DNS のポリシーを使用して、アプリケーションの別の地理的に分散インスタンス間でアプリケーションのトラフィックを分散するのに方法について説明します。

このシナリオは、別のタイム ゾーンに配置されている Microsoft Azure でホストされている Web サーバーなどの別のアプリケーション サーバーに 1 つのタイム ゾーンでトラフィックを転送する場合に便利です。 これにより、トラフィックを負荷分散アプリケーションのインスタンス間でのピーク時のトラフィックがプライマリ サーバーが、いつ過負荷の期間します。

注意

Azure を使用せずにインテリジェント DNS 応答に DNS ポリシーを使用する方法については、「1 日の時間に基づくインテリジェントなDNS 応答に DNS ポリシーを使用する」 を参照してください。

Azure クラウド アプリケーション サーバーを使用した時間帯に基づくインテリジェント DNS 応答の例

1 日の時間に基づくアプリケーションのトラフィックを分散する DNS ポリシーを使用する方法の例を次に示します。

この例は、1 つ架空の会社の Web サイトを通じて、世界各地でオンライン gifting ソリューションを提供する Contoso ギフト サービスを使用して contosogiftservices.com します。

この contosogiftservices.com の Web サイトは、シアトルの単一のオンプレミスのデータセンター (パブリック IP 192.68.30.2) でのみホストされています。

DNS サーバーも、このオンプレミスのデータセンターに配置されています。

ビジネスで最近が急増したとき、contosogiftservices.com が訪問者の数を増やす、毎日とサービスの可用性に関する問題を報告した顧客の一部です。

Contoso Gift Service は、サイトの分析を実行し、毎晩、ローカル時刻の午後 6 時から午後 9 時の間に、シアトルの Web サーバーへのトラフィックが急増していることを発見しました。 これらのピーク時に増加するトラフィックを処理するように Web サーバーを拡張できないため、その結果、顧客へのサービスが拒否されます。

Contoso Gift Service は、contosogiftservices.com の顧客が Web サイトから応答性の高いエクスペリエンスを確実に得られるようにするために、これらの時間帯に Microsoft Azure 上の仮想マシン (VM) をレンタルしてその Web サーバーのコピーをホストすることを決定します。

Contoso Gift Service は、VM 用のパブリック IP アドレス (192.68.31.44) を Azure から取得し、毎日午後 5 時から 10 時の間に Azure に Web サーバーをデプロイする自動化を開発して、1 時間のコンティンジェンシー期間を実現します。

注意

Azure VM の詳細については、Virtual Machines のドキュメントを参照してください

DNS サーバーはゾーン スコープと DNS ポリシーで構成され、毎日午後 5 時から 9 時の間は、クエリの 30% が Azure で実行されている Web サーバーのインスタンスに送信されます。

次の図は、このシナリオを示しています。

DNS Policy for time of day responses

Azure App Server を使用した時間帯に基づくインテリジェント DNS 応答のしくみ

この記事では、2 つの異なるアプリケーション サーバー IP アドレスを使用して DNS クエリに応答するように DNS サーバーを構成する方法について説明します。1 つの Web サーバーはシアトルに、もう 1 つは Azure データセンターにあります。

シアトルの午後 6 時から午後 9 時のピーク時に基づいて新しい DNS ポリシーを構成すると、DNS サーバーによって、DNS 応答の 70% がシアトルの Web サーバーの IP アドレスを含むクライアントに、DNS 応答の 30% が Azure Web サーバーの IP アドレスを含むクライアントに送信されます。これにより、クライアント トラフィックを新しい Azure Web サーバーに転送し、シアトルの Web サーバーが過負荷になるのを防ぎます。

それ以外の時間帯では、通常のクエリ処理が実行され、オンプレミスのデータセンター内の Web サーバーのレコードを含む既定のゾーン スコープから応答が送信されます。

Azure レコードの TTL は 10 分なので、VM が Azure から削除される前に、LDNS キャッシュからそのレコードが期限切れになります。 このようなスケーリングの利点の 1 つは、DNS データをオンプレミスに保持し、需要に応じて Azure にスケールアウトし続けることができることです。

Azure App Server で時間帯に基づくインテリジェント DNS 応答に DNS のポリシーを構成する方法

分散アプリケーションの負荷を 1 日の時間ベースのクエリの応答の DNS のポリシーを構成するには、次の手順を実行する必要があります。

注意

構成する場合、ゾーンに対して権限のある DNS サーバーでは、これらの手順を実行する必要があります。 メンバーシップ DnsAdmins, 、または同等の権限が必要で、次の手順を実行します。

次のセクションでは、詳細な構成手順を説明します。

重要

次のセクションでは、多くのパラメーターのサンプル値を含む Windows PowerShell コマンドの例を示します。 これらのコマンドで値の例は、これらのコマンドを実行する前に、展開に対応する値を置き換えることを確認します。

ゾーンのスコープを作成します。

ゾーンのスコープは、ゾーンの一意のインスタンスです。 DNS ゾーンには複数のゾーン スコープが存在する可能性があります。各ゾーン スコープには、独自の DNS レコード セットが含まれています。 同じレコードが複数のスコープに存在する可能性があり、IP アドレスは同じ場合も違う場合もあります。

注意

既定では、ゾーンのスコープは、DNS ゾーンに存在します。 このゾーンのスコープでは、ゾーンと同じ名前と、従来の DNS の機能がこのスコープで動作します。

次のコマンド例を使用して、Azure レコードをホストするゾーン スコープを作成できます。

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "AzureZoneScope"

詳細については、次を参照してください 追加 DnsServerZoneScope。

レコードをゾーンのスコープに追加します。

次の手順では、Web サーバー ホストを表すレコードをゾーン スコープに追加します。

AzureZoneScope では、レコード www.contosogiftservices.com は、Azure パブリック クラウドにある IP アドレス 192.68.31.44 で追加されます。

同様に、既定のゾーン スコープ (contosogiftservices.com) では、シアトルのオンプレミス データセンターで実行されている Web サーバーの IP アドレス 192.68.30.2 でレコード (www.contosogiftservices.com) が追加されます。

以下の 2 番目のコマンドレットには、–ZoneScope パラメーターは含まれていません。 このため、レコードは既定の ZoneScope に追加されます。

さらに、Azure VM のレコードの TTL は、LDNS で長時間キャッシュされないように、600 秒 (10 分) に維持されています。そのため、負荷分散が妨げられる可能性があります。 また、キャッシュされたレコードを持つクライアントでも確実に解決できるようにするため、Azure VM をコンティンジェンシーとしてさらに 1 時間使用できます。

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.68.31.44" -ZoneScope "AzureZoneScope" –TimeToLive 600

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.68.30.2"

詳細については、次を参照してください。 追加 DnsServerResourceRecordします。

DNS のポリシーを作成します。

ゾーン スコープを作成したら、受信クエリをこれらのスコープに分散する DNS ポリシーを作成して、次のことが発生するようにすることができます。

  1. 毎日午後 6 時から午後 9 時まで、クライアントの 30% は DNS 応答で Azure データセンターの Web サーバーの IP アドレスを受け取り、クライアントの 70% はシアトルのオンプレミス Web サーバーの IP アドレスを受け取ります。
  2. それ以外の時間は、すべてのクライアントがシアトルのオンプレミス Web サーバーの IP アドレスを受け取ります。

時間帯は、DNS サーバーのローカル時刻で表す必要があります。

次のコマンド例を使用して、DNS ポリシーを作成できます。

Add-DnsServerQueryResolutionPolicy -Name "Contoso6To9Policy" -Action ALLOW -ZoneScope "contosogiftservices.com,7;AzureZoneScope,3" –TimeOfDay “EQ,18:00-21:00” -ZoneName "contosogiftservices.com" –ProcessingOrder 1

詳細については、次を参照してください。 追加 DnsServerQueryResolutionPolicyします。

これで DNS サーバーは、時間帯に基づいてトラフィックを Azure Web サーバーにリダイレクトするために必要な DNS ポリシーを使用して構成されました。

式に注意してください。

-ZoneScope "contosogiftservices.com,7;AzureZoneScope,3" –TimeOfDay “EQ,18:00-21:00”

この式は、ZoneScope と重みの組み合わせを使用して DNS サーバーを構成し、DNS サーバーに、その時間帯の 70% をシアトルの Web サーバーの IP アドレスに送信し、30% を Azure Web サーバーの IP アドレスに送信するように指示します。

何千もの DNS のポリシーに合わせて作成できます、トラフィック管理の要件、DNS サーバーを再起動しなくても - 受信したクエリで、すべての新しいポリシーが動的 - 適用されます。