Traffic Manager のルーティング方法

Azure Traffic Manager では、さまざまなサービス エンドポイントにネットワーク トラフィックをルーティングする方法を決定するために、6 つのトラフィック ルーティング方法をサポートしています。 Traffic Manager は、受信した各 DNS クエリに対し、プロファイルに関連付けられているトラフィック ルーティング方法を適用します。 トラフィック ルーティング方法によって、DNS 応答で返されるエンドポイントが決まります。

Traffic Manager では、次のトラフィック ルーティング方法を使用できます。

  • [優先順位]: すべてのトラフィックにプライマリ サービス エンドポイントを使用する場合は、 [優先順位] ルーティングを選択します。 プライマリまたはいずれかのバックアップのエンドポイントが使用できない場合に備えて、複数のバックアップ エンドポイントを用意できます。
  • [重み付け]: 重みに基づいて一連のエンドポイントにトラフィックを分散させる場合は、 [重み付け] ルーティングを選択します。 すべてのエンドポイントに均等に配分するには、重みを同じに設定します。
  • [パフォーマンス]: 地理的にさまざまな場所にエンドポイントがあり、エンド ユーザーがネットワーク待ち時間を最も短くするために "最も近い" エンドポイントを使用するようにしたい場合は、 [パフォーマンス] ルーティングを選択します。
  • [Geographic] (地理的): DNS クエリの発信元の地理的な場所に基づいて、ユーザーを特定のエンドポイント (Azure、外部、または入れ子になったもの) に割り当てる場合は、 [Geographic] (地理的) ルーティングを選択します。 このルーティング方法を使用すると、データ主権の要件、コンテンツとユーザー エクスペリエンスのローカライズ、さまざまなリージョンからのトラフィックの測定などのシナリオに対応できるようになります。
  • 複数値: エンドポイントとして IPv4 および IPv6 アドレスしか割り当てることのできない Traffic Manager プロファイルには、[複数値] を選択します。 このプロファイルに対するクエリが受信されると、正常なエンドポイントがすべて返されます。
  • [サブネット]: エンド ユーザーの一連の IP アドレス範囲を特定のエンドポイントにマップする場合は、 [サブネット] のトラフィック ルーティング方法を選択します。 要求が受信されたときに返されるエンドポイントは、その要求の送信元 IP アドレスにマップされているものです。 

すべての Traffic Manager プロファイルには、エンドポイントの正常性の監視と自動フェールオーバーがあります。 詳細については、 Traffic Manager のエンドポイント監視に関する記事をご覧ください。 Traffic Manager プロファイル内では、トラフィック ルーティング方法を一度に 1 つのみ構成できます。 プロファイルの別のトラフィック ルーティング方法をいつでも選択できます。 変更は、ダウンタイムなしで 1 分以内に適用されます。 入れ子になった Traffic Manager プロファイルを使用することで、トラフィック ルーティング方法を組み合わせることができます。 プロファイルを入れ子にすることで、高度なトラフィック ルーティング構成が可能になり、より大規模で複雑なアプリケーションのニーズに対応できます。 詳細については、「 入れ子になった Traffic Manager プロファイル」をご覧ください。

優先順位トラフィック ルーティング方法

多くの場合、組織ではサービスの信頼性を維持する必要があります。 そのためには、プライマリがダウンした場合に備えて、1 つまたは複数のバックアップ サービスをデプロイします。 "優先順位" トラフィック ルーティング方法を使用すると、Azure ユーザーはこのフェールオーバー パターンを簡単に実装できます。

Azure Traffic Manager 'Priority' traffic-routing method

Traffic Manager プロファイルには、サービス エンドポイントの優先順位リストが含まれます。 Traffic Manager では、既定では、すべてのトラフィックがプライマリ (優先順位が一番高い) エンドポイントに送信されます。 プライマリ エンドポイントを使用できない場合は、Traffic Manager により 2 番目のエンドポイントにトラフィックがルーティングされます。 プライマリとセカンダリのエンドポイントが使用できない状況では、トラフィックは 3 番目のエンドポイントに送信されます。以降も同様です。 エンドポイントの可用性は、構成済みのステータス (有効または無効) とエンドポイントの継続的な監視に基づきます。

