MIX11でアナウンスのあったWindows Azure Traffic Manager (CTP)がActiveになってました。
Windows Azure Traffic ManagerはWindows Azure Virtual Networkカテゴリに属する新しい機能です。(他にはWindows Azure Connect等が含まれます)
何をするものかというと、ホストサービス間をまたがってWeb Roleの負荷分散やフェイルオーバー、ラウンドロビンを行うことができます。
※詳細はWindows Azure Traffic Manager Configuration Guidを参照ください。(今時点で一番詳しいドキュメントです)
このドキュメントに動作原理やトラフィックの流れなど、全部書いてます。
使い方例
とりあえずホストサービス(データセンター)またがってWindows Azureアプリケーションが動作してないと話にならないので、さくっとWeb Roleを展開しておきます。
例:南米と香港DCで作成
次にWindows Azure Platform管理ポータルからVirtual Networkを選択して、Traffic ManagerからCreateメニューを選択します。
Create Traffic Manager Policyダイアログが開くので、負荷分散する方法をPerformance、Failover、Round Robinから選択、対象となるホストサービス(DNS)の選択と優先順位付け、監視対象のURLと、ロードバランシングされるDNSを決めます。
今回はFail Overで試してみます。
Traffic Managerのポリシーで設定したDNSはCNAMEとして登録されます。
NSLookupで見てみると、優先度を上に設定したbuchizo-scus.cloudapp.net が返されます。
パフォーマンスの場合はユーザーに近いDCに自動的に振り分け(ユーザーのパフォーマンス優先)、ラウンドロビンの場合は完全にランダムです。(相手が落ちてても振られる)
※NSLookupの結果も毎回かわります
※2011.05.11 少し勘違いしていたので追記修正
これでbuchizo-scus.cloudapp.netへは接続できなくなりました。Traffic Manager側の設定で、2番目に指定しているbuchizo-eastasia.cloudapp.net に切り替わってるはずですね。
NSlookupでみると
期待どおりですね。ホストサービス(データセンター)をまたがってもトラフィックを分散・冗長化することができました。
その他の操作
Traffic Managerでは明示的に特定のホストサービスへの接続を遮断することができます。
まとめ
そんなわけでまだまだCTPなTraffic Managerですが、本格的なサービス運用には必要な機能をより簡単に扱えるのはうれしいですね。
今までだと自前で別途DNS/CNAMEの管理しないといけないのと、あくまでDNSレベルでしか対応できなかったのがパフォーマンスやサービスの稼働状態を見てくれるので格段に便利です。
とはいったもののテストしてたりすると、どうしてもDNSのキャッシュだったりブラウザのキャッシュだったりで期待する動作になりにくかったりしますので注意が必要ですね。
(DNSのTTLをどれぐらいにするか等も含めて、要注意ということで)
おまけ
アップデート来てからなのかどうかわかりませんが、管理ポータルの挙動が怪しいですね。よくエラーになったりします。。。









