RunKeeperと人気サッカーゲームを支えているのは
以前、「NoSQLとは~データベースの新しい潮流」と題して、リレーショナルデータベースではない新しいタイプのデータベースをご紹介しました。
今回は、この続きとして、どのような分野でNoSQLが使われているのかについて、少しご紹介したいと思います。
前回の記事で書いたのですが、NoSQLは従来型のリレーショナルデータベース(RDB)とは異なる特性、特長を持っています。スキーマを持たない構造で、管理したいデータ項目が増えたときでも柔軟に追加することができるため、Webアプリケーションやモバイルアプリケーションのような、頻繁にデータ項目やシステム設計が変更されるようなアプリケーションに向いているのです。
では、具体的にはどのような用途で使われているのでしょうか。
イメージをつかみやすいケースとして、健康管理アプリ、ゲームアプリについてご紹介したいと思います。
RunKeeperというアプリをご存知でしょうか。
ランニングやウォーキングの記録のほか、ウェアラブルデバイスと連携して心拍数の記録などが行え、ユーザーの健康管理をサポートするアプリです。全世界で3000万人がダウンロードしているということですので、かなりの人気アプリといえるのではないでしょうか。皆さん、もしくは皆さんの周りでも使っている方がいるかもしれませんね。
このアプリはその特性上、非常に多くのユーザーからの同時アクセスが発生します。従来はオープンソースのRDBであるPostgreSQLを採用していましたが、アクセスが多くなると生成されるデータベースの容量が大きくなり、データベース層のスケールアップと管理が困難になっていきました。パフォーマンスのボトルネックがデータベースにあるという状況になったため、根本的にデータベースのあり方を見直すこととなり、その際、NoSQLデータベースを採用することにしたのです。
ゲームアプリは、アメリカのHothead Games社での事例です。この会社ではサッカーゲームをリリースしてすぐに「注目アプリ」として紹介され、発売から2 日後にはiPhone App Store のスポーツ・カテゴリーで1 位になりました。この結果として、多数の新規ユーザーがこのアプリを利用する状況になりました。表現としては殺到する、という表現の方がふさわしいかもしれません。多くのユーザーのアクセスによってシステムの負荷が高まり、データベースがクラッシュしてしまったのです。そういった状態になったため新しいデータベースを探すこととなり、NoSQLデータベースにたどり着きました。わずか数日後、NoSQLデータベースに移して運用を開始し、ユーザーにとってストレスを感じさせないレスポンスを保ちながら、その後もシステムを拡張させていったのです。はじめは6ノードで運用を開始しましたが、同種のゲームの提供を進める中で、わずか1年足らずで200ノードにまで増えていきましたが、レスポンス低下のような問題は生じませんでした。
2つの事例とも、はじめに触れたNoSQLのメリットである柔軟性が生かされているのは間違いないのですが、それ以外に、データ量が時に爆発的に増えていったことに対応できたというのが特筆すべきことです。すぐにデータを拡張しなければならない状況に対応できたのは、2つのケースともに、クラウド型のサービスを利用していたためです。追加の必要性が出てきたときに、ベンダーに連絡すればほぼ即時に拡張することができます。また、こういった拡張時のみならず、日常の運用時においてもベンダーにてパフォーマンスをチェックする体制となるため、ユーザー企業側でデータベース管理者(DBA)を置く必要がなくなってくるというメリットもあります。
2つの事例はともに、IBMのクラウド型NoSQLデータベースサービスであるIBM Cloudantの利用です。
より詳しくは、それぞれ事例のブローシャー(パンフレット)でご紹介しています。
また、7月29日にIBM Cloudantをご紹介するWebセミナーを実施しますので、ご関心のある方はぜひご参加ください。
【Webセミナー】 ビッグデータ、モバイル、IoTに最適 NoSQLベースのDBaaS「IBM Cloudant」のご紹介