Azure Cosmos DBは、「Azure DocumentDB」を進化させたグローバルな分散型マルチモデルデータベースです。
マルチモデルデータベースでは、複数のデータモデルを管理できます。管理可能なデータモデルとしてテキストのほか、JSON(JavaScript Object Notation)フォーマット、マークアップ言語のXML、グラフ(ノード、リレーション、プロパティによる関係性の値)のほか、PDFや静止画像および動画などのバイナリデータがあります。
AIやIoTによるデジタルトランスフォーメーションが進展し、ビッグデータを格納したデータベースの効率的な活用が求められるようになりました。また、世界規模で事業を展開する大企業では、各地域の分散したデータベースの統合と低遅延の実現が、ビジネスのスピードを左右する時代です。Azure Cosmos DBは、ビッグデータを活用する大企業に向けて、分散型マルチモデルデータベースによる効率的なソリューションを提供します。
ここでは、Azure Cosmos DBの独自性を踏まえて、登場の背景と概要、メリットに焦点を当てて解説します。
Azure Cosmos DBの概要
まずAzure Cosmos DBの登場した背景と目的、特長の面から概要をまとめます。
Azure Cosmos DBの原点「Project Florence」とは
Azure Cosmos DBは、Microsoftが2010年からスタートさせた「Project Florence」という社内プロジェクトを起点とします。
このプロジェクトでは、IoTを用いて植物と人間のインターフェースの研究に取り組みました。センサーを搭載したカプセルの中に植物を入れて、葉や根、土の状態を解析し、人間の言葉に翻訳。テキストを自然言語処理によって光の周波数に変換して、植物が反応できる青と赤の光線で対話する研究です。
夢のある研究ですが、この研究を世界規模で展開するために「グローバルで低遅延のデータアクセスを実現する」開発環境の実現を目的として掲げていました。当時の分散型データベースのほとんどは、オンプレミスで構築された従来のデータベースをクラウドに移行したサービスであり、クラウドネイティブなソリューションがなかったからです。
プロジェクトの成果は、クラウドネイティブで低遅延のDBaaS(DataBase as a Service)である「Azure DocumentDB」として実を結び、2014年に提供を開始します。
Azure DocumentDB はJSONやXMLによる構造のドキュメント単位でデータ格納する、NoSQLデータベースのサービスです。グローバルかつ低遅延のデータベースを実現しつつ、開発者には馴染みのあるSQL言語も利用できます。Skype、Xbox Live、Azure PortalなどのMicrosoft製品ユーザーは、テキスト以外のデータを利用するニーズがありました。したがって、多様な種類と膨大な量のデータを高速処理できるAzure DocumentDBは成功しました。
この成功を踏まえて、さらに改良を加えたソリューションがAzure Cosmos DBです。2017年に開発者向けイベントの「Build 2017」で米国Microsoftからリリースされました。
Azure Cosmos DBで実現したマルチモデル、マルチAPI
2017年の時点でAzure DocumentDBからAzure Cosmos DBに進化した点は、2つあります。
第1として、ドキュメント以外にキーバリュー、列指向、グラフなどのデータモデルが追加され「マルチモデル」化したことです。既にAzure DocumentDBで実現したマルチモデルデータベースの延長線上、扱うデータの拡張に位置づけられます。
第2として、それぞれのデータモデルに異なるAPIを用意した「マルチAPI」によって、マルチモデルのデータに自然なアクセスができるようになりました。APIにはドキュメント型の「SQL API」や「MongoDB API」のほか、キーバリュー型の「Table API」、グラフ型の「Gremlin API」、列指向型の「Cassandra API」があります。
Azure Cosmos DBが登場した当時、一般的なマルチモデルデータベースは、クエリ(命令文)を処理するときにエミュレーションを行っていました。Azure Cosmos DBは、データモデルに対応するそれぞれのAPIを格納する場所として、パーシステントレイヤー(永続的なレイヤー)を利用します。使用する言語やデータモデルが異なっていても、対応するAPIに同時アクセスができるため、構造のスリム化と低遅延を実現しました。
Azure Cosmos DB、3つのメリット
Azure DocumentDBの登場からAzure Cosmos DBに進化した背景と特長の面から解説しました。続いて活用と運用の面から3つのメリットを挙げます。
メリット1:グローバル規模で、ハイレベルの応答性と可用性をSLAで提供
世界中にオフィスがある大企業では、それぞれのリージョン(地域)をネットワークでつないで統合し、低遅延の応答性と長期的にデータベースのパフォーマンスを維持する高可用性が求められます。
Azure Cosmos DBは世界中のリージョンにデータレプリケーションを行います。したがって、世界中で最も近い場所のレプリカ(複製)に接続できます。理論上は地球上のすべてのリージョンに分散可能です。リージョンは「Turn-key global distribution」によって、ボタンをクリックするだけの簡単な操作で追加や削除などの処理ができます。データベースを停止させることなく、スループットを維持したままのリージョン管理を実現します。
Azure Cosmos DBの待機時間は、インデックス付きの読み取りと書き込みの両方ともに世界規模で10ミリ秒未満の待機時間を99.999%で保証。データの転送量を維持し、超高速のクエリを処理することにより、アプリケーションの応答性を最大限に引き出します。データベースの活用には、常時接続が重要条件となりますが、世界中のAzureのリージョンに分散可能であることから、接続できない状態を回避します。
応答性、可用性、スループットなどのサービス全般は、すべてSLA(Service Level Agreement)で守られています。応答性における待機時間や接続エラー、可用性における読み込みエラー、スループットのエラーなどSLAを満していない場合、該当した期間の稼働率によって返金される厳格な保証です。
メリット2:変化に柔軟に対応できるエラスティックコンピューティングを実現
変化の激しい時代において、トラフィックの変化によって処理能力(スループット)やストレージの容量を設定し直していると、それだけでビジネスチャンスを逃しかねません。特に物理的なオンプレミスのサーバーやデータベースを利用している場合は、設備投資と増設のための人件費がかさみます。
しかし、Azure Cosmos DBはトラフィックの増減に合わせてデータベースを柔軟に伸縮させ、エラスティックコンピューティングを実現します。
エラスティックコンピューティングは、データベースやストレージの容量、ネットワークのトラフィック、メモリの容量や処理速度など、ピーク時の対応を心配しなくても、柔軟かつ急速に変化させる機能を呼びます。
メリット3:TCO削減と開発期間の短縮、オンプレミスからリフト&シフトも容易
経営的な視座では、TCO削減と開発期間の短縮は、IT投資における重要なポイントです。
Azure Cosmos DBはマルチスターを構成することによって、グローバル規模のデータベースを扱うときに、地理的な近接性に基づいて迅速な同期処理を行います。世界中の拠点でビジネスを展開する場合、扱うデータベースの構成が複雑になり、実装が困難になりかねません。しかし、Azure Cosmos DBはマルチスターによって、点在した世界中の拠点のデータベースを連携し、同期させることが可能です。Azure DocumentDBを導入した多くのユーザーからの要望を踏まえて追加されました。
Microsoftはオンプレミスのデータベースをクラウドに「リフト&シフト」する環境の整備にも注力しています。多くの開発者が利用する主要なNoSQLデータベースと互換性を備えたAPIで、安価かつ短期間でクラウドベースのアプリケーションを稼働することが可能です。データベース管理の自動化によって、わざわざ手動でスクリプトを作成する必要がなくなり、TCOを削減します。
Azure Cosmos DBは無償版が提供されているため、まず無償版をトライアルで利用し、その後、さまざまなライセンス体系からマッチしたクラウドの仕様を選択可能です。また、オンプレミスやPCでアプリケーション開発やテストを行う「Azure Cosmos Emulator」も提供しています。エミュレータ上の動作が問題なければ、クラウド上のAzureアカウントに切り替えることができるため、リフト&シフトがスムーズです。
まとめ
トヨタ自動車のような自動車メーカーにおけるIoT活用のほかECサイトなどにおいて、Azure Cosmos DBはビジネスの信頼性と迅速性の基盤を築いてきました。リモートワークの需要が高まる現在、分散型マルチモデルデータベースの活用は、大企業のグローバル戦略を支える強力なソリューションのひとつです。