Key-Value データベースとは

key-value データベースの特徴

key-value データベースは、非リレーショナルデータベースの一種で、キーと値によるシンプルな方法を使用してデータを格納します。key-value データベースは、データを、キーと値のペアのコレクションとして格納します。ここでキーは、一意の識別子として機能します。キーと値のどちらも、単純なオブジェクトから複雑な複合オブジェクトまで、何であってもかまいません。key-value データベースは高度なパーティション化に対応しており、他のタイプのデータベースでは達成できない大規模な水平スケーリングが可能です。 例えば Amazon DynamoDB は、既存のパーティションがキャパシティーまでいっぱいになり、より多くのストレージ領域が必要とされる場合、テーブルに追加のパーティションを割り当てます。

次の図は、DynamoDB にキーと値のペアとして格納されたデータの例を示しています。

DynamoDB にキーと値のペアとして格納されたデータの例を示す図

ユースケース

セッションストア

ウェブアプリケーションのようなセッション指向のアプリケーションは、ユーザーがログインするとセッションを開始し、ユーザーがログアウトするかセッションがタイムアウトするまでアクティブな状態にあります。この期間中、アプリケーションはセッション関連のすべてのデータを、メインメモリ内またはデータベース内に格納します。セッションデータには、ユーザープロファイル情報、メッセージ、パーソナライズされたデータやテーマ、推奨事項、ターゲット型のプロモーション、割引などが含まれている可能性があります。ユーザーセッションはそれぞれ、一意の識別子を持ちます。プライマリキー以外の何かによってセッションデータのクエリが行われることはないため、セッションデータには、高速なキーと値のストアが適しています。一般に、key-value データベースは、リレーショナルデータベースよりもページあたりのオーバーヘッドが小さくなります。

ショッピングカート

ホリデーショッピングシーズン中には、e コマースウェブサイトが秒の単位で 10 億件単位の注文を受けることがあります。key-value データベースは、分散された処理とストレージを通して、数百万人の同時ユーザーにサービスを提供するのと同時に、大量のデータと、極めて量の多い状態の変化のスケーリングを処理することができます。key-value データベースには、ストレージノードの損失に対処することができる冗長性も組み込まれています。

人気のある key-value データベース

Amazon DynamoDB

Amazon DynamoDB は、どのような規模でも信頼性が高いパフォーマンスを提供する非リレーショナルデータベースです。これは、完全マネージド型、マルチリージョン、マルチマスターのデータベースで、レイテンシーを 10 ミリ秒未満に維持でき、組み込みのセキュリティ、バックアップと復元、インメモリキャッシュを備えています。Amazon DynamoDB では、1 つの項目はプライマリキーまたは複合キーと、任意の数の属性で構成されます。個々の項目に関連付けられる属性の数に明示的な制限はありませんが、すべての属性名と属性値を含む 1 つの項目の合計サイズは、400 KB を超えてはいけません。 テーブルは、データ項目のコレクションです。ことはちょうど、リレーショナルデータベース内のテーブルが行のコレクションであるのと同じです。各テーブルのデータ項目の数に制限はありません。

このステップごとに説明しているチュートリアルを使うと、10 分で DynamoDB を起動して実行できます。DynamoDB について詳しく学び、すぐにでも使用を開始してください。

Amazon DynamoDB の使用開始

Apache Cassandra

Apache Cassandra は広く使用されている、パフォーマンスの高い非リレーショナルデータベースです。現在オンプレミスで Cassandra を維持管理している AWS のお客様は、Cassandra を Amazon EC2 で実行する場合のスケーラビリティ、信頼性、セキュリティ、経済的メリットを活用したいと思われるかも知れません。

EC2 と Amazon Elastic Block Store (Amazon EBS) は、セキュアでサイズの再変更が可能なコンピューティング性能とストレージを、AWS クラウドで提供しています。組み合わせると、Cassandra をデプロイし、実際の要件に合わせてキャパシティーをスケールすることができます。考えられるデプロイトポロジーの数を考慮すると、実際のユースケースにふさわしい最適な戦略を選択することには、それなりの価値があります。Amazon EC2 で Apache Cassandra を実行する場合のベストプラクティスを利用して、AWS クラウドに Apache Cassandra をデプロイします。

DataStax Enterprise (DSE) は、Apache Cassandra ベースの、クラウドアプリケーション向けの常時稼働型データプラットフォームです。DSE は、単一の障害点を持たず、複数のノードにわたってビッグデータのワークロードを処理するために設計されています。DSE は、同種のノードにわたるピアツーピア型の分散システムを用いることで障害の問題に対処しています。データは、クラスター内のすべてのノードにわたって分散されます。DSE は、インテリジェントで魅力的なクラウドアプリケーションを作成するお客様の能力を増進するために設計された、高度な機能を備えています。DSE の各ノード内には、強力なインデックス作成、検索、分析、グラフの機能が統合されています。これらの機能は、Cassandra と、Apache Solr、Apache Spark、DSE Graph を組み合わせることで提供されています。いったんデータを記述すれば、さまざまなワークロードやアクセスパターンを使用して、それらのデータすべてに単一のまとまりのあるソリューションからアクセスすることができます。 

AWS DataStax Enterprise クイックスタート (PDF 形式でも入手可能) を利用して、AWS クラウド内に DSE クラスターをデプロイしてください。