CodeZine(コードジン)

特集ページ一覧

エンタープライズ分野で使えるNoSQLのDatabase as a Service「IBM Cloudant」

高い可用性とスケーラビリティでモバイル/Webアプリに最適

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/07/14 14:05

 企業内のあらゆるデータや、IoT、SNSから集まってくるデータを積極活用する企業が急増するなど、真の意味でのビッグデータ活用が始まっています。IBMが提供するNoSQLデータベース「Cloudant」は、まさにこのようなシーンに最適なソリューションです。Cloudantはクラウド上にマネージドサービスとして提供されるDatabase as a Service(以下、DBaaS)なので、データベースの設計・構築に関する専門知識がなくても、手軽にNoSQLデータベースを使い始められます。本稿では、日本アイ・ビー・エム アナリティクス事業部 インフォメーション・アーキテクトの野間愛一郎氏に、Cloudantがどのようなデータベースで、どのような機能を持ち、どういった用途に適しているのかについてお話しいただきました。

ダウンロードできます:IBM Cloudantの機能・構成・性能紹介や、実業務での活用事例

 IBM Cloudantの機能・構成・性能や、実業務での活用事例(RunKeeper社)を解説するホワイトペーパー(PDF形式)を以下で入手できます。NoSQLに興味のある方、JSONデータの管理にお悩みの方、導入の効果を知りたい方などはぜひご覧ください。

 

IBM Cloudantの構成・機能・性能などの解説
RunKeeper社の事例紹介

 

NoSQLのDBaaS「Cloudant」はなぜ必要なのか

ビッグデータ処理に適したNoSQLデータベース

 フルテキスト、画像や動画、センサーデータ、ログ、地理情報など、企業が扱うデータは多種多様化すると同時に、そのデータ量は急速に増大しています。こうした「ビッグデータ」には、構造がシンプル、あるいはビジネス要件に応じて項目数やデータ長が変わるという特徴があり、「非構造化データ」と称されます。このようなデータの処理に、事前にテーブルの構造がきちんと定義され、テーブル間の関連性によるデータの照会や分析を得意とするリレーショナルデータベース(以下、RDB)を利用するのは、設計・開発の観点からもコストの観点からも、適切とはいえません。

 そこで注目を集めているのがNoSQLデータベースです。NoSQLは「Not only SQL」の略で、文字どおりSQLを使うRDB以外を指します。

 NoSQLデータベースには「スキーマレス」「構造がシンプル」「大量のデータを容易に扱える」「スケーラビリティが高い」といった特徴があります。

表:NoSQLデータベースの種類
種類 特徴 主な製品
キーバリュー型 データをキーと値のペアで格納する Redis、Riak、Amazon DynamoDB
ドキュメント型 ドキュメントとそこに紐付けた一意なIDによりデータを格納する MongoDB、CouchDB、Couchbase、Cloudant
カラム型(BigTable型) データテーブルをカラムに分割して格納する HBase、Cassandra
グラフ型 レコードが別のレコードへのリンクを持つ構造のデータを格納する Neo4j、InfiniteGraph

 IBMには、RDBについて長期間にわたる実績があります。NoSQLデータベース「Cloudant」は、それに加えてIoTに代表されるセンサーデータ、モバイルアプリやSNSのログなど、大量の非構造化データを分析して活用しようという要件の高まりに応じ、これらビッグデータを支える基盤として提供しています。

 

DBaaSだからアプリを早くリリースしたいというニーズに応えられる

 近年のクラウドの隆盛は、リードタイム(開発期間)を短縮し、ビジネスチャンスを迅速に活かして利益に転換したいという要望が後押ししていると見ることができます。

 IBMは、クラウドプラットフォームとして「SoftLayer」というIaaS(Infrastructure as a Service)を提供しており、データベースなどのミドルウェアはこのホスティングサービス上に構築することができました。

 CloudantはDBaaSとして、クラウド上でマネージドサービスを提供します。ホスティングサービスでは、ミドルウェアの導入、運用管理の設定などが必要ですが、Cloudantではユーザーはそういった作業を一切する必要がありません。すぐにデータベースを作成し、利用できます。ハードウェアおよびソフトウェアの導入・構成の手間が軽減された分、アプリ開発に注力し、開発期間の短縮化を図ることができるのです。

 従来のシステム開発では、ビジネス要件からデータのモデリングを行い、データベース設計を経てから、アプリ開発という流れが一般的でした。しかし、モバイルやWeb、IoTといった分野では、大量のデータが次々と流れ込んでくるため、これまでの開発工程ではアプリケーションのリリースまで時間がかかりすぎ、結果としていま注目したい旬のデータを集めることができず、ビジネスチャンスを逸することになるでしょう。初めにデータありき、すなわち「データドリブン、アプリケーションファースト」での開発に適したデータベース。それがCloudantです。

Cloudantの概要―ドキュメント型、RESTインターフェイスで利用可能

Cloudantはどういったデータベース?

 Cloudantは、オープンソースの「Apache CouchDB」をベースとし、IO制御、パフォーマンス、クラスター、トランザクション処理、モバイル連携、地理情報機能の拡張といった機能を強化したデータベースです。NoSQLの製品群ではドキュメント型に分類され、一意のIDとドキュメント(JSON)を紐付けてデータとして格納します。スキーマレスであり、ドキュメントとしてJSONデータを格納するため、センサーデータやログデータのデータストレージ、モバイルアプリやWebアプリなどのバックエンドデータサービスに適しています。

 

RESTインターフェイスによるシンプルな入出力

 Cloudantは、RESTインターフェイスを採用しており、GET /<database>/<doc_id>PUT /<database>/<doc_id>といったシンプルなインターフェイスでデータの読み書きを行います。

 また、リレーショナルデータベースやMongoDBからの移行を容易にするために、「Cloudant Query」というSQLライクなクエリー言語を用意しています。そのため、RDBからの移行もしやすくなっています。

MongoDBのクエリー言語
db.users.find(
    { age: { $gt: 25, $lte: 50 } }
)
Cloudantのクエリー言語
cloudant.com/users/_find' -d
'{"selector": {
    "age": {
        "$gt": 25,
        "$lte": 50
        }
    }}'

 

DBaaSとしてだけではなく、主要なクラウド上での利用が可能

 IBM Cloudantは、同サービスのWebサイトでユーザー名、パスワード、氏名、メールアドレスを入力してアカウントを作成するだけで、無償で利用を開始できます。

 サインイン後、[Add New Database]ボタンをクリックするだけで、データベースを作成可能です。

IBM Cloudantのサイトから利用開始
IBM Cloudantのサイトから利用開始

 

[Add New Database]ボタンでデータベースを作成

 

 また、IBMが提供しているPaaSのアプリ開発実行・環境「IBM Bluemix」から利用することもできます。

 さらに、Cloudantはクラウドに対してオープンです。IBM SoftLayer上でマネージドサービスとして利用できるだけでなく、Microsoft AzureAWS(アマゾン ウェブ サービス)Rackspaceといった環境を自由に指定し利用することができます。

 

ダウンロードできます:IBM Cloudantの機能・構成・性能紹介や、実業務での活用事例

 IBM Cloudantの機能・構成・性能や、実業務での活用事例(RunKeeper社)を解説するホワイトペーパー(PDF形式)を以下で入手できます。NoSQLに興味のある方、JSONデータの管理にお悩みの方、導入の効果を知りたい方などはぜひご覧ください。

 

IBM Cloudantの構成・機能・性能などの解説
RunKeeper社の事例紹介

多彩なアプリケーションの開発を可能にする便利な機能

JSONの分析やテキストの検索

 Cloudantでは、MapReduceを使った高速な分散処理の実現に加え、日本語に対応したテキスト検索機能も実装しています。

 

