次に、Windows Azureがどんなインフラになっているかを見ていこう。

実体は2008を使ったサーバーの仮想化

 Windows Azureを提供するデータ・センターは、「ファブリック」と呼ばれるサーバー群とそれをつなぐネットワーク機器、ファブリックを管理する「ファブリックコントローラー」で構成される(図1-3)。

図1-3●Windows Azureの全体像<br>Windows Azureは、データ・センターにある「ファブリック」とそれを管理する「ファブリックコントローラー」などで構成される。
図1-3●Windows Azureの全体像
Windows Azureは、データ・センターにある「ファブリック」とそれを管理する「ファブリックコントローラー」などで構成される。
[画像のクリックで拡大表示]

 ファブリックでは、「Windows Server 2008」と仮想化ソフト「Hyper-V」が稼働している。そして、仮想化ソフトを使ってサーバー・マシンの処理能力が分割され、複数台の仮想マシンとして使えるようになっている。この仮想マシンの上でもWindows Server 2008が稼働する。つまりAzureは、Windows Server 2008でできている。

 Windows Azureでは、仮想マシン1台を1インシデントとしてユーザーに提供する。インシデントは、仮想マシン1台当たりの処理性能という意味を持つ。ファブリックコントローラーは、ユーザーに割り当てた仮想マシンの死活監視を行い、障害時には別の仮想マシンを割り当てる。

 ユーザーは、ファブリックコントローラーが提供する管理コンソールの画面を通して仮想マシンにアクセスする。具体的には、ユーザーが管理コンソール経由でアプリケーションをアップロードしたり、その処理に割り当てるインシデント数を決めたりする。

「ロール」単位で管理する

 各仮想マシン上では、動かすアプリケーションを「ロール」と呼んで管理する。ロールには2種類あり、インターネット経由でクライアントが直接アクセスできる「Webロール」と、バックグラウンドで処理を実行する「Workerロール」がある(図1-4)。

図1-4●Windows Azureが提供するのはアプリケーションを 実行する場所とストレージ<br>ユーザーは、アプリケーションをロール単位で実行する。各ロールには、1台の仮想マシンが割り当てられる。一つのアプリケーションを複数のロールで処理するときは、ロード・バランサが負荷を分散する。
図1-4●Windows Azureが提供するのはアプリケーションを 実行する場所とストレージ
ユーザーは、アプリケーションをロール単位で実行する。各ロールには、1台の仮想マシンが割り当てられる。一つのアプリケーションを複数のロールで処理するときは、ロード・バランサが負荷を分散する。
[画像のクリックで拡大表示]

 ロールは、仮想マシン1台当たりで一つずつしか動かせない。また、WebロールとWorkerロールの間はデータを直接やりとりできない仕様になっている。Azureが提供する「Windows Azureストレージ」と呼ぶストレージ・サービスを介してデータをやりとりする。

 なお、一つのアプリケーションに対して複数のインシデントを設定した場合、ファブリックコントローラーが自動で分散処理できるように設定する。また、仮想マシン同士は物理的に近い場所に配置されており、データ・センター内でのネットワークの遅延を低減させるようになっている(図1-3)。これを「Affinity Group」と呼ぶ。

クラウドは適材適所で選ぶ

 最後に、もう一つのマイクロソフトのクラウド「Microsoft Online Services」との関係を説明しよう。

 Microsoft Online Servicesとは、マイクロソフトが提供するAzureとは別のクラウドだ。メール管理の「Exchange Online」や情報共有の「SharePoint Online」など、四つのWebアプリケーションを提供する(図1-5)。一般にSaaSと呼ばれるものだ。これらは、社内システムで運用しているメール・サーバー「Exchange Server」をクラウドに移行するときなどに使う。

図1-5●マイクロソフトが提供するクラウド「 Microsoft Online Services 」<br>マイクロソフトは、メールやファイル共有といったコモディティ・サービスをWebアプリケーションの形で提供している。用途に応じてWindows Azureと使い分けることを推奨している。
図1-5●マイクロソフトが提供するクラウド「 Microsoft Online Services 」
マイクロソフトは、メールやファイル共有といったコモディティ・サービスをWebアプリケーションの形で提供している。用途に応じてWindows Azureと使い分けることを推奨している。
[画像のクリックで拡大表示]

 つまり、Windows Azureはこのサービスに代わるものではない。Windows Azureはユーザーが作成したアプリケーションの実行環境であり、Exchange Serverのような既存のアプリケーションを移行するのには向かないからだ。同等の処理を実行できるAzure用のアプリケーションを開発するコストが無駄になる。

 社内システムをクラウドに移行する場合、どのクラウドを利用するかがポイントになる。また、移行するか否かの判断も重要だ。例えば、複数のユーザーが同じデータを編集し、遅延が許されないような場合はクラウドへ移行せず、社内システムのまま運用した方がよいケースもある。