フォーム読み込み中
2022年7月5日掲載
現在、どの業界でもリレーショナルデータベースみたいに表形式構造ではなく、JSON形式のドキュメントやKey Values形式のデータを格納したり処理するシナリオが多岐にわたっています。これらを満たすために、NoSQLデータベースというスキーマを必要とせず大規模かつ非構造化データを柔軟に管理することが可能なデータベースがあります。今回、Alibaba Cloud、 Amazon Web Services、 Micosoft Azure、 Google Cloud ら主要クラウドサービスのそれぞれのNoSQLデータベースプロダクトサービスおよび仕様を比較してみます。
※クラウドサービスの並び順はアルファベット順となります。
※本記事は 2022 年 6 月時点の情報をもとにしております。実際のご利用にあたっては、必ず各社の最新情報をご確認ください。
RDB、リレーショナルデータベースは関係性を持ったテーブル構造、すなわちリレーショナルモデルです。一方、NoSQLデータベースとは何でしょうか?NoSQLはNot SQLまたはNot Only SQLの略称であり、リレーショナルモデルに依存しないデータベースの総称です。NoSQLデータベースはリレーショナルデータベースみたいにスキーマやテーブル構造を持つ必要がないです。その恩恵として、リレーショナルデータベースとして必要だった一貫性の一部を捨てつつ、パフォーマンスと可用性を重視することができます。そのため、NoSQLデータベースは大量の非構造化データを素早く保持しながら二次三次展開することができます。これによって、リレーショナルデータベースと比べてスループットや読み取り/書き込み速度が大幅に向上します。固定スキーマを必要とせず、冗長な操作なしでスケールアウトできるので、分散システムとしてサーバを複数台並べるかのように水平方向へスケールアウトできます。
NoSQLデータベースはパフォーマンスと柔軟性の点で大きなメリットをもたらします。ただし、NoSQLデータベースはリレーショナルデータベースの特性や文化が全く異なるので、どんなNoSQLデータベースがあるかを皆さまに知ってもらうべくお伝えしたいと思います。
NoSQLデータベースが登場した背景には、リレーショナルデータベースとして一貫性や整合性の制限を回避することから登場しました。リレーショナルデータベースはテーブル形式であるため、データはテーブル上の行と列それぞれへ厳密に格納する必要があります。こういったリレーショナルの一貫性を必要としないシナリオでは、NoSQLデータベースとしてドキュメント、Key-Valueのペア、グラフ構造など柔軟なデータモデルを利用することで、NoSQLデータベースがリレーショナルデータベースより優れた処理パフォーマンス、運用の利便化、コストパフォーマンスを発揮することができます。
リレーショナルデータベースは構造化データに対応しています。データテーブルには事前定義された構造(列の定義)があり、その構造はデータの形式と内容を記述します。これはデータモデリングにとって重要であり、事前定義された構造は信頼性と安定性をもたらしますが、これらのデータを変更することは困難です。一方、Nosqlデータベースは動的構造に基づいており、非構造化データを格納しています。 Nosqlデータベースは動的に構造化されているため、データ型と構造の変更に簡単に適応できます。
<比較図>
リレーショナルデータベースは構造化データとして、事前に定義したスキーマ構造(列の定義)により、利用可能なデータ型を分類してデータを格納します。スキーマは、データが構造化され、テーブル、列、行の中に格納されると、全体的に適用されます。そのため、データベース内にあるテーブルとテーブル間での表形式構造としての関係性を明確にすることができます。スキーマ構造があることで、データの一貫性と整合性が保証されます。
NoSQLデータベースは事前に定義したスキーマ構造を必要とせず、非構造化データに対して動的にデータ型と構造の変更が柔軟に行えます。動的スキーマとしてスキーマを適用する前にデータを保存することができます。
データベースの一般的な一貫性モデルとして、ACIDとBASEがあります。
ACIDは、データベースのトランザクションの信頼性を保証するものです。Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)の頭文字をとった略語で、データの信頼性と整合性を最大限に保つ設計思考です。リレーショナルデータベースは一貫性を重視しており、トランザクション処理が完了したらそのデータは一貫性を保つことができます。
BASEは、データベースの拡張性や可用性があり、データの様々な変化に対して柔軟に対応するものです。Basically Available(基本的にいつでも利用可能)、Soft-State(常に整合性を保っている必要はない)、Eventual Consistenc(結果的には整合性が保証される)の頭文字をとった略語で、NoSQLデータベースはBASE特性という概念に基づいて設計されています。NoSQLデータベースは複製されていくデータの一貫性よりも可用性を重視しつつ、トランザクションのコミットを素早く実行することができます。
NoSQLデータベースはBASEを前提としているので、リアルタイム処理などのシナリオに向いていることが多いです。例えばIoTや株価など、時間とともに増加していくデータ量に対し、柔軟に対応することができます。
NoSQLデータベースはBASEなので、トランザクションのサポートはあまり良くない・・・と思いますが、実際はそうではないです。
NoSQLデータベースは上記通りスキーマ構造を必要としない構造なので、シナリオによってはNoSQLデータベースでもデータは一貫性を保ちたい、、という場合があります。そのため、データベースの考え方としてCAP定理があります。CAP定理はConsistency(一貫性)、Availability(可用性)、Partition-tolerance(ネットワーク分断性)の頭文字をとった略語で、複数ノード間でデータを複製した場合、物理的な法則としてこの3要素を同時に保証することはできず、特性間のトレードオフが必要という考え方です。
※CAP定理のConsistency(一貫性)は、ACIDのConsistency(一貫性)と同じ意味です。
リレーショナルデータベースは冗長構成を踏まえてConsistency(一貫性)、Availability(可用性)を担保するように設計されています。NoSQLデータベースは例えばMongoDBやHBase、RedisはConsistency(一貫性)、Partition-tolerance(分断耐性)を持ち、CassandraやDynamoDBはAvailability(可用性)、Partition-tolerance(分断耐性)を前提に設計されています。MongoDBやHBase、Redisだと、整合性があり最新のデータを取得することができますが、トランザクション等データ更新中はロックがあり、データ取得ができない場合があります。CassandraやLedgerは単一障害なくいつでもデータを取得することができますが、ノード間でデータ同期中は古いデータを読み取ってしまう場合があります。(Cassandraにはconsistency levelという機能があり、これを活用することでConsistency(一貫性)を担保することはできます)
このように、データベースの性格上、トレードオフで何か犠牲となる要素があるため、シナリオや要件にあわせて適材適所なデータベースを選定出来ればと思います。
NoSQLデータベースはBASEとして分散システムを効率よく動作するよう設計されてるので、水平方向へスケーリングしやすいです。
分散システムは、常に高い可用性を提供できるという利点もあります。1つのレコードの複数のレプリカがサーバやラックにまたがって保持され、ハードウェアの故障がデータの可用性に影響することはありません。高価なハイエンドサーバではなく、コモディティハードウェアを使用して、高騰するデータ負荷を安全に管理することができます。
リレーショナルデータベースはデータを厳密に決められたルールでテーブル形式へ管理するため、パーティション化しない限りデータは1つのノードに集中する必要があります。そのため、データベースは通常サーバなどハードウェアのスペックを変更することでしかスケールアップできないです。
SQL | NoSQL | |
---|---|---|
インターフェース | SQL言語ベース | API、SDKベース、多くの同時ユーザ接続をサポート |
スキーマ構造 | 標準化されたスキーマ構造 | 柔軟なデータ型 |
クエリ | 一貫性がある | クエリ速度が非常に速い |
トランザクション | ロールバックが簡単 | 大量のデータの保存や処理に強い |
SQL | NoSQL | |
---|---|---|
インターフェース | 同時ユーザ接続に限りがあり | SQLに対応していない場合があり |
スキーマ構造 | データを厳密に設定する必要がある | データの正規化が困難 |
クエリ | データ量に比例してクエリ速度が遅くなる | 一貫性を犠牲にする場合があり |
トランザクション | 大量のデータの保存や処理に時間がかかる | トラフィックの量が制限されている |
柔軟な設計ながら大量のデータを素早く格納することができることや、拡張性が高いため、リレーショナルデータベースでは満たせない様々なユースケースを満たすことが出来ます。
NoSQLデータベースは、基本的に7種類のタイプがあります。
これらを説明するとともに、代表となるクラウドプロダクトサービスをそれぞれ紹介します。
Key-valueは、名前どおり、一意のKeyを渡すことで、Valueら値を取得するNoSQLデータベースです。Key-Value ストアと呼ばれることもあります。Valueら値はどのようなデータ構造、型でも問題ありません。(サービスによっては列の値サイズなど制約があります)データを複数のサーバに分散して格納というシャーティング技術とレプリケーションを組み合わせながら自動的に処理し、処理規模や負荷にあわせて自動的にスケールすることも特徴です。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
Key-Values | ||||
Table Store |
Key-Valuesデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※インスタンス代を持たず、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスの場合、サービスを利用できる最低料金となります。
読み込み処理 | 0.0006/10万/月~ | 0.285/100万/月~ | 0.285/100万/月~ | 0.005/10万/月~ | 0.06/10万/月~ |
書き込み処理 | 0.0012/10万/月~ | 1.4269/100万/月~ | 0.285/100万/月~ | 0.025/10万/月~ | 0.18/10万/月~ |
ストレージ | 0.00010/GB/月~ | 0.285/GB/月~ ※最初の25GBは無料 | 0.03/GB/月~ | 0.45/GB/月~ | 0.18/GB/月~ |
Memcachedは高性能分散メモリキャッシュベースのKey Value型NoSQLデータベースです。メモリ上で動作するキーバリュー型揮発性キャッシュとして動作します。MemcachedのKey Valueとしてバイナリ文字列(サイズは最大1MB)のみをサポートしていますが、データへのアクセス結果を一時的にキャッシュするため、次回同じデータのアクセスがあった場合、メモリから即時返却されます。マルチスレッド構成なので、スケーリングすることができることや、大きなデータセットほど複数コアからデータを素早く返却することができます。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
Memcached |
Memcachedデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヵ月当たりの料金です
Azure | ||||
---|---|---|---|---|
PAYG | 0.037/Hour~ | 0.025/Hour~ | - | 0.0696/Hour~ |
Subscription | 17.95/Month~ | 8.03/Month~ | - | 50.11/Month~ |
RedisはMemcachedと同じインメモリベースのKey Value型NoSQLデータベースです。Redisはコンピュータのメインメモリ上にKey Value Storeを構築し、外部からのデータ保存/読み出しを行います。RedisのKey Valueとして、Keyはバイナリ文字列、ValuesはHash型が使えるためどんなオブジェクトにも対応しています。key・valueのサイズは最大で512MBと、大きいデータを扱えることも特徴です。Redisはシングルスレッド構成であり、MasterNode/SlaveNodeの組み合わせなので障害時でも素早くリカバリーできます。
https://redis.com/redis-enterprise/data-structures/
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
Redis |
Redisデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヵ月当たりの料金です。
PAYG | 0.075/Hour~ | 0.025/Hour~ | 0.022/Hour~ | 0.065/GB/Hour~ |
Subscription | 35.9/Month~ | 8.03/Month~ | 16.06/Month~ | 47.45/GB/Month~ |
HBaseは、元々Apache HBaseというオープンソースから登場したサービスで、低レイテンシと高スループットのワークロードに最適なスケーラビリティを持つNoSQLデータベースです。数十億行、数千列の規模に拡張することが可能なテーブルを持ち、数TB、数PBのデータを格納できます。テーブルにデータを書き込むと、3台以上のサーバへ複製同期するため、障害が発生しても素早く復旧することができます。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
HBase |
HBase・Wide-column Storeデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヵ月当たりの料金です
※インスタンス代を持たず、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスの場合、サービスを利用できる最低料金となります。
Amazon Web Service | Microsoft | |||
---|---|---|---|---|
PAYG | 1.403/Hour~ | - | - | 0.85/Hour~ |
Subscription | 475.26/Month~ | - | - | 620.53/Month~ |
Apache Cassandraというオープンソースから登場したサービスで、複数のデータセンターを跨って連携しながら展開する分散型ワイドカラムストア型NoSQLデータベースです。オンプレミス・クラウド・リージョンを跨いだ複数のデータセンターで大容量のデータを管理するために設計された分散アーキテクチャなので、パフォーマンスを犠牲にすることなく、高い可用性と優れた線形スケーラビリティを得ることができます。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
Cassandra |
Cassandra・Wide-column Storeデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヵ月当たりの料金です
※インスタンス代を持たず、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスの場合、サービスを利用できる最低料金となります。
Google Cloud | ||||
---|---|---|---|---|
PAYG | 1.403/Hour~ | 1.7312/Hour~ | - | |
Subscription | 475.26/Month~ | 1246.47/Month~ | - | |
読み込み処理 | 0.331/100万/月~ | - | ||
書き込み処理 | 1.6552/100万/月~ | - | ||
ストレージ | 0.34/GB/月~ | - |
グラフデータベースは、地形的なネットワーク構造に基づいたNoSQLデータベースです。グラフは、ノード、エッジ、プロパティを用いてデータセットを表現する数学のグラフ理論に由来します。
グラフデータベースは、データとデータの関係性がデータそのものと同等の重要性を持つため、複雑なデータ関係モデリングの構築が容易になるメリットがあります。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
グラフDB |
グラフDBデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヵ月当たりの料金です
※インスタンス代を持たず、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスの場合、サービスを利用できる最低料金となります。
Google Cloud | ||||
---|---|---|---|---|
PAYG | 0.14/Hour~ | 0.198/Hour~ | - | |
Subscription | 67.30/Month~ | 142.56/Hour~ | - | |
読み込み処理 |
| 0.285/100万/月~ | - | |
書き込み処理 |
| 0.285/100万/月~ | - | |
ストレージ |
| 0.03/GB/月 | - |
時系列データベースは時系列データ向けに最適化されたデータベースです。時系列データとは、時間の経過とともに追跡、監視、ダウンサンプリング、集計できる値やイベントのことです。例えば、サーバメトリクス、アプリケーションパフォーマンス監視、ネットワークデータ、センサーデータ、イベント、クリック、市場での取引、など時間ごとに記録するデータが対象です。時系列データベースはタイムスタンプを持つメトリクスやイベントを素早く扱うことができるので、時間の経過に伴うデータの変化をリアルタイムで測定したり、長期間データのグループ集計をすばやく実行することができます。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
時系列DB |
時系列DBデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダーごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヶ月当たりの料金です
※インスタンス代を持たず、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスの場合、サービスを利用できる最低料金となります。
Google Cloud | ||||
---|---|---|---|---|
PAYG | 1.462/Hour~ | - | ||
Subscription | 528.82/Month~ | - | ||
読み込み処理 | 0.01USD /1 GB~ | 0.2USD /GB~ | - | |
書き込み処理 | 0.50USD/100万件~ | 29.419USD/CU~ | - | |
ストレージ | 0.036/GB/時間~ | 0.04USD/1MBメタ データ~ | - |
ドキュメントデータベースは、JSON、BSON、XML、またはその他の形式を使用して、部分的に構造化されたデータをドキュメントに格納するNoSQLデータベースです。RDBは列と行で編成しますが、ドキュメントDBはJSONのようにネストされた半構造体データに対応しつつデータに焦点を当てます。そのため、データを柔軟に扱えるだけでなく、クエリを通じてネストされたデータを素早く取り出すことが可能です。基本的なKey-Valueストアとは異なり、ユーザはレコード全体を取得する必要はなく、ドキュメントの関連部分のみを取得する必要があります。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
MongoDB |
MongoDBデータベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヵ月当たりの料金です
※インスタンス代を持たず、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスの場合、サービスを利用できる最低料金となります。
PAYG | 0.18/Hour~ | 0.2631/Hour~ | ||
Subscription | 129.6/Month~ | 189.432/Month~ | ||
読み込み処理 | 0.285/100万/月~ | 0.06/10 万/月 | ||
書き込み処理 | 0.285/100万/月~ | 0.18/10 万/月 | ||
ストレージ | 0.03/GB/月 | 0.18/GB/月 |
台帳データベースは、集中型管理システムでありながら不正操作の回避や改ざん防止機能を提供するNoSQLデータベースです。ブロックチェーンのテクノロジーを活かしたアーキテクチャです。一般的なデータベースは、ユーザがデータを追加、削除、変更といった一連のトランザクションを追跡します。一方、台帳データベースは、各トランザクションにデジタル署名のレイヤーが追加されるため、データの変更履歴を変更することができず、改ざんや削除をすることができなくなります。ネストされた半構造体データを扱いますが、使い慣れたSQLデータベースとして利用することができます。
Alibaba Cloud | Amazon Web Services | Microsoft Azure | Google Cloud | |
---|---|---|---|---|
台帳データベース |
台帳データベースそれぞれのプロダクトサービス料金を比較します。各サービスごとに最低料金で比較します。
※金額はUSD単位になります。
※Single構成(Single-zone展開)、HA構成(Multi-zone展開)、クラウドベンダごとのオプションもあるため、サービスを利用できる最低料金からの比較となります。
※PAYGはPay-as-you-goとして1時間当たりの料金、Subscriptionは1ヵ月当たりの料金です
※インスタンス代を持たず、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスの場合、サービスを利用できる最低料金となります。
Google Cloud | ||||
---|---|---|---|---|
PAYG | 無料 ※パブリックベータ版のみ | 無料 | - | |
Subscription | 無料 ※パブリックベータ版のみ | 無料 | - | |
読み込み処理 | 0.155USD/100万件~ | - | ||
書き込み処理 | 0.799USD/100万件~ | - | ||
ストレージ | 0.034/GB/月 | - |
各クラウドサービスごとのNoSQLデータベースのポートフォリオをまとめてみました。NoSQLデータベースには色々なプロダクトサービスラインナップがあり、大量のデータや非構造化データを処理する場面にて役に立ちます。また使用するデータ量が少ない場合は、読み取り処理量・書き込み処理量・ストレージ使用量といった、使った分だけ課金する料金プランを持つサービスを利用する選択肢もあると思います。ぜひお試しください。
Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。
ソフトバンクはAWS アドバンストティアサービスパートナーです
「はじめてのAWS導入」から大規模なサービス基盤や基幹システムの構築まで、お客さまのご要望にあわせて最適なAWS環境の導入を支援します。
Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。
Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。
条件に該当するページがございません