続いて関田氏は、ストレージサービスについての解説を行った。通常のファイルシステムで可用性を高めるには、RAID構成などハードウェア的なカスタマイズをユーザー側で必要がある。しかし、マイクロソフトではファイルシステムではなくサービスとして実装することで、高い可用性とスケーラビリティを実現したという。
具体的な機能は、ファイルシステムと同様に大容量の非構造データを1ファイルあたり50GBまで保存できる「BLOB」、キー・バリュー・ストレージのようにスキーマを持たずエンティティと型情報を持つプロパティを組み合わせたデータが保存できる「TABLE」、メッセージ交換のためのストレージとしてロール間で用いられる「QUEUE」の3種類。
セキュリティ面では、RESTのパケット内に256bitシークレットキーを利用したHMAC-SHA256署名を入れることで認証を行っている。また、ストレージサービスの容量制限は基本的に設けられていない。
テーブルについてはアプリケーションによる分割が可能で、同じパーティションキーであれば同一パーティションに割り当てが行われる。パーティションキーが違えばトラフィックの状況に応じて異なるノードへ割り当てられる可能性があるため、よりスケーラブルなストレージを構築できるわけだ。
可用性の面では、データセンターで少なくとも3カ所のノードにレプリケーションが行われており、データ保全用のバックアップは不要となっている。
「ファブリックコントローラー」で効率的な管理を実現
関田氏は「Windows Azureで最も重要な自動管理を実現した『ファブリックコントローラー』です。これはデータセンターがOSだとすると、カーネルにあたる部分といえるでしょう」と語る。
ファブリックコントローラーではハードウェアや仮想化マシンの管理、さらにはアプリケーションの割り当ても担当しており、ユーザーはWebポータルから指示をするだけで実行できる。
実際の機能としては、単一障害点をドメイン分割して割り当てを行う「停止ドメイン」および、更新時にアプリケーションを止めないための「更新ドメイン(CTP段階では未実装)」を考慮したノードの割り当てを実施。また、OSとロールのイメージ配置、設定およびロールの開始、ロードバランサーの設定、必要数のロールを維持するためのモニタリングなども行われる。
なお、停止したロールには自動再起動をかけ、ノードが停止した場合は別のノードを自動で割り当てるといった機能も含まれるという。
これらの機能により、Windows Azureではリソースの割り当て、プロビジョニング、アップグレード、サービス状態の管理を効率的に行うことが可能となっているわけだ。
SQL Serverのクラウド版「SQL Azure」
デベロッパーサービスで注目を集めるのが、SQL Serverのクラウド版ともいえるSQL Azureだ。
こちらは可用性とスケーラビリティを高めるべく一部のアーキテクチャが変更されているが、T-SQLをそのまま利用可能。また、ADO.NETやODBCなどのドライバをすべて使えるので、データベース上のクライアントアプリケーションでも接続モジュールを変更するだけでSQL Azureにつなぐことができる。
なお、データを同期する「Data Sync」はPDC後に、レポーティングやBIについては将来的に実装される予定だという。
11月にリリースされるV1の実装機能としてはテーブル/インデックス/ビューのほか、ストアドプロシージャ、トリガ、CONSTRAINTS、テーブル変数などを予定。ただし、SQL Azureではスケーラビリティの考え方が異なるため分散トランザクションや分散クエリ、SQLCLR、自動パーティションといったいくつかの機能は利用できなくなっているようだ。
Windows Azure Platformの商用利用は11月に開始されるが、米マイクロソフトがサービスを提供するため基本的にすべて英語で、サポートも米国となる。日本でのリリースについては、ローカライズやサポートを含めて現在検討中だ。ちなみに、マイクロソフトのサイト上で現在公表されている価格は従量課金モデルであり、企業向けのボリュームライセンスに組み込むような仕組みも検討しているという。