コンテンツにスキップ

Amazon Quantum Ledger Database (QLDB)

1. サービス概要

Amazon Quantum Ledger Database (QLDB) は、AWS が提供するフルマネージドの台帳データベースサービスである。
このサービスは、データの変更履歴を記録する透明で不変の台帳を提供する。
中央管理された信頼できる機関を必要とせずに、データの完全性と変更履歴を保証する必要があるアプリケーションに最適である。
QLDB は、トランザクションの実行、監査、データの検証を効率的に行える。

主なユースケースとして、

  • サプライチェーン管理
  • 金融取引記録
  • 不動産登記
  • 投票システム
  • 人事管理

などが挙げられる。

2. 主な特徴と機能

2.1 不変の台帳

QLDB は、データの変更履歴を不変の形で記録する。
データが一度記録されると、削除や変更はできず、過去のデータの完全性を確保できる。

2.2 透明性

すべてのデータ変更は暗号署名され、監査可能なログとして記録される。
これにより、データ変更の履歴を追跡し、データの透明性を高めることができる。

2.3 トランザクション処理

QLDB は、ACID(Atomicity, Consistency, Isolation, Durability)プロパティを保証するトランザクション処理をサポートしている。
これにより、データの整合性を維持したまま、複雑なトランザクションを実行できる。

2.4 フルマネージドサービス

インフラのプロビジョニング、スケーリング、パッチ適用、バックアップなどの運用管理は AWS が自動で行う。
これにより、ユーザーはデータベースの運用管理に煩わされることなく、アプリケーション開発に集中できる。

2.5 スケーラビリティ

QLDB は、アプリケーションの需要に合わせて自動的にスケールアップできる。
これにより、大量のデータとトランザクションを効率的に処理できる。

2.6 PartiQL (SQL 互換クエリ言語)

QLDB は、SQL 互換のクエリ言語である PartiQL をサポートしている。
これにより、既存の SQL の知識を活かして、データに対するクエリを実行できる。

2.7 セキュリティ

QLDB は、データの暗号化、アクセス制御、ネットワーク分離などのセキュリティ機能を提供する。
IAM によるアクセス制御、転送中のデータ暗号化、保存中のデータ暗号化、VPC 内でのプライベート接続をサポートしている。

  • IAM 連携: AWS IAM を使用してアクセス制御と権限管理。
  • データ暗号化: 転送中および保存中のデータを暗号化。
  • VPC サポート: Amazon VPC 内でのプライベート接続。

2.8 統合性

QLDB は、AWS の他のサービス(Amazon S3, AWS Lambda, Amazon Kinesis など)と統合されており、様々なアプリケーションアーキテクチャに対応できる。
AWS Glue と連携してデータの ETL 処理を行うことができる。

3. アーキテクチャおよび技術要素

  1. アプリケーションは、QLDB にトランザクションを実行。
  2. QLDB は、トランザクションを不変の台帳に記録。
  3. データは複数のアベイラビリティーゾーンに分散して保存。
  4. データ変更は暗号署名され、監査可能なログとして記録。
  5. アプリケーションは、PartiQL を使用してデータにクエリを実行。

QLDB は、フルマネージドサービスとして提供され、高い可用性、スケーラビリティ、セキュリティを内包している。
データの整合性と変更履歴を保証する必要があるアプリケーションに最適である。

4. セキュリティと認証・認可

セキュリティは QLDB の重要な要素である:

  • IAM によるアクセス制御: AWS IAM を利用して、QLDB リソースへのアクセスを制御し、権限を管理。
  • データ暗号化: 転送中および保存中のデータを暗号化し、データの機密性を保護。
  • VPC サポート: Amazon VPC 内で QLDB を使用する場合、プライベート接続を確立。
  • 監査ログ: AWS CloudTrail を利用して、API 呼び出しやリソース変更を記録。

これにより、データの安全性とコンプライアンスを確保できる。