地理情報の照会・分析

 モバイル・IoTのアプリケーションでは個々の位置情報を利用したアプリケーションの開発が盛んです。Cloudantには地理情報関数が実装されており、距離・面積・空間を条件とした位置情報の照会や、最近接や予測経路などの分析などの処理を実行できます。

 米国のある損保会社では、Cloudantのこの機能を活用し、竜巻の発生時にタブレットで被害があった場所の地理情報を取得してサーバーに送り、サーバー上の気象情報と合わせて、どこにどれだけの被害があったかを地図上に表示するアプリケーションを提供しています。また、ロンドンで空いている駐車場を地図上に示すパーキングサービスアプリの事例もあります。

 

モバイルアプリケーションとの連携

 Cloudantでは、サーバー上のデータベースに加え、モバイル端末上のローカルデータベースを提供しています。サーバーと通信できない状況ではローカルデータベースにデータを読み書きし、通信が可能になったときにサーバー上のデータベースと同期をとることができます。

 RunKeeper社は、iOS/Android用フィットネスアプリを提供するスタートアップ企業です。このアプリは、ウォーキングやランニングといったユーザーの活動に関し、地図へのコース表示や、走行距離、消費カロリーなどの記録などを行います。情報はモバイル端末に保存され、適宜サーバーのデータベースに同期されます。

 同社では当初、アプリのバックエンドでRDBを利用していましたが、ユーザー数が増えるにつれ、パフォーマンスにボトルネックが発生したことから、Cloudantに移行しました。現在では3,000万人以上のユーザーが利用しています。Cloudantの便利な機能だけでなく、後述するスケーラビリティの高さがよくわかる事例といえるでしょう。

RunKeeper
RunKeeper

 

詳細はホワイトペーパーをご覧ください

 RunKeeper社の事例は、こちらのページから詳細を記したPDF文書をダウンロードできます。

 

RDBとの連携を実現するWarehousing機能

 NoSQLデータベースを利用しデータが蓄積されると、そのデータをSQLで参照したいというニーズが必ず出てきます。そのような場合も、Cloudantはボタン1つで自動的にSQLを使って参照可能な環境を準備できます。

 Cloudantでは、非構造化データを自動的に構造化データに変換し、クラウド型のデータウェアハウス「dashDB」と自動連携するWarehousing機能を利用することができます。Cloudantのコンソールから [Warehousing]-[Create a Warehouse]のメニューを選ぶだけで、「JSONデータの解析 → スキーマ定義 → 表の作成 → データのロード」が実行されます。

CloudantのWarehousing機能

 

 センサーデータやログの一部を抽出し、RDBで分析や集計を行いたいというニーズはあるものの、最初は大量にあるデータのどの部分を使ってどのような分析や集計を行えるかがわからない場合があります。また、RDBの導入にはコストも時間もかかります。そのため、まずは低コストで簡単に利用できるCloudantにデータを保存して、MapReduceを利用した分析・集計を実施し、より深い分析をRDBで実施する場合に、Warehousing機能によりすぐにRDBにデータを投入する、といった使い方が可能です。

【事例】Cloudantでデータを収集し、RDBで分析や集計を行う
【事例】Cloudantでデータを収集し、RDBで分析や集計を行う

 

 RDBとの連携を可能にするWarehousing機能は、CloudantとdashDBの連携によって実現される、他のNoSQLデータベースにはない独自の機能です。

 

運用の手間やコストの軽減を実現する機能

高いスケーラビリティにより、スモールスタート後、必要に応じてスケールアウト

 マネージドサービスの利点の1つは、データ容量やビジネス規模に合わせて柔軟に対応できるスケーラビリティです。トランザクションやデータ容量の増加に応じてノードを追加し、データベースをスケールアウトできます。ノードを追加するには、IBMのサポートに連絡するだけです。

 モバイルゲームアプリの開発を行うHothead Gamesでは、当初はCloudantで6ノードを使用していました。公開したゲームが話題を呼び、ユーザーが急増したため、6か月間で約200ノードまで拡張しています。

 

高可用性を確保するクラスター構成

 Cloudantではマスター-マスター型のクラスタリングを行います。すなわち、すべてのノードに同じデータが格納されるため、どこかのノードに障害が発生してもサービスを継続できます。

 データのレプリケーションも容易で、日本国内と海外など距離が離れたクラスターをレプリケーションすることも可能です。ネットワーク障害などでいずれかのデータベースに書き込みができなくても、RDBのようにすべてのデータベースへの書き込みが保留されるということはなく、データは書き込みが可能な他のノードに保管され、その後すべてのノード間で同期されます。バージョン管理機能(MVCC)により、データの書き込み順序は正しく保たれます。

 また、更新データは書き込み時にメモリではなくログに記録されます。そのため、書き込んだデータは障害時に失われることなく保証され、高い可用性を確保できます。

詳細はホワイトペーパーをご覧ください

 IBM Cloudantのこうした構成や機能、性能などについては、こちらのページから詳細を記したPDF文書をダウンロードできます。

DevOps、SRE-Opsを実現するビッグデータ、クラウド時代のデータベースインフラ

Cloudantはどのような用途に向いている?

 IBM Cloudantの利用は、短期間での開発を要件とするモバイルやWebサービス、ソーシャル、大量のセンサーデータやログを扱うIoTといった分野で増えています。たとえば、製品のキャンペーンサイトを短期間で立ち上げ、ユーザーのアクセスや属性の情報を収集して分析したいといったニーズに適しています。

【事例】キャンペーンサイトを短期間で立ち上げ、情報を収集して分析する
【事例】キャンペーンサイトを短期間で立ち上げ、情報を収集して分析する

 

 また、既存のデータベースを統合して利用する社内システムを短期間で開発するといったケースにも活用できます。

【事例】既存のデータを統合し、短期間で社内システムを開発する
【事例】既存のデータを統合し、短期間で社内システムを開発する

 

エンタープライズ用途に必須の機能を提供

 NoSQLデータベースは、モバイルアプリやゲーム、Webサービスのバックエンドデータベースといった限られた分野の利用にとどまらず、企業全体で使われるツールやビジネスプロセスの一端を担うエンタープライズシステムでの利用へと、その用途は広がりを見せ始めています。とはいえ、エンタープライズで利用する場合は、障害時にもデータが保証される信頼性、サービスが継続される可用性、スケーラビリティなどが重要視されます。IBM Cloudantは、これらの要件に加え、高いセキュリティ、24時間365日のサポートを提供しています。

 最近では、DevOpsに加え、SRE(Site Reliability Engineering)-Ops、すなわちサイトの継続性と運用を組み合わせてビジネス要件を満たすシステムを短期間で開発しようという考え方が注目を集めています。IBM Cloudantは、モバイル/Webアプリ開発に便利な機能に加え、高スケーラビリティ、高可用性など運用面で重視されるエンタープライズシステム向けの機能を備えています。これは、他のNoSQLデータベース、あるいはクラウド型データベースにはない、IBM Cloudantのユニークな特長といえるものです。DevOps、SRE-Opsでの開発を可能にするデータベースインフラといえるでしょう。ぜひ一度、お試しください。

ダウンロードできます:IBM Cloudantの機能・構成・性能紹介や、実業務での活用事例

 IBM Cloudantの機能・構成・性能や、実業務での活用事例(RunKeeper社)を解説するホワイトペーパー(PDF形式)を以下で入手できます。NoSQLに興味のある方、JSONデータの管理にお悩みの方、導入の効果を知りたい方などはぜひご覧ください。

 

IBM Cloudantの構成・機能・性能などの解説
Runkeeper社の事例紹介

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 坂井 直美(サカイ ナオミ)

    SE、通信教育講座の編集、IT系出版社の書籍編集を経てフリーランスへ。IT分野で原稿を書いたり編集したり翻訳したり。

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5