Windows Azure

この投稿は、「Windows Azure Traffic Manager Configuration Guid」に記載されている「Round Robin Load Balancing Method in Windows Azure Traffic Manager」をざっくり意訳した投稿です。

ラウンドロビンは、トラッフィクをホストサービスに振り分けます。トラッフィクを受け取ると、リストに載っているホスト順に、最後に振り分けたホストの次のホストに振り分けます。

image

  1. Traffic Managerドメインは、クライアントからリクエストを受け取ります。
  2. ポリシーにはホストサービスが順番に登録されています。Traffic Managerは最後にリクエストを受け取ったサービスを記録しています。
  3. Traffic Managerはクライアントに、次のホストサービスをDNSエントリとして指定します。上の図では、ホストサービスCになります。
  4. Traffic Managerは、最後のトラフィックがホストサービスCに振り分けたことを更新します。
  5. クライアントマシンはDNSエントリを使用し、ホストサービスCを呼び出します。

補足

  • DNS Time-to-Live(TTL)はローカルDNSがドメイン解決をするのに、DNSキャッシュをエントリを使用する期間を指定します。クライアントは、DNSキャッシュが期限切れするまで、すでに入手したホストサービスを使用し続けます。
  • Traffic Managerは、ポリシーに含まれているホストサービスの状態を監視し、トラッフィクが送信できないときは、ホストサービスがダウンしていると判断します。もし、ポリシー内のすべてのホストサービスがオフラインになっている場合、Traffic Managerは、ポリシー内のホストサービスがオンラインだったと仮定して直近で解決したIPを返します。クライアントマシンは、ホストサービスを呼び出しても応答しません。

Windows Azure

この投稿は、「Windows Azure Traffic Manager Configuration Guid」に記載されている「Performance Load Balancing Method in Windows Azure Traffic Manager」をざっくり意訳した投稿です。

パフォーマンスロードバランスは、トラッフィク発生元と、そこと最も近いホストサービスのルートを把握しています。アクセス元のIPと各Windows Azureデータセンター間のラウンドトリップ時間を記録したネットワークのパフォーマンステーブルを使用して、近いデータセンターを決めます。このテーブルは、定期的に更新されるものなので、インターネット上のパフォーマンスをリアルタイムに反映するものではありません。

Windows Azure Traffic Managerでは、パフォーマンスロードバランス(NW時間)でホストサービスを監視するので、パフォーマンスロードバランスはホストサービスの負荷状況は考慮しません。もしホストサービスがダウンしている場合は、DNSクエリには。そのホストサービスは含まれません。

image

  1. パフォーマンスタイムテーブルの定期的作成 Traffic Managerは、世界中の様々な地点とホストサービスを実行しているWindows Azureデータセンターとのラウンドトリップタイムを試験計測し管理しています。
  2. リクエストの受信 Traffic Managerドメインはクライアントマシンからリクエストを受け取ります。
  3. パフォーマンステーブルの確認 Traffic Managerは、リクエストを送信した位置とステップ1で作成したテーブルを使用してポリシーに含まれるホストサービス間のラウンドトリップタイムを確認します。
  4. ベストパフォーマンスのサービス選択 Traffic Managerは、ベストタイムのホストサービス位置を決定します。上の図では、HS-Dです。
  5. DNS名を返す Traffic ManagerクライアントマシンにホストサービスDのDNS名を返します。
  6. サービス呼び出し クライアントマシーンは、DNS名をIPアドレスに解決し、ホストサービスを呼び出します。

補足

  • パフォーマンsテーブルが更新されたとき、ホストサービス上の負荷によって、トラフィックパターンが変わることがあるかもしれません。そのような変更は、わずかです。
  • DNS Time-to-Live(TTL)はローカルDNSがドメイン解決をするのに、DNSキャッシュをエントリを使用する期間を指定します。クライアントは、DNSキャッシュが期限切れするまで、すでに入手したホストサービスを使用し続けます。
  • Traffic Managerは、ポリシーに含まれているホストサービスの状態を監視し、トラッフィクが送信できないときは、ホストサービスがダウンしていると判断します。もし、ポリシー内のすべてのホストサービスがオフラインになっている場合、Traffic Managerは、ポリシー内のホストサービスがオンラインだったと仮定して最も近いホストサービスを返します。クライアントマシンは、ホストサービスを呼び出しても応答しません。

Windows Azure

この投稿は、「Windows Azure Traffic Manager Configuration Guid」に記載されている「Failover Load Balancing Method in Windows Azure Traffic Manager」をざっくり意訳した投稿です。

