【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

従来型の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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています