最近、Google が提供するNoSQLデータサービスの「(Google) Cloud Firestore (旧 Cloud Datastore)」に注目が集まっています。2013年5月のリリースから、約9年、ビッグデータの活用やデータ分析の領域などで、着実にクラウドコンピューティングの中心として利用が拡大しています。
本稿では、この Cloud Firestore についてその概要と特長をご紹介します。
Cloud Firestore とは?
Cloud Datastore は拡張性に非常に優れた、アプリケーション向けのNoSQLデータベースです。アプリケーションの負荷に合わせて自動的にリソースを拡張するため、可用性と耐久性にも優れ、「安定して稼働し続けるアプリケーション」を実現するためのデータベースを提供します。
NoSQLってなに?
まずは、データベースのカテゴリの一つである「NoSQL」について、定義や特性についてご紹介します。
現在広く利用されているデータベースを大きく分類すると、RDBMS(Relational Database Management System)とNoSQLの2つに分けることができます。RDBMSでは「SQL」と呼ばれるコンピューター言語を使用して、データの出し入れを行います。それに対してNoSQLは、「Not only SQL」の略であり、文字通りSQL言語を使用せずにデータの出し入れや整理ができるデータベースを意味します。
RDBMSと聞くと難しそうに感じますが、「リレーショナル」つまり関係性のあるデータを取り扱うため、表形式でデータを格納するデータベースシステムです。たとえば書籍には著者・初回出版日・版・カテゴリなどそれぞれ意味をもつ関連した情報で構成されます。RDBMSは、書籍別に付随した情報(関連性のあるデータ)を表形式で管理しています。
一方、NoSQLでは情報をExcelのように表形式で管理するのではなく、1つのキーに対して1つのデータだけを紐づけます。RDBMSが「1キー:複数の付随データ」という関係性で情報を管理しているのに対して、NoSQLは「1キー:1つの付随データ」という関係性で情報を管理していることになります。
NoSQLとRDBMSの違いをもう少し詳しく
NoSQLとRDBMSの違いについてもう少し踏み込んで解説してみましょう。
まず、RDBMSは複雑なデータ構造を持つデータを取り扱う事に向いています。しかし、その複雑さによりデータの肥大化が起きやすく、データベースの性能劣化を招きやすくなってしまいます。また、複雑化するほど高度なSQL構文を必要とし、まずはデータベース言語であるSQLを習得する必要もあります。
一方、NoSQLではSQLを使用しないので、一般的なプログラミング知識があれば操作できるものがほとんどです。たとえばあるNoSQLの場合はPHP(主にWebサイトで使用するプログラミング言語)だけで完結しますが、RDBMSではPHP+SQLを使用する必要があるので手間がかかります。これによりコード数で比較すると、NoSQLはRDBMSの1/2から1/3程度のコード数でデータベースを利用したアプリケーションを構築することができます。
プログラム自体の量は「RDBMSの方が少し多い」くらいなのですが、事前準備としてデータの入れ物を容易する必要があるのと、データをテーブルに入れる際にテーブルの仕様(スキーマ)を決めておく必要があります。そのため、RDBMSを利用したアプリケーションはNoSQLの2~3倍程度のコード数が必要になってしまいます。
ただし、RDBMSがNoSQLに劣っているというわけではありません。NoSQLは単純なデータを大量に管理するのに向いており、RDBMSで管理するような複雑なデータ管理には向きません。
つまり、NoSQLは昨今注目されているビッグデータの活用やデータ分析のためのデータベースと言った、1つ1つが単体で存在している大量データの管理に向いています。よく利用されているものとしては、システムのログデータ、アクセス解析から得られるデータ(アクセスログ)、監視や異常検知などに用いられる画像や動画等のバイナリデータなど、常にデータが生成され蓄積されていくタイプの情報などに用いられます。
改めて、 Cloud Firestore ってどんなサービス?
話を本題に戻します。前述のように、 Cloud Firestore はGoogle が提供するNoSQLデータベースであり、クラウドコンピューティングとして提供されているので、ユーザーは Cloud Firestore をブラウザベースで利用できます。データベースを構築するのにハードウェアを容易する必要はありませんし、ネットワークを整備する必要もありません。インターネット回線に繋がってさえいればいつでも利用することができます。
Cloud Firestore の特長は以下の通りです。
データをシンプルに統合できる
Cloud Firestore の RESTful インターフェースを使用することで、どのデプロイ先からでもデータに簡単にアクセスできます。App Engine と Compute Engine に拡張されたソリューションを構築し、統合ポイントを Cloud Firestore に置くことができます。
非常に優れたスケーラビリティ(拡張性)
プロビジョニングや負荷の予測を心配することなく、アプリケーションの構築に集中できます。Cloud Firestoreはデータに応じてシームレスかつ自動的にスケールするため、アプリケーションのトラフィックが増えても高いパフォーマンスが維持されます。
使いやすいクエリ言語
Cloud Firestore はスキーマレスなデータベースです。そのため、アプリケーションの発展に伴う基本データ構造の変更を考慮する必要はほぼありません。Cloud Firestore は、複数のプロパティを横断してデータを検索し、必要に応じて並べ替えることができる高度なクエリエンジンを提供します。
高機能な管理ダッシュボード
エンティティ統計の表示、データベースのクエリ、インデックスの表示、データのバックアップと復元を行うことができます。
複数のアクセス方法
データへのアクセスには、Google の JSON API、オープンソース クライアント、コミュニティで維持されている ORM(Objectify、NDB)を使用できます。
Cloud Firestore の料金
最後に、Cloud Firestore の料金をご紹介します。
※米国(マルチリージョン)の料金を掲載しております。
|
無料利用枠/1日あたり |
無料利用枠を超えた 場合の料金(単価) |
課金の単位 |
---|---|---|---|
データの保存 |
1GBストレージ |
$0.18 |
GB/月 |
ドキュメントの読み込み |
50,000 |
$0.06 |
/10万ドキュメント |
ドキュメントの書き込み |
20,000 |
$0.18 |
/10万ドキュメント |
ドキュメントの削除 |
20,000 |
$0.02 |
/10万ドキュメント |
ネットワーク帯域幅 |
下りのリージョン先により異なる |
下りのリージョン先により異なる |
GB/月 |
Cloud Firestore を利用すれば、大規模なNoSQLデータベースを瞬時に構築し、安定的に稼働するアプリケーションを実現します。無料利用枠もありますので、まずはお試しで利用してみてはいかがでしょうか?
また、電算システムでは、データを収集、統合、可視化する様々なプラットフォームサービスを提供しています。最適なデータプラットホームの構築に欠かせない、関連システムのインテグレーションからデータエンジニアによる環境構築、データサイエンティストによるデータ分析サポートなど、データに基づく企業の意思決定をご支援します。ぜひお気軽にご相談ください。
- カテゴリ:
- Google Cloud(GCP)
- キーワード:
- Google Cloud