エンドポイントの構成

Azure Resource Manager では、エンドポイントごとに "priority" プロパティを使用して、エンドポイントの優先順位を明示的に構成します。 このプロパティの値の範囲は、1 ~ 1000 です。 値が小さいほど、優先順位が高くなります。 複数のエンドポイントで優先順位値を共有することはできません。 プロパティの設定は省略可能です。 省略した場合、エンドポイントの順序に基づく既定の優先順位が使用されます。

加重トラフィック ルーティング方法

"重み付け" トラフィック ルーティング方法を使用すると、トラフィックを均等に分散したり、定義済みの重み付けを使用したりできます。

Azure Traffic Manager 'Weighted' traffic-routing method

重み付けトラフィック ルーティング方法では、Traffic Manager プロファイル構成で各エンドポイントに重みを割り当てます。 重みは 1 から 1000 の整数です。 このパラメーターは省略可能です。 省略すると、Traffic Managers では、既定の重みの "1" が使用されます。 重みが大きくなると、優先順位がそれだけ上がります。

Traffic Manager では、受信する DNS クエリごとに、使用可能なエンドポイントをランダムに選択します。 あるエンドポイントが選択される確率は、すべての利用可能なエンドポイントに割り当てられている重みに基づきます。 すべてのエンドポイント間で同じ重みを使用すると、トラフィック分散は均一になります。 特定のエンドポイントの重みを大きくする (または小さくする) と、それらのエンドポイントは DNS からの応答の頻度が増えます (または減ります)。

重み付け方式を使用することで、有用なシナリオをいくつか実現できます。

  • アプリケーションの段階的アップグレード: 新しいエンドポイントにルーティングするトラフィックのパーセンテージを指定し、時間と共に 100% までトラフィックを徐々に増やします。
  • Azure へのアプリケーション移行: Azure と外部エンドポイントの両方を含むプロファイルを作成します。 エンドポイントの重みを調整して新しいエンドポイントを優先します。
  • 容量を増やすためのクラウド バースト:Traffic Manager プロファイルの背後に配置することによって、オンプレミスのデプロイをクラウドにすばやく拡張します。 クラウドに追加容量が必要なとき、エンドポイントを追加または有効にして、各エンドポイントに送るトラフィックの割り当てを指定します。

重みは Azure portal、Azure PowerShell、CLI、または REST API を使用して構成できます。

重要な点は、DNS 応答がクライアントによってキャッシュされることです。 また、クライアントが DNS 名を解決するために使用する再帰 DNS サーバーによってもキャッシュされます。 このキャッシュは、重み付けトラフィック分散に影響を与える可能性があります。 クライアントと再帰 DNS サーバーの数が多い場合は、トラフィック分散が期待どおりに機能します。 ただし、クライアントまたは再帰 DNS サーバーの数が少ない場合は、キャッシュによってトラフィック分散に大きな偏りが生じる可能性があります。

一般的なユース ケースは次のとおりです。

  • 開発環境とテスト環境
  • アプリケーション間の通信
  • 共通の再帰 DNS インフラストラクチャを共有する、限られたユーザーを対象としたアプリケーション (たとえば、プロキシ経由で接続する会社の従業員など)

これらの DNS キャッシュの影響は、Azure Traffic Manager だけでなく、DNS ベースのすべてのトラフィック ルーティング システムに共通するものです。 DNS キャッシュの明示的なクリアが回避策になる場合もあれば、 それがうまくいかなければ、別のトラフィック ルーティング方法の方が適している場合もあります。

パフォーマンス トラフィック ルーティング方法

