Amazon Quantum Ledger Database (QLDB) の特徴

Amazon Quantum Ledger Database (QLDB) を選ぶ理由

Amazon QLDB はフルマネージド型の台帳データベースで、信頼された中央機関が所有する、透過的でイミュータブルであり、暗号的に検証可能なトランザクションログを備えています。Amazon QLDB ではアプリケーションデータの全変更が追跡され、完全で検証可能な変更履歴が長期間維持されます。

イミュータブルで透過的

Amazon QLDB は、全データ変更の正確で順序があるエントリを格納する、組み込みのイミュータブルジャーナルを備えています。このジャーナルは追加専用です。これは、データはジャーナルに追加することはできますが、上書きや削除はできないことを意味します。これにより、格納された変更履歴は削除や変更が不可能であることが保証されます。台帳からデータを削除した場合でも、イミュータブルジャーナルから読み取ることで、そのデータの変更履歴に引き続きアクセスすることができます。

Amazon QLDB では、アプリケーションのデータの変更履歴全体にアクセスできます。履歴の変更のサマリー (ある車両の以前の所有者全員のリストなど) をクエリし、取引履歴に関連する具体的な詳細 (車両販売の日時と新しい所有者の名前など) もクエリすることができます。

暗号的に検証可能

Amazon QLDB は暗号を使用して変更履歴の簡潔なサマリーを作成します。この堅牢なサマリーは、一般にダイジェストと呼ばれており、暗号ハッシュ関数 (SHA-256) を使用して生成されます。ダイジェストは、データの変更履歴の証拠として機能し、データ変更の整合性をさかのぼって見直して検証することができます。このダイジェストを QLDB の API で使用して、任意の取引の整合性 (ある取引が発生したかどうかなど) を証明することができます。QLDB ではデータの履歴のクエリとデータの履歴へのアクセスも可能ですが、特定の取引に関連する証拠が必要なビジネスシナリオでは、検証可能性が役に立ちます。たとえば e コマース企業であれば、落札の証拠を示す必要がある場合があります。

サーバーレス

Amazon QLDB は、シームレスな自動スケーリングを提供し、アプリケーションの需要を満たします。容量のプロビジョニングや読み書きの限度の設定は不要です。また、QLDB はデータベースであるため、ブロックチェーンフレームワークよりも優れたパフォーマンスとスケールを備えています。QLDB は容易にスケールアップでき、一般的なブロックチェーンフレームワークの 2 倍から 3 倍ものトランザクションを実行できます。ブロックチェーンフレームワークは分散されるため、台帳への保存前にトランザクションを検証するうえでピアノードが必要とされます。これがパフォーマンスに影響を及ぼします。一方 QLDB でのトランザクションの実行は、他の AWS データベースと同様に簡単です。

管理するサーバーやプロビジョニングする容量がないため、Amazon QLDB を使い始めるのは簡単です。AWS マネジメントコンソール、AWS コマンドラインインターフェイス (CLI)、AWS CloudFormation テンプレートを使用するか、QLDB API に対してコールを作成すれば、新しい台帳を数分で作成できます。

Amazon QLDB では、台帳用の Amazon CloudWatch メトリクスを利用できます。QLDB を使用すると、読み書き IO の運用上の主要なメトリクスを確認できます。

使いやすい

Amazon QLDB では、オープンソースの新しい標準クエリ言語である PartiQL をサポートしています。 PartiQL は特定のデータソースから独立しながら、半構造化データ、ネストされたデータを含む QLDB のドキュメント指向のデータモデルへの SQL 互換アクセスをサポートしています。PartiQL では、使い慣れた SQL 演算子を使用してデータのクエリ、管理、更新を簡単に行えます。

データモデルでは、データベース内でデータを処理し、保存する方法が定義されます。Amazon QLDB はドキュメント指向のデータモデルを使用してデータを保存します。このモデルでは、構造化データと半構造化データを柔軟に保存することができます。QLDB のデータモデルは、ネストされたデータ構造もサポートしているため、アプリケーションを簡素化できます。

データベース操作の実行時に、Amazon QLDB はアトミック性、整合性、分離性、耐久性 (ACID) の各特性を提供します。また、QLDB トランザクションは最高レベルの隔離である完全なシリアル化を備えています。トランザクションの ACID 特性によって、正しいアプリケーションを記述することが容易になっています。たとえば銀行アプリケーションで、口座 A から口座 B に 100 ドルの送金が行われようとしている場合、操作は完全に整合性を持って実行される (この金額が口座 A の出金、口座 B の入金となる) か、まったく実行されないかのいずれかとなります。トランザクションが不完全かつ整合性のない形 (口座 B に入金されたが口座 A の出金になっていない場合や、その逆の場合) で実行されることは一切ありません。

Amazon QLDB のストリーミング機能は、Amazon Kinesis Data Streams によって、QLDB に保存されたデータに対する変更フローをほぼリアルタイムで提供します。QLDB のストリームデータは、「包括的かつ検証可能」なデータストレージという、QLDB の重要な特徴を常時保持します。これにより、新しいイベント (銀行の元帳アプリケーションの口座残高の変更など) にすばやく対応できます。また、AWS Lambda、Amazon Redshift、Amazon OpenSearch Service といったダウンストリームサービスと簡単に統合できます。