クラウド・コンピューティング: Windows Azure
Webアプリケーションは多くの場合、大量アクセスに対する負荷分散や機器故障への対策として、サーバーを多重化しています。すなわち、Figure 11に示すように、同様の処理を実行するサーバーを複数台用意して運用します。
開発者視点で見ると、多重化を行う上でいくつかの面倒事があります。
- クライアントからのアクセスを複数台に振り分けるロードバランス処理
- 複数台のサーバーを同じ構成で構築する手間
- データのバックアップ
近年、「クラウド」という言葉がバズワード化していますが、開発者視点で見ると、このような多重化に関する面倒事を解消してくれるのがクラウド(正確には、クラウドの一種であるPaaS(Platform as a Service))です。すなわち、PaaSとは、開発者視点でいうと以下のようなものです。
- 開発したアプリケーションと設定ファイルを収めたパッケージをアップロードするだけで、設定に応じた好きな台数の仮想マシンを起動してくれる
- 負荷分散/冗長化の自動化を行い、Webアプリケーションに対する負荷分散処理を自動的にやってくれる
- 自動的にバックアップが行われるデータ格納先を提供してくれる
- OS以外にも、アプリケーション実行に必要なコンポーネントが最初から入っている
MicrosoftもWindows AzureというPaaS型クラウド・サービスを提供しています。Windows Azureでは、ASP.NETやWCFを用いてクラウド上でWebアプリケーションやWebサービスを作ることができます。既存の(クラウドではない)Web技術を流用できるため、既存環境からの移行や、既存資産の活用が簡単です。