世界の複数の場所にエンドポイントをデプロイすると、お使いのアプリケーションの応答性を向上させることができます。 "パフォーマンス" トラフィック ルーティング方法を使用すると、自分に "最も近い" 場所にトラフィックをルーティングすることができます。

Azure Traffic Manager 'Performance' traffic-routing method

"最も近い" エンドポイントが必ずしも地理的な距離で最も近いとは限りません。 "パフォーマンス" トラフィック ルーティング方法では、代わりに、ネットワーク待ち時間を尺度として最も近いエンドポイントを特定します。 Traffic Manager は、インターネット待機時間テーブルを管理して、IP アドレス範囲と各 Azure データセンター間のラウンドトリップ時間を追跡します。

Traffic Manager は、受信 DNS 要求の送信元 IP アドレスをインターネット待機時間テーブルで見つけます。 次に、Traffic Manager では、その IP アドレス範囲について待ち時間が最も短くなる Azure データセンター内の使用可能なエンドポイントが選択されます。 次に、Traffic Manager によって、DNS 応答でそのエンドポイントが返されます。

Traffic Manager のしくみ」で説明したように、Traffic Manager では DNS クエリがクライアントから直接受信されません。 代わりに、DNS クエリは、クライアントが使用するように構成された再帰 DNS サービスから受信します。 そのため、"最も近い" エンドポイントの特定に使用される IP アドレスは、クライアントの IP アドレスではなく、再帰 DNS サービスの IP アドレスになります。 この IP アドレスはクライアントにとって適切なプロキシとなります。

Traffic Manager は、インターネット待機時間テーブルを定期的に更新して、グローバル インターネットと新しい Azure リージョンの変化に対応しています。 ただし、アプリケーションのパフォーマンスは、インターネット全体におけるリアルタイムな負荷の変動によって変わります。 パフォーマンスによるトラフィック ルーティングでは、特定のサービス エンドポイントの負荷は監視されません。 あるエンドポイントが使用できなくなった場合、Traffic Manager は DNS クエリの応答にそれを含めません。

注意する点:

  • プロファイルに同一 Azure リージョン内の複数のエンドポイントが含まれている場合は、Traffic Manager では、そのリージョンで利用可能なエンドポイントにトラフィックが均等に分散されます。 リージョン内で別のトラフィック分散を使用する場合は、入れ子になった Traffic Manager プロファイルを使用できます。
  • 最も近い Azure リージョン内のすべての有効なエンドポイントの機能が低下している場合は、Traffic Manager によって次に近い Azure リージョン内のエンドポイントにトラフィックが移動されます。 希望するフェールオーバー シーケンスを定義する場合は、「入れ子になった Traffic Manager プロファイル」を使用してください。
  • 外部エンドポイントまたは入れ子になったエンドポイントでパフォーマンス トラフィック ルーティング方法を使用する場合は、エンドポイントの場所を指定する必要があります。 デプロイメントに最も近い Azure リージョンを選択してください。 これらの場所は、インターネット待機時間テーブルでサポートされている値です。
  • エンドポイントを選択するアルゴリズムは確定的です。 同じクライアントからの反復 DNS クエリは、同じエンドポイントに送信されます。 通常、クライアントは、出張中に別の再帰 DNS サーバーを使用します。 このクライアントは、別のエンドポイントにルーティングされる可能性があります。 また、ルーティングは、インターネット待機時間テーブルの更新の影響を受ける場合もあります。 そのため、パフォーマンス トラフィック ルーティング方法では、クライアントが常に同じエンドポイントにルーティングされる保証はありません。
  • インターネット待機時間テーブルが変更されたときに、一部のクライアントが別のエンドポイントにルーティングされていることに気付く場合があります。 このルーティングの変更は、最新の待機時間データに基づいてより正確に行われます。 これらの更新は、インターネットが継続的に発展する中で、パフォーマンス トラフィック ルーティングの精度を維持するために不可欠となります。

地理的トラフィック ルーティング方法