5. 料金形態

Amazon QLDB の料金は主に以下に基づく:

  • 書き込みリクエスト: 台帳への書き込みリクエスト数に応じた課金。
  • 読み取りリクエスト: 台帳からの読み取りリクエスト数に応じた課金。
  • ストレージ: 台帳に保存されたデータ量に応じた課金。
  • データ転送: データ転送量に応じた課金。

6. よくあるアーキテクチャ・設計パターン

一般的なパターンは以下の通り:

  • サプライチェーン管理: 商品の移動、所有権の変更などを記録し、サプライチェーンの透明性を確保。
  • 金融取引記録: 金融取引を記録し、監査、コンプライアンス、不正防止をサポート。
  • 不動産登記: 不動産の所有権変更、契約内容などを記録し、透明性と信頼性を向上。
  • 投票システム: 投票結果を記録し、不正を防止し、透明性を確保。
  • 人事管理: 従業員の入社、退社、給与変更などを記録し、監査ログとして利用。

7. 設定・デプロイ手順(ハンズオン例)

  1. AWS コンソールで QLDB 台帳を作成。
  2. テーブルを作成し、スキーマを定義。
  3. PartiQL を使用して、データを挿入、更新、削除。
  4. PartiQL を使用して、データの履歴をクエリ。
  5. 監査ログを確認。

8. 試験で問われやすいポイント

8.1 不変の台帳

  • データ変更履歴: データの変更履歴を不変の形で記録することを理解。
  • データの削除・変更不可: データが一度記録されると、削除や変更ができないことを理解。

8.2 透明性

  • 暗号署名: データ変更が暗号署名され、監査可能なログとして記録されることを理解。
  • データ履歴追跡: データ変更の履歴を追跡し、透明性を高められることを理解。

8.3 トランザクション処理

  • ACID プロパティ: ACID プロパティを保証するトランザクション処理をサポートしていることを理解。
  • データ整合性: データの整合性を維持したまま、トランザクションを実行できることを理解。

8.4 PartiQL

  • SQL 互換: SQL 互換のクエリ言語である PartiQL をサポートしていることを理解。
  • クエリ実行: PartiQL を使用してデータにクエリを実行できることを理解。

8.5 料金体系

  • 書き込みリクエスト: 台帳への書き込みリクエスト数に応じた課金を理解。
  • 読み取りリクエスト: 台帳からの読み取りリクエスト数に応じた課金を理解。
  • ストレージ: 台帳に保存されたデータ量による課金を理解。
  • データ転送: データ転送量による課金を理解。

8.6 類似・関連サービスとの比較

  • Amazon DynamoDB: Key-Value 型データベース。QLDB は台帳データベース。
  • Amazon Managed Blockchain: 分散型台帳サービス。QLDB は中央管理された台帳サービス。

8.7 試験で頻出となる具体的な問われ方と答え

  • Q: Amazon QLDB の主な用途は?
  • A: データの変更履歴を記録する透明で不変の台帳を提供すること。
  • Q: QLDB はデータの変更をどのように記録する?
  • A: 不変の形で記録。削除や変更は不可。
  • Q: QLDB のクエリ言語は?
  • A: PartiQL (SQL 互換)。
  • Q: QLDB のトランザクション処理の特徴は?
  • A: ACID プロパティを保証。
  • Q: QLDB のセキュリティ対策は?
  • A: IAM によるアクセス制御、データ暗号化、VPC サポートなど。
  • Q: QLDB の料金体系は?
  • A: 書き込みリクエスト、読み取りリクエスト、ストレージ、データ転送に基づいた課金。
  • Q: QLDB と DynamoDB の違いは?
  • A: DynamoDB は Key-Value 型、QLDB は台帳データベース。
  • Q: QLDB と Managed Blockchain の違いは?
  • A: Managed Blockchain は分散型台帳、QLDB は中央管理された台帳サービス。