従来型のRDBMSではなく代替技術へ移行か

クラウド向けデータベースの選択肢

2008/09/22

 「大抵の開発者はリレーショナルデータベース管理システム(RDBMS)の扱いに慣れているが、それをクラウド内で利用する可能性は低い」――クラウドコンピューティングの専門家はこう指摘し、さまざまなクラウドコンピューティング方式の利点と欠点を示した。

 10genの共同創業者で同社の技術担当副社長を務めるガイアー・マグナッソン氏は、ニューヨークで開催された「Web 2.0 Expo」で講演を行い、「RDBMSは必要なものだが、クラウドの中ではそうではない」と述べた。

 しかしオブジェクト/リレーショナルマッピング(O/Rマッピング)は、オブジェクト指向言語とリレーショナルシステムに格納されたデータとの間のインピーダンスミスマッチを回避するための1つの方法であるという。「O/Rマッピングは、RDBMSのパワーとODBMS(オブジェクトデータベース管理システム)のプログラミングの簡素性を結合するものだ」とマグナッソン氏は語り、Java、Python、Ruby、.NET、Groovyでは O/Rマッピングがサポートされていると指摘した。「O/Rマッピングはあらゆる環境で可能だ」と同氏。

 マグナッソン氏の講演のタイトルは、「The Sequel to SQL: Why You Won't Find Your RDBMS in the Clouds」(SQLの続編:RDBMSがクラウドに進出しないのはなぜか)。

 マグナッソン氏は、クラウドを「ローカライズされていない、あるいは匿名のコンピューティングサービスまたはリソース」と定義し、クラウドコンピューティングの手法のいくつかのタイプを列挙した。その1つが、Salesforce.comに代表されるSaaS方式である。もう1つの手法は、10genやGoogle App Engineなどが採用しているPaaS(Platform as a Service)方式。そしてHaaS(Hardware as a Service)という方式を採用しているのが、AmazonのElastic Compute Cloud(EC2)だという。

 クラウドが一般化したのは、クラウドコンピューティングがさまざまなメリットや経費節減効果をもたらすからである。例えば、初期投資や運用コストの節減、そして可用性とアクセス性の改善による顧客サービスの向上などである。しかし落とし穴もあるという。「データという視点から見れば、データの複製と配布を行う必要がある」とマグナッソン氏は指摘する。大規模なデータセットの場合、データを分割する必要もあるという。

 HaaSの概念を拡張するものとして、マグナッソン氏は「EC2上での皿回し」という方式について説明した。これは、MySQLに対して複数のVM(仮想マシン)を動作させるという手法で、1つがマスターになり、多数のVMがスレーブになる。マスターがダウンした場合でも、残りのスレーブから新しいマスターを作成することができる。「しかし私の考えでは、これはクラウドコンピューティングではない。実際には、クラスタリングを行っているのだ」と同氏は話す。

 さらにマグナッソン氏は、グーグルがApp Engineを通じて提供している「Bigtable」について論じた。Bigtableは分散型ストレージシステムで、非常に巨大なサイズ(例えば、数千台のコモディティサーバに分散した何ペタバイトものデータ)に拡張するよう設計された構造型データを管理する。Bigtableは、エンティティと呼ばれるデータオブジェクトを格納する大規模ストレージをサポートする。「しかしBigtableでは、すべてのクエリに対してインデックスが必要とされるほか、フェッチリクエストが最大1000個のエンティティに制限されるといった制約条件もある」と同氏は指摘する。

 マグナッソン氏によると、Amazonの「SimpleDB」はテーブル型のデータストアである。「これはS3(Amazon Simple Storage Service)用のメタデータストアとして用意されたものであるようだ」と同氏は話す。SimpleDBは自動インデックス作成をサポートするため、データの一貫性が保たれるが、ドメイン間のジョインには対応せず、クエリは最大250項目に制限され、あらゆるものがストリングとして扱われるという。

 一方、10genの「Mongo」は、10genプラットフォーム用のデータベースである。10genでは、動的で拡張性の高いミッションクリティカルなWebサイト/アプリケーションを素早く容易に構築することを可能にする新しいPaaS技術を開発中だ。10genソフトウェアスタックは、クラウド環境内で運用するために作成された新しいツールスタック(データベース、グリッド管理、アプリケーションサーバ)を提供するという点でGoogle App Engineと似ている。

 マグナッソン氏によると、Mongoはオブジェクト/ドキュメントストアだという。「これは、バイナリJSON(JavaScript Object Notation)のようなものだ」と同氏は話す。Mongoはクラウドを対象とした動的言語型ODBMSである。「言語バインディング機能により、開発者は自分の好きな言語を利用することができる」と同氏は話す。

 もう1つのクラウドコンピューティング方式が「AppJet」で、これは10genの方式に近いという。「JavaScriptベースのアプリケーションサーバをクラウドに置いたようなものだ」と同氏は説明する。

 各手法の概要説明の結論として、マグナッソン氏は「どれもリレーショナル方式を採用しておらず、データはクラスタ方式で扱われている」と述べた。

 さらにマグナッソン氏は、そのほかの「注目すべき技術」として、サン・マイクロシステムズのMySQL部門の「Drizzle」技術などを紹介した。DrizzleはクラウドとWeb用の軽量型SQLデータベースである。「DrizzleはMySQLから発展したもので、リレーショナル型である。MySQLデータベースから派生し、クラウドとネットワークアプリケーション用に最適化されている」と同氏は語る。

 マグナッソン氏によると、もう1つの注目技術が「CouchDB」である。CouchDBは Apache Software Foundationが開発したドキュメント指向型データベースで、Erlangというプログラミング言語で書かれている。また、分散ファイルシステムと MapReduceエンジンを組み合わせた「Hadoop」という技術もあるという。

 このように数多くのオプションと広大なクラウド環境が存在するため、「プログラミング手法も変わるだろう。これはとても楽しい状況になると思う」(マグナッソン氏)

情報をお寄せください:

Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

注目のテーマ

- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

AdRollが日本でも「ネイティブ広告」の販売を開始
AdRollは、米国にて提供中の「ネイティブ広告」のサービス提供を日本でも開始した。

Twitter上でユーザーとのコミュニケーションを自動化、サイバーエージェントがサービス提供
サイバーエージェントは、Twitter上での企業とユーザーのコミュニケーションを自動化する...

人工知能「Adobe Sensei」はCMSをどう変えるのか?
アドビ システムズが2018年4月に提供開始する「Adobe Experience Manager」最新版の特徴...