Traffic Manager プロファイルで地理的ルーティング方法を使用するように構成できます。これにより、ユーザーは特定のエンドポイント (Azure、外部、または入れ子) にルーティングされます。 照合は、DNS クエリの発信元の地理的な場所に基づいています。 このルーティング方法を使用すると、データ主権の要件、コンテンツとユーザー エクスペリエンスのローカライズ、さまざまなリージョンからのトラフィックの測定に対応できるようになります。 地理的ルーティング用にプロファイルを構成したら、そのプロファイルに関連付けられた各エンドポイントに地理的なリージョンのセットを割り当てる必要があります。 リージョンは、次のレベルの粒度で指定できます。

  • 世界 – 任意のリージョン
  • リージョン グループ – アフリカ、中東、オーストラリア/太平洋など
  • 国/リージョン – アイルランド、ペルー、香港特別行政区など
  • 都道府県 – 米国カリフォルニア州、オーストラリア クイーンズランド州、カナダ アルバータ州など (注: 都道府県でこのレベルの粒度がサポートされているのは、オーストラリア、カナダ、米国のみです)。

リージョンまたはリージョンのセットがエンドポイントに割り当てられると、それらのリージョンからの要求は、そのエンドポイントにのみルーティングされます。 Traffic Manager は、DNS クエリの送信元 IP アドレスを使用して、ユーザーによるクエリの実行元のリージョンを特定します。 一般に、ユーザーに対してクエリを実行するローカル DNS リゾルバーの IP アドレスとして検出されます。

Azure Traffic Manager 'Geographic' traffic-routing method

Traffic Manager は DNS クエリの送信元 IP アドレスを読み取り、送信元の地理的リージョンを決定します。 次に、この地理的リージョンがマップされているエンドポイントがあるかどうかを確認します。 この検索は、最も低い粒度レベル (まず、サポートされている場合は都道府県、次に国/リージョン レベル) で始まり、最も高いレベルである世界まで進みます。 このトラバーサルを使用して見つかった最初の一致が、クエリの応答で返されるエンドポイントとして選択されます。 入れ子になっている種類のエンドポイントとクエリが一致する場合、ルーティング方法に基づいて、その子プロファイル内のエンドポイントが返されます。 次の点がこの動作に関係します。

  • ルーティングの種類が地理的ルーティングの場合、リージョンは Traffic Manager プロファイル内の 1 つのエンドポイントにのみマップできます。 この制限により、ユーザーのルーティングが確定的になるため、お客様は、明確な地理的境界を必要とするシナリオを実現できます。

  • あるユーザーのリージョンが、2 つの異なるエンドポイントの地理的マッピングの下にリストされている場合、Traffic Manager は粒度が最も低いエンドポイントを選択します。 Traffic Manager は、そのリージョンからもう一方のエンドポイントへのルーティング要求を考慮しません。 たとえば、Endpoint1 と Endpoint2 の 2 つのエンドポイントが含まれた、ルーティングの種類が地理的ルーティングのプロファイルを考えてみましょう。 Endpoint1 はアイルランドからのトラフィックを受信するように構成し、Endpoint2 はヨーロッパからのトラフィックを受信するように構成します。 要求がアイルランドから送信された場合、それは常に Endpoint1 にルーティングされます。

  • リージョンをマップできるのは 1 つのエンドポイントに限られるため、Traffic Manager は、エンドポイントが正常かどうかに関係なく応答を返します。

    重要

    地理的ルーティング方法を使用する場合は、少なくとも 2 つのエンドポイントを含む子プロファイルを持つ入れ子になった種類のエンドポイントに関連付けることを強くお勧めします。

  • エンドポイントの一致が見つかったときに、そのエンドポイントが停止状態の場合、Traffic Manager は NODATA 応答を返します。 この場合、地理的リージョンの上位階層に対する検索はそれ以上行われません。 この動作は、子プロファイルが停止または無効の状態のときの、入れ子になったエンドポイントの種類にも該当します。

  • エンドポイントが無効状態の場合、リージョンの照合プロセスの対象には含まれません。 この動作は、エンドポイントが無効状態のときの、入れ子になったエンドポイントの種類にも該当します。

  • クエリが、そのプロファイルでマッピングされていない地理的リージョンから送信されている場合、Traffic Manager は NODATA 応答を返します。 そのため、1 つのエンドポイントで地理的ルーティングを使用することを強くお勧めします。 子プロファイル内に少なくとも 2 つのエンドポイントを持つ入れ子になった種類で、リージョン世界が割り当てられていることが理想的です。 この構成により、リージョンにマップされていない IP アドレスも確実に処理されるようになります。