プライマリホストサービスがオフラインの場合、トラッフィクは順番に次のホストサービスに送信されます。もし、リストの1番目、2番目のホストサービスがオフラインの場合、トラフィックは3番目に送信されます。

image

Windows Azure

この投稿は、「Windows Azure Traffic Manager Configuration Guid」に記載されている「Best Practice for Hosted Services and Polices When Using Windows Azure Traffic Manager」をざっくり意訳した投稿です。

ホストサービス

サービスは同一サブスクリプションを使用する

Windows Traffic Managerで制御したいすべてのホストは、ポリシーを作成するのと同じサブスクリプションでなければなりません。ポリシーに異なるサブスクリプションのホストサービスを追加することはできません。

Productionサービスのみ使用可能

Windows Traffic Managerで制御できるホストサービスは、Production環境だけです。ステージング環境のホストサービスは、ルーティングに追加することはできません。ポリシーでルーティング制御をしているときに、VIP SWAPを実行した場合、ホストサービスがProduction環境になった段階でルーティングに使用することができます。

ホスト名はわかりやすいものにする

Traffic Managerでポリシーを作成したり編集する際に、追加するホストサービスのDNS名を検索することができます。下の画像の①に文字列を入力すると、②の部分がフィルタリングされて表示されます。(複数あって、特定のDNS名を見つけたいときに使用します。)
image
複数の(たとえば、20個とかの)ホストサービスを使用している状態で、命名が悪いと、ホストサービスを追加するのが難しくなります。別のポリシーに追加してしまうなど、ミスを誘発してしまいます。

1つのポリシーに追加するホストサービスはすべて同じ動作とポートにする

ホストサービスが混在していると、リクエストしたサービスとは異なるサービスをクライアントが呼び出してしまう状態が発生してしまいます。サービスAとBが混在していて、ユーザがAを呼び出そうとしたのに実際にはBが返ってくる状態は、良いとは言えないです。

1つのポリシーに追加するすべてのサービスを同じモニタリング方法を使用する

ポリシーで使用するすべてのホストを監視する場合、一つだけパスかファイルを選択することができます。ポリシーからサービスを1つ移動させたり、サービスを異なる方法で監視すると、常にオフライン表示になるサービスがあるかもしれません。オフラインになっていると、ユーザにそのサービスのIPが返されることは無く、トラフィックがホストサービスに振り分けられることはありません。

ポリシー

ポリシーを変更するよりも、ポリシーを無効にするかホストサービスを無効にする

たいていの場合、ホストサービスを除外したり、ポリシーをオフラインにしたくなることがあるかと思います。そんな時は、ポリシーを変更するよりも単純にホストサービスやポリシーを無効化したほうが良いです。
下の図は、ポリシーの無効化するためのボタンを示しています。

image

Traffic Manager ドメイン

(Traffic上で一意の)プレフィックスをわかりやすいものにする

Traffic Managerドメインは、一意です。ドメインの一番最初のパートのみを設定することができます。

設定出るのは、CTPの前の部分だけです。

image

Traffic Managerドメインは、証明とルーティング目的で使用します。クライアントマシン(エンドユーザ)では、決して使用しないドメインなので、ドメイン名を読みやすくする必要性はありません。しかし、このドメインでポリシーを確認するので、重要です。管理ポータル上で、ほかのドメインから参照できるかを簡単に設定できます。

ドットを使用して、読みやすいドメインを作る

ドメイン名プレフィックスは、ピリオド記号を使用してパーツを分けることができます。

たとえば、メインドメイン名がwww.contoso.com の場合で、ポリシーでアジアとUSとヨーロッパにポリシーを設定した課金サービスに使用する名前には、billing.asia.us.europe.contoso.ctp.trafficmgr.comのようなプレフィックスを設定することができます。しかし、いくつかの制限事項があります。(ピリオドで分割された各部分をラベルと呼称します。 label.label.label.ctp.trafficmgr.com)

  • 各ラベルには63文字しか使用できません。
  • 127以上のラベルを使用できません。
  • URLは全部で263文字でなければなりません。ctp.trafficmgr.comの部分で18文字使用しています。

DNS TTL(Time-to-Live) 生存時間

Windows Traffic ManagerにDNSエントリを更新するためにクエリを、クライアントとセカンダリDNSサーバが、どれぐらいの頻度でクエリを投げるかをDNS Time-To-Liveの値で設定します。

推奨は規定値の300秒(5分)です。値を小さくするとTraffic Managerへのトラフィック量が増え、パフォーマンスへの影響がでてしまいます。