クラウドOS Azureの登場
OSと永続性の担い手
普通のOSでは、永続性の担い手はファイルシステムです。OSの設計にファイルシステムの設計が強く結びついていることを疑問に思う人はいないでしょう。
また、普通のOSでは、ファイルシステムはOSの一部ですが、データベースはOS上のアプリケーションの一つでしかありません。
しかし、翻って考えてみれば、こうした永続性の担い手としてのファイルシステムとデータベースの区別は、OS自身の歴史に規定された歴史的・相対的なものでしかないことが分かります。
3社のクラウドで起きていることは、クラウドにとってのデータ・サービスの重要性の認識が高まり、クラウドOSとクラウド・データベースの融合が進行していると見ることができると筆者は考えています。
こうした視点から見ても、Windows Azure StorageのBlob、Table、Queueという構成は興味深いものです。
そもそも、Googleのクラウドの利用者は、BigTableに直接アクセスできるわけではありません。Google App Engineを通じて間接的にアクセスできるだけです。
Amazonのクラウドの利用者は、S3、SimpleDBを自由に利用できます。ただ、これらのデータストアは、クラウド上の一つのサービスでしかなく、それらがクラウドの中で何らかの役割を果たしているようには見えません。
Azure Storage Tableは、Azureの中で、サービスの「状態」を保持するのに利用されています。クラウドは多数のStatelessなサーバーからなります。しかし、Stateを持たないサービスは存在しません。クラウド上のサービスの状態保持は、クラウドOSに固有の永続性なのだと考えることができるかもしれません。
また、Azure Storage QueueもAzureの中で、サービス間の情報伝達路として活用されています。Service Modelでのワイアリングは、Queueとして実装されていると思います。
Queueは、また先に見たように並行して走る複数のサービス間の同期に極めて有効に利用されています。このように、Windows Azure StorageはクラウドOSの基本的な機能を担っているのです。
SQL Azure
昨年のPDC 2008の時点では、Windows Azure上のクラウド・データ・サービスSDS(SQL Data Service)は、今まで見てきたAzure Storage Tableの上に実装されていました。
しかし、Azureのデータベースがリレーショナル型ではなく、新しいKey/Value型であるということは、開発現場に大きな反響を巻き起こしたようです。現場の圧倒的な声は、今までどおり、リレーショナルなSQLサーバーを使えるようにしてほしいというものであったようです。
Microsoftは、今年行われたMIX 2009で、急きょ、SDSをSQLサーバーをベースにしたSQLサーバー互換のリレーショナルなデータ・サービスに置き換えました。SQL Azureと呼ばれているサービスがそれです。
確かに、既存のリソースと開発者のスキルをそのままクラウドでも生かせるようにしようという、Microsoftの基本的なクラウド戦略から言えば、先端的なKey/Valueデータベースの採用は、そこだけが異質なものに映ったかもしれません。
抵抗感をできるだけなくしてクラウド移行を促すという意味では、現実的で妥当な判断かもしれません。
今回で本連載は終わりです。「クラウド創世記」と題して、3回にわたって現在主流となるクラウド技術を中心に解説してきましたが、いかがだったでしょうか。