ドキュメント・データベース「Cloudant」とは
「Cloudantという名称を聞いたことのある方」
冒頭で野間氏は参加者にこう尋ね、セッションは始まった。Cloudantはひと言で言うとドキュメント・データベースのDBaaSである(実はCloudantにはオンプレミス版も用意されているが、本セッションではDBaaS版についてのみ紹介)。元々は米マサチューセッツ工科大学(MIT)で物理学の博士号を取った人物が、大量の素粒子のデータを容易にかつパフォーマンスよく分析できるよう、「Apache CouchDB」に足りない機能を追加して開発されたものだという。したがって「Apache CouchDB」との互換性は「限りなく100%に近い」と野間氏は説明する。
「IBMというとホストのイメージがあるかと思うが、今年度からクラウドやソーシャル、モバイル、ビッグデータに注力している。Cloudantはクラウドとモバイル、ビッグデータという3つの領域をカバーできるため、IBMとしても非常にフォーカスしているソリューション」だと野間氏は語る。「日本ではまだ知名度はないが」と野間氏は前置きしながらも、RunKeeper(ランニングやウォーキングなどのデータを記録し、GPSで追跡できるサービス)、Hothead Games(ゲーム・デベロッパー)をはじめ、「いろいろなお客さま先で使われている」と語る。
ではなぜいまドキュメント・データベースに注目が集まっているのか。その理由は、ドキュメント・データベースはその名の通り、Webやモバイルアプリケーションでやりとりされるデータで広く一般的に利用されているドキュメント(JSON)を表形式に変換することなく、そのまま格納できる点にある。 従来のリレーショナル・データベースの場合、プロジェクトの途中で設計変更をしたいと思っても、変更自体に時間がかかり、その分、アプリケーションの開発も遅れてしまっていた。特にデータベースアーキテクトが入っているようなプロジェクトでは、変更そのものを許さないということもある。しかし柔軟で拡張可能なドキュメント・データベースなら、開発しながら必要なところだけを変更することも容易にできる。つまり「開発者が自分のデザインしたいアプリケーション通りにデータのデザインができるようになる」と野間氏は言う。特に開発スピードが速いWebやモバイルアプリケーションには最適なデータベースというわけだ。
実際、ドキュメント・データベースはどのような分野に適用されているのか。ユーザーが生成するコンテンツの収集(ソーシャル、地理情報など)や、製造装置などの機械が出すさまざまな連続データの格納・集計・分析、バックオフィス系(ログデータやユーザーのクリック・画面遷移履歴、通信記録)などで使われているという。また最近はIoTの分野にも広がっていると野間氏。「今はまだ実験段階だが、IBMでは米フォード社と共に、『つながる車』の検証実験をしている、車から送られてくるミリ秒単位のデータの蓄積にドキュメント・データベースが使われている。つまり今までのリレーショナル・データベースが苦手だった分野を中心に、ドキュメント・データベースが浸透しつつある」と野間氏は語る。
続いて野間氏はCloudantの具体的な機能についても紹介した。冒頭でも述べたように、CloudantはApache CouchDBをベースに機能追加したNoSQLドキュメント・データベースである。シンプルなHTTP RESTful APIを採用しており、主な標準機能としてレプリケーション、クライアントとの同期、MapReduce(マップリデュース)、全文検索機能、地理情報関数などを搭載している。またマルチテナントおよび個別のクラスターを提供している。
さらにCloudantの面白い特徴として野間氏が指摘したのは、IBM SoftLayerだけではなくRackSpace、Microsoft Azure、AWSの上でも稼働が可能なことだ。つまり「自分たちでクラウド事業者を選ぶことができる」というのである。そしてCloudantはこれらの機能をDBaaSという形で提供するのである。ドキュメント・データベースのメリットに、DBaaSのメリットが加わるというわけだ。
通常自社でデータベースを構築する場合、システム設計はもちろん、管理タスクに加え、ハードウェア、ソフトウェアの各項目に関する不確定要素やオーバーヘッド、リスクがある。ホスティングにしてもハードウェアに関する不確定要素やオーバーヘッド、リスクが削減されるのみで、その他は残る。一方DBaaSの場合、ユーザーが担当するのはシステム設計のみとなり、その他の不確定要素やオーバーヘッド、リスクはない。
とはいえ「DBaaSはリレーショナル・データベースを中心に普及はしつつあるものの、特にNoSQLの世界ではSLAまできっちり提供できているものはそんなにない」と野間氏は指摘する。不安に感じている人もいるだろう。しかしながらCloudantなら心配は無用だという。それは「サービス内容をきちんと保証した上で提供していく」と明言しているからだ。つまりCloudantなら、不確定要素の排除、リスクの最小化、生産性の最大化というクラウドサービスならではのメリットをすべて享受できるというのである。
大規模トランザクションに対応する可用性とスケーラビリティ
例えば可用性とスケーラビリティについて。CloudantではCloudantクラスター技術でそれを実現している。ノード追加によるスケールアウトが容易で、データはノードに対し自動的にシャーディングされる。またノードはマスター-マスター型で構成され、たとえノードに障害が起こってもリード/ライトが可能になっているのだ。さらにデータセンター間のレプリケーション機能も用意、さらにはロードバランシングを行い近くの地域のクラスターに接続するなどして、可用性を担保しているのだ。
「いちばん大きなお客さまの場合、200ノードぐらい使っている。トランザクション的にも何万トランザクションにも上っているが、可用性やスケーラビリティに問題は無い。Cloudantは、このようなドキュメント・データをトランザクショナルに利用しているお客さまに使ってもらいたいソリューションだ」と野間氏は言いきる。
Cloudantの優れた点はこれだけではない。モバイルアプリケーションとも連携も見逃せないポイントだ。Cloudantではモバイルにローカル・ストレージを設置し、そのデータをサーバと同期できるようになっている。データの同期プロセスとローカル・ストレージの管理をサポートするためのネイティブライブラリーも提供されており、Cloudantからデータのプッシュとプルを行うことで、複数デバイス間のデータを同期できるようになっているのだ。
もちろん恒常的な可用性についても考慮されている。ネットワークに接続できない場合は、ローカル・ストレージからの読み取り処理と書き込み処理を提供し、接続が復旧するとサーバにデータが同期される仕組みとなっている。
また手軽に始められるのもCloudantのいいところである。「Cloudant社のホームページにアクセスし、サインアップするだけ」と野間氏は言う。またIBMが提供するBluemixという開発環境からもCloudantを試すことができるようになっている。サービスにサインアップするだけで、50ギガバイトものドキュメント・データベースが無料で即、使えるようになるのである。
ここで野間氏はデモを実施。データのレプリケーションや可用性の構築について、いかに簡単にできるかを披露。特にまだドキュメント・データベースを触ったことのない人に、ぜひ試してほしいという。「For Developers」をクリックすると、データベースのサンプルなど、開発者が勉強するための素材が提供されているからだ。
さらに野間氏は、蓄積されたデータをSQLで分析できるような機能が付いていることも紹介。「Warehouse」というボタンをクリックすると、JSONデータがクラウド上のリレーショナルデータベースの表に自動変換、コピーされるのである。この機能を使えば、簡単にSQLでデータ分析ができる環境を用意できるようになる、と野間氏は説明する。
「NoSQLデータベースは今、非常に盛り上がりを見せている。これから触ってみたいなという人は、無償で始められるので、この機会にぜひチャレンジしてほしい。そしてCloudantのさまざまな機能を試すなどして、遊んでほしい」
最後にこう語り、野間氏はセッションを締めた。