Traffic Manager のしくみ」で説明したように、Traffic Manager では DNS クエリがクライアントから直接受信されません。 DNS クエリは、クライアントが使用するように構成された再帰 DNS サービスから受信されます。 そのため、リージョンの特定に使用される IP アドレスは、クライアントの IP アドレスではなく、再帰 DNS サービスの IP アドレスになります。 この IP アドレスはクライアントにとって適切なプロキシとなります。

FAQ

複数値トラフィック ルーティング方法

複数値トラフィック ルーティング方法では、1 回の DNS クエリ応答で複数の正常なエンドポイントを取得することができます。 この構成により、呼び出し元は、返されたエンドポイントが無応答であった場合に、他のエンドポイントとの間で、クライアント側の再試行を実行することができます。 このパターンにより、サービスの可用性を高め、正常なエンドポイントを取得するための新しい DNS クエリに関連付けられた待ち時間を減らすことができます。 複数値ルーティング方法を使用するためには、すべてのエンドポイントが "外部" タイプで、かつ IPv4 または IPv6 アドレスとして指定されている必要があります。 このプロファイルに対するクエリが受信されると、構成可能な最大リターン数を上限として、正常なエンドポイントがすべて返されます。

FAQ

サブネット トラフィック ルーティング方法

サブネット トラフィック ルーティング方法では、プロファイル内の特定のエンドポイントに、エンド ユーザーの一連の IP アドレス範囲をマップすることができます。 Traffic Manager はそのプロファイルの DNS クエリを受信すると、その要求の送信元 IP アドレスを検査します。 次に、マップ先のエンドポイントを特定し、クエリ応答でそのエンドポイントを返します。 ほとんどの場合、送信元 IP アドレスは、呼び出し元によって使用される DNS リゾルバーです。

エンドポイントにマップされる IP アドレスは、CIDR 範囲 (例: 1.2.3.0/24) またはアドレスの範囲 (例: 1.2.3.4-5.6.7.8) として指定できます。 エンドポイントに関連付けられる IP 範囲は、そのプロファイル内で一意である必要があります。 アドレス範囲は、同じプロファイル内の別のエンドポイントの IP アドレス セットと重複することはできません。 アドレス範囲を持たないエンドポイントを定義した場合、これはフォールバックとして機能し、任意の残りのサブネットからトラフィックを取得します。 フォールバック エンドポイントが含まれていない場合、Traffic Manager は任意の未定義の範囲に NODATA 応答を送信します。 想定されるすべての IP 範囲が複数のエンドポイントにまたがって指定されるように、フォールバック エンドポイントを定義することを強くお勧めします。

サブネット ルーティングを使えば、特定の IP 空間から接続してきているユーザーに異なるエクスペリエンスを提供することができます。 たとえば、自社のオフィスからのすべての要求を、別のエンドポイントにルーティングすることができます。 このルーティング方法は、アプリの社内専用のバージョンをテストする場合に特に役立ちます。 また、特定の ISP から接続してきているユーザー (たとえば、特定の ISP のブロック ユーザー) に対して異なるエクスペリエンスを提供するシナリオにも対応できます。

FAQ

次のステップ

Traffic Manager endpoint monitoring