Windows Azureエンタープライズアプリケーション開発技法 Windows Azure Virtual NetworkとTraffic Managerとフェデレーション認証 赤間 信幸 2011/12/26 |
|
|
●2.3.6 Windows Azure Traffic Manager
Windows Azure Traffic Manager(WATM)は、DNS名前解決のロジックを工夫することで、複数のデータセンターに配置されたサービス間でのフェールオーバーや負荷分散を行う仕組みである。この機能は、特にWindows Azureコンピュートサービスの災害対策(DR、ディザスタリカバリ)に繋がる重要なものであるため、ここで解説する。
○Windows Azure Traffic Managerの内部動作
WATMの正体は、事前に設定されたポリシーに基づいて、返信するIPアドレスを動的に変更するDNSサーバーである。WATMの動作アーキテクチャを図 2-32に示す。
今、あるシステムを、シカゴ、シンガポール、香港の3つのデータセンターに重複配置したとする。この際、各データセンターに配置されたシステムには、個々のURLが付与される(表 2-9)。このとき、WATMを利用すると、これらの各サービスを束ねる形で1つのURLを作ることができる*3(例:http://nakama.ctp.trafficmgr.com/)。エンドユーザーがこのURLにアクセスしようとすると、内部的には名前解決が行われるが、この際、WATM(DNSサーバー)は、事前に設定されているポリシーに基づいて*4、いずれか1つのサービスのIPアドレスを返す。これにより、エンドユーザーは、適切なデータセンターのサービスへと誘導されることになる。
図 2-32 Windows Azure Traffic Manager |
表 2-9 各データセンターに配置したAzureアプリケーションのURL(例) |
*3 実際のシステムでは、このURLに対してCNAMEレコードを作成し、自社ドメイン名などに変えて運用することになる。(例:http://nakama.ctp.trafficmgr.com/ → http://www.nakama.microsoft.com など) |
*4 クライアントとの距離に基づいて返信IPアドレスを決定する方式、 (生きているサービスのうち)最も上にあるサービスのIPアドレスを返す方式、 リストの中のサービスをラウンドロビンで返す方式、の3通りがある。は全世界レベルでのトラフィック分散、は災害対策のシナリオで利用する。いずれの方式であっても、ヘルスチェックに対して応答のないサービスに関しては、自動的に除外されるようになっている。 |
○Windows Azure Traffic Managerの利用シナリオ
この機能は、主に以下の2つのシナリオで使うことができる。
- 全世界レベルでのトラフィック分散(図 2-33)
- WATMでは、クライアントと各データセンターとの距離(通信のラウンドトリップ時間)を定期的に計測しており、このデータを用いて、クライアントから見て最も近いと思われるデータセンターのサービスのIPアドレスを返す機能を備えている。
- これにより、エンドユーザーを近場のデータセンターに誘導できるようになり、エンドユーザーの体感速度を大幅に向上させることができる。
図 2-33 エンドユーザーを最も近いデータセンターに誘導するためのWATMの利用 |
- 災害対策(図 2-34)
- 通常、各データセンターの中では、各種の多重化を行っている(複数台のWebサーバーの利用、SQL AzureデータベースサービスやWindows Azureストレージサービスのデータ3多重化など)。このため、通常の障害(Webサーバーの1台が壊れる、SQL Azureデータベースの1つの複製が壊れる、など)では、サービスが停止することはない。
- しかし大規模災害が発生し、データセンターそのものが壊滅的な被害を被った場合(すなわち冗長化したサーバーすべてがダウンした場合)には、この限りではなくなる(サービスが停止してしまう)。このような場合には、別データセンターへのサービスのフェールオーバーが必要である。
- そこで、WATMを利用する。WATMは、プライマリサイトがヘルスチェックに応答しなくなった場合、クライアントに返信するIPアドレスを、セカンダリサイト(図の例の場合にはシンガポールデータセンターのサービス)に切り替える。これにより、拠点間フェールオーバーを実現することができる。
図 2-34 災害対策のためのWATMの利用 |
○Windows Azure Traffic Manager利用時の注意点
このように、WATMを利用することで、全世界規模でのトラフィック分散や、災害対策のための拠点間フェールオーバーを行うことができる。ただし、トラフィック分散や拠点間フェールオーバーを実際に行いたい場合には、ストレージデータをどのように拠点間で複製するのかについて、別途検討しなければならない*5。WATMは、あくまでエンドユーザーを適切なサイトへ誘導する仕組みでしかないためである。
*5 残念ながら、現時点ではこの点(データセンターまたがりでのデータ複製)に関しては、あまりよいソリューションが提供されておらず、手作業あるいはアプリケーションの作り込みで、データセンター間でのデータ複製を行う必要がある。中長期的には、 Windows Azureストレージサービスの拠点間複製機能、 SQL Azureデータベースの論理バックアップ/リストア機能、などが提供されることで解消されると思われる。WATMの利用を検討する場合には、これらに関する最新情報を調べていただければ幸いである。 |
以上がWATMの概要である。最後に、フェデレーション認証について解説する。
INDEX | ||
[書籍転載]Windows Azureエンタープライズアプリケーション開発技法 | ||
Windows Azure Virtual NetworkとTraffic Managerとフェデレーション認証 | ||
1.Windows Azure Virtual Network | ||
2.Windows Azure Traffic Manager | ||
3.フェデレーション認証 | ||
「Windows Azureエンタープライズアプリケーション開発技法」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|