본문 바로가기

AWS Database/AWS Other Database

[AWS Certificate]-Amazon QLDB

Amazon QLDB - Overview

  • QLDB = Quantum Ledger Database
  • Fully managed, serverless ledger database
  • Has built-in, immutable journal to record all the change history of your data
  • Transparent and cryptographically verifiable ledger
  • Tracks each application data change and maintains a complete and verifiable history of changes over time.
  • Supports ACID transactions
  • Uses query lanague named PartiQL (SQL-like, Open standard)
  • Uses Amazon ION format
    • A Superset of JSON
    • Self-describing, hierarchical data serialization format
    • Offers interchangeable binary and text representations
    • Adds additional data types, type annotations and comments to JSON format
    • Supports nested JSON elements
  • Use cases: System of record applications like Banking transactions, HR services records, Insurance claim histories, Vehicle ownership records etc.

QLDB Architecture

  • It's serverless (scales automatically to support the needs of your application)
  • Intended to support high-performance OLTP workloads


  • Ledger = Journal + set of tables
  • Journal
    • Is append-only, immutable
    • No updates / overwrites / deletes
    • Stores a sequenced, cryptographically verifiable entry of each change to the table data
    • Changes are chained together as blocks (but not a blockchain implementation)
    • QLDB is centralized and not a distributed ledger (blockchain is used with decentralized use-cases)
    • Even if you delete data from the ledger(table), you can access its change history from the immutable journal

 

  • Tables
    • Collection of documents and their revisions
    • Store the current and historical state of your data (indexed storage)
    • Can include document deletion records
    • Documents are in ION format

Relational vs Ledger

 

Rleational Ledger(QLDB)
Database Ledger
Table Table
Index Index
Table row Document
Column Documnet attribute
SQL PartiQL
Audit Logs Journal

 


QLDB Views

 

  • QLDB offers three views of your data
    • User view
    • Committed view
    • History view
  • User view
    • latest version of your data
    • default view
  • Committed view
    • user view + system generated metadata
  • History view
    • contains all historical document revisions
    • i.e. all change history with metadata

Working with QLDB

 

  • You create a ledger and define your tables
  • QLDB supports ACID semantics
  • We use PartiQL query language to query QLDB
    • It's a SQL-like open standard query language
    • SQL-compatible access to relational, semi-structured, and nested data
    • Extends SQL to support ION documents
    • PartiQL is also used with Redshift / S3 select / Glacier Select

 

Amazon ION format

  • Is a Superset of JSON
  • Self-describing, hierarchical data serialization format (=nested JSON)
  • Offers interchangeable binary and text representations
  • Adds additional data types, type annotations and comments to JSON format
  • Flexible data model

 


Data Verification in QLDB

  • Journal maintains immutable and verifiable transaction log
  • QLDB uses a digest for verification
  • Digest
    • is a cryptographic representation of your journal
    • or a unique signature of your data's entire change history as of a point in time
    • is generated using SHA-256 hash function with a Merkle tree-based model
  • Can verify the integrity of your data by calculating the digest and comparing it with QLDB's digest
  • Can verify using the AWS console or QLDB API
  • Improper verification requests typically result in IllegalArgumentException

Demo


QLDB Backup and Restore

 

  • QLDB does not support a backup and restore feature (yet!)
  • PITR is. also not supported (yet!)
  • Can only export your QLDB journal to S3
    • For analytics / auditing /data retention / verification / exporting to other systems
    • limit of two concurrent journal export jobs

 

 

 

 

 


QLDB Streams

 

  • Continuous flow of data from your ledger's journal to a Kinesisi data stream
  • Provides an at-least-once delivery guarantee
  • No ordering guarantees
    • Revisions can be produced in a Kinesis data stream out of order

QLDB High Availability and D urability

 

  • QLDB ledger is replicated across multiple AZs within the region (=high availability)
  • With multiple copies per AZ (=strong durability)
  • Write is acknowledged only after being written to a durable storage in multiple AZs
  • CRR is not supproted (yet!)
    • QLDB journal can be exported to an S3 bucket
    • S3 bucket cna then be configured for CRR

 

 


QLDB Security

 

  • IAM is used for authentication and authroization of QLDB resources
  • Supports encryption at rest and in transit
  • Uses Amazon-owned keys to encrypt QLDB data
  • Does not support CMKs

QLDB Security - Networking

 

  • Can use an interface VPC endpoint to allow VPC resources to connect to QLDB privately
  • Interface VPC endpoints are powered by AWS PrivateLink
  • PrivateLink provides private and secured connectivity between VPCs, AWS services, and on-premises applications
  • PrivateLink eliminates the need for IG / NAT device / VPN connection / or AWS Direct Connect connection

 

 

 

 

 

 

 


QLDB Monitoring

 

  • Integrated with CloudWatch (Alarms / Logs / Events)
  • Comon metrics
    • JournalStorage
    • IndexedStorage
    • ReadIOs
    • WriteIOs
    • CommandLatency
  • QLDB log files provide additional information
  • API calls and user activity can be logged with CloudTrail

QLDB Pricing

 

  • You pay only for what you use
  • Storage - per GB per month
    • Journal Storage and Indexed Storage
  • IOs - per million requests
    • read IOs and write IOs
  • Data transfer

'AWS Database > AWS Other Database' 카테고리의 다른 글

Keyspaces (Cassandra)  (0) 2022.01.20
[AWS Certificate]-Amazon Timestream  (0) 2022.01.16
[AWS Certificate]-Amazon Elasticsearch Service  (0) 2022.01.16
[AWS Certificate]-Amazon Neptune  (0) 2022.01.16
[AWS Certificate]-DocumentDB  (0) 2022.01.15