Amazon DynamoDBは、NoSQLデータベースのマネージドサービスだ。ユーザーは容量を管理せずとも無制限にデータを書き込め、データは複製されて3カ所に配置される。

 さらに、設定によって柔軟に性能を向上できる。Amazon.comの小売りサイトもDynamoDBを利用して構築されており、ブラックフライデーやサイバーマンデーなどの繁忙期のリクエストに対処している。

 本稿では、まずNoSQLデータベース全般の分類と特徴、DynamoDBの位置付けを確認。そのうえで機能と性能を検証する。

データベースの特性と分類

 NoSQLは「Not only SQL」の略称で、リレーショナルデータベース(RDB)以外のデータベース管理システムを指す。従来は、システム構築の際、データベースの要件を考えず、一律にRDBを採用することが多かった。RDBは汎用性があり、比較的簡単にある程度の性能で安定した環境を構築できる。そのため、用途に応じてデータベースを使い分けるより、RDBのみを利用したほうが効率的だった。

 しかし最近では、NoSQLデータベースソフトのラインナップが充実し、クラウドサービスも増えた。RDBだけでなく、NoSQLも選択肢に入れないと、最適なアーキテクチャーを構築できない。そのためNoSQLデータベースの特徴を知り、活用のポイントを理解しよう。

 RDBとNoSQLを合わせた、データベース管理システム全体は、「行指向型」「列指向型」「キーバリューストアー(KVS)型」「ドキュメント指向型」「グラフ型」などデータモデルのタイプに分類できる(表1)。

表1 データベースの主なタイプと特徴
表1 データベースの主なタイプと特徴
[画像のクリックで拡大表示]

 行指向型は、お馴染みのRDBだ。トランザクション管理の機能によって、データの一貫性を保証する。

 列指向型は、行ではなく列指定での範囲検索・集計が高速で、ビッグデータの分析基盤に利用される。半面、追加・更新・削除を含むトランザクション処理に時間が掛かる。

 KVS型は、検索のためのキーとデータ(バリュー)が1対1でひも付いている。単純さゆえ高速なアクセスが可能で、セッションデータやインデックスなどのデータストアーとして利用されることが多い。

 ドキュメント指向型は、1件分のデータを「ドキュメント」と呼び、個々のデータの構造は自由だ。あらかじめデータ構造を決める必要がなく、「スキーマレス」と呼ばれる。データ構造の柔軟性が高く、ドキュメント内の属性(テーブルのカラムに相当する要素)の検索機能が比較的充実しているので、ネットサービスのような変化が激しいシステムでの利用が多い。

 これら4タイプのデータベースの特性を理解するうえで、「CAP定理」を知っておきたい。これは、コンピュータサイエンティストのエリック・ブリュワー氏が提唱した理論。分散コンピュータシステムのマシン間の情報複製には、一貫性、可用性、ネットワーク分断耐性という三つの特性があり、そのうち二つまでしか同時に保証できないという内容だ。

C:Consistency(一貫性)
A:Availability(可用性)
P:Tolerance to network partitions
(ネットワーク分断耐性)

 のちにブリュワー氏は、CAP定理は単純化しすぎでミスリーディングだった、との見解を示したが、データベースの特性を理解するうえで役立つ。

 実際、一般的なデータベースはCAPのうち二つもしくは一つの特性を備える。例えば、行指向型のRDBは一貫性(C)と可用性(A)に特化。列指向型は一貫性(C)とネットワーク分断耐性(P)、KVS型およびドキュメント型は可用性(A)とネットワーク分断耐性(P)に特化しているとされる。