クラウドコンピューティングの普及によって、世界各地のデータセンターでWebアプリケーションを分散運用する際に必要な手間やコストが大幅に下がりました。Windows Azure Platformの場合には、北米ではシカゴやサンアントニオ、EUではダブリンとアムステルダム、アジアでは香港とシンガポールにデータセンターがあります。アプリケーションをデプロイする際には、これら六つのデータセンターから好きな場所を指定できます。

 こうした環境の変化が、アプリケーションのワールドワイド展開を後押ししています。アプリケーションを開発する際に、母国語だけではなく多国語に対応しておけば、Windows Azure Platformのようなクラウドコンピューティングを用いることで、アプリケーションを容易にワールドワイド展開できるのです。

 ただし、クライアントとサーバー間の物理的な距離が遠くなるとネットワークの遅延が大きくなるので、Webアプリケーションの操作性が悪化します。世界各地で分散運用するケースでは、クライアントが特別な操作をしなくても、一番近いサーバーにアクセスする仕組みがあると便利です。このような仕組みをグローバルサーバーロードバランシング(GSLB)といいます。第4回では、このGSLBを実現する設計を取り上げます。

GSLBはまだ正式サービスではない

 通常のロードバランサーはプライベートネットワークの中にある範囲、言い換えれば目の届く範囲にあるサーバー間で負荷を分散します。一方、GSLBではアジアと北米やヨーロッパといった、遠く離れたサーバーの間で負荷分散を行います。もし、どこかの地域で大地震が起こるなどしてサーバーが応答しなくなったとしても、代わりに他地域のサーバーが応答します。このような仕組みにより、たとえ大規模な災害が発生したとしても、ユーザーはアプリケーションを継続して利用できる可能性が高くなります。

 Windows Azure Platformには、GSLB機能を持つWindows Azure Traffic Managerが用意されています。ただし、用意されているとはいっても、2011年7月1日時点ではWindows Azure Traffic Managerは正式サービスではなく、CTP(Community Technology Preview)として提供されています。ベータプログラムに参加することによって、利用可能になります。

 Traffic Managerの設定はWindows Azureの管理ポータルから行います。ポリシーの作成画面で、ルーティング設定のロードバランシング方法として「Performance」を選択すると、クライアントから一番近いサーバー対してリクエストがルーティングされるようになります(図1)。

図1●Traffic ManagerでGSLB機能を利用する設定
図1●Traffic ManagerでGSLB機能を利用する設定
[画像のクリックで拡大表示]

データの置き方に注意が必要

 GSLB機能を利用する際には、データの置き方を注意深く検討する必要があります。Traffic Managerの利用によってクライアントからのリクエストが世界各地に分散されても、データを1カ所のデータセンターにしか置いていないと、そこから遠いデータセンターで運営するWebアプリケーションはデータへのアクセスに時間がかかり、満足な応答性を確保できないからです。また、データを1カ所だけにしか置いていないと、大規模な自然災害の発生などによってそのデータにアクセスできなくなった際、世界各地に分散させたアプリケーションがすべて動作不能になります。つまり、データをホストしている環境がSPOF(単一障害点)になってしまうのです。

 こうした問題を解消するには、データについても世界各地のデータセンターに配備する必要があります。Windows Azure Platformには、データを同期する仕組みとして「SQL Azure Data Sync」が用意されています。SQL Azure Data Syncを使うと、SQL AzureのデータやオンプレミスのSQL ServerのデータをほかのSQL Azureに同期的に複製することができます。

 なお、アプリケーションが取り扱うデータによっては、分散が難しい場合もあるので注意が必要です。

冨田 順(@harutama)
富士通システムソリューションズ
Windows Azureを中心に、各種クラウドプラットフォーム上にシステムを構築するための研究研究開発を行っている。Microsoft MVP for Windows Azure。