Amazon Quantum Ledger Database (QLDB) 常見問答集

一般問題

Amazon Quantum Ledger Database (QLDB) 是專門打造的總帳資料庫,可提供應用程式資料一切變更的完整和可加密驗證歷史記錄。

傳統資料庫可讓您覆寫或刪除資料,因此開發人員要使用稽核表和稽核追蹤等技術協助追蹤資料歷程。雖然這些方式可行,但開發人員需要自訂開發,這樣會變得難以擴展,還需要把責任交給應用程式開發人員以確保記錄正確的資料。Amazon QLDB 資料會寫入僅供附加的日誌,以提供開發人員完整的資料歷程。而且,Amazon QLDB 日誌資料不可變且可驗證,這表示您可以信任總帳中的資料。

Amazon QLDB 功能非常適合記錄系統應用程式,資料完整性、完善以及可驗證性對這些應用程式至關重要。例如,在供應鏈與物流空間中,建立在 Amazon QLDB 的應用程式會有完整的變更歷史記錄 (像是電信業者間和跨國的資料移動) 可供查詢和分析。金融方面,記錄系統應用程式會追蹤信貸交易等關鍵資料。銀行可以使用 QLDB 輕鬆地永久存放所有金融交易的完整記錄,無須在應用程式中建置複雜的記錄保管功能。

Amazon QLDB 並非區塊鏈或是分散式總帳技術。區塊鏈和分散式總帳技術注重在解決涉及多方的分散式應用程式問題,在這種情況下應用程式不會屬於任何單一實體,各方也不完全信任彼此。另一方面,QLDB 是為特定客戶專門打造的總帳資料庫,這些客戶需要在他們擁有的應用程式中維護完整且可驗證的資料變更歷史記錄。Amazon QLDB 提供歷史記錄、不變性和可驗證性,同時結合全受管 AWS 資料庫的熟悉度、可擴展性和使用便利性。如果您的應用程式需要分散,且涉及多方互不信任的情況,可能適合使用區塊鏈解決方案。如果您的應用程式需要完整且可驗證的所有應用程式資料變更歷史記錄,但並未涉及多方互不信任的情況,就非常適合使用 Amazon QLDB。如果您有分散式帳本或區塊鏈使用案例,請參閱 Amazon Managed Blockchain

除了提供應用程式資料變更完整且可驗證的歷史記錄外,Amazon QLDB 也支援 ACID 語意交易,這是一種彈性的文件資料模型,並使用類似 SQL 的 API。QLDB 也是全受管,且能夠自動擴展以滿足您應用程式的需求,無須佈建。

若要連接到 Amazon QLDB 並與總帳中的資料進行交易,您需要使用 AWS 提供的 QLDB 驅動程式。請依照此連結中的步驟,下載驅動程式和設定連線。

Amazon QLDB 入門非常簡單,因為不用管理伺服器或佈建容量。您可以使用 AWS 管理主控台、AWS 命令列界面 (CLI)、AWS CloudFormation 範本或透過呼叫 QLDB API,在數分鐘內建立新總帳。

效能

Amazon QLDB 可執行的交易數量是一般區塊鏈架構中總帳的 2 到 3 倍。區塊鏈架構是分散的,因此執行交易需要網路的大多數成員就交易的有效性達成共識。另一方面,QLDB 採集中式設計,允許執行其交易而無須多方共識。

查詢

Amazon QLDB 可讓您使用 PartiQL 存取和操控資料,PartiQL 是一種新的開放標準查詢語言,支援對 QLDB 文件導向資料模型的 SQL 相容存取,包括半結構化和巢狀資料,同時保持與任何特殊資料來源各自獨立。要進一步了解 PartiQL,請在這裡閱讀。

定價

如需 Amazon QLDB 定價,請參閱我們的定價頁面

Amazon QLDB 可以在以下 AWS 區域使用:美國東部 (維吉尼亞北部、俄亥俄)、美國西部 (奧勒岡)、歐洲 (愛爾蘭、法蘭克福),以及亞太區域 (新加坡、雪梨、首爾、東京),並即將在其他區域推出。

可擴展性

利用 Amazon QLDB,您無須擔心佈建容量或設定讀寫限制。您可以建立總帳、定義表格,然後 QLDB 會自動擴展以支援應用程式的需求。

您可以在 AWS 服務限制頁面查看與 Amazon QLDB 關聯的限制。

備份與還原

Amazon QLDB 截至目前為止不支援備份和復原功能。目前可使用匯出至 S3 功能。您可以使用此功能將 QLDB 日誌的內容匯出至 S3。

Amazon QLDB 截至目前為止不支援 point-in-time 還原功能。

可用性、耐久性和複寫

Amazon QLDB 的總帳是跨多個可用區域部署,而且每個可用區域有多個副本。我們會維護區域內的備援,並確保可用區域失效時可以完全復原。寫入動作只在寫入多個可用區域中的耐用儲存時才會認可,所以 QLDB 非常耐用。

Amazon QLDB 是高度可用的服務。按照預設,您的 QLDB 總帳的多個副本會在區域內跨可用區域複寫。因此,就算某個區域失效,您仍可以繼續操作 QLDB。

Amazon QLDB 截至目前為止不支援跨區域複寫。QLDB 的匯出至 S3 功能可讓客戶將 QLDB 日誌的內容匯出至 S3 儲存貯體。您可以將 S3 儲存貯體設定為跨區域複寫。

安全性

Amazon QLDB 與 AWS Private Link 整合。客戶可以建立 VPC 端點,透過私有連線將 VPC 連結到採用 PrivateLink 技術的支援 AWS 服務,無須網際網路閘道、NAT 裝置、VPN 連接或 AWS Direct Connect 連線。

Amazon QLDB 使用與其他 AWS 服務相同的驗證機制。此機制規定要將請求簽章附加到 HTTP 請求 (標頭或查詢字串)。簽章使用其他請求欄位和 AWS 登入資料 (存取金鑰 ID 和私密存取金鑰) 進行運算。

按照預設,所有靜態資料和傳輸中的資料都會加密。Amazon QLDB 於 2021 年 7 月 22 日推出對客戶受管 AWS KMS key 的支援。依預設,在推出之前建立的任何帳本都受到 AWS 擁有的金鑰保護,但目前不符合使用客戶受管金鑰進行靜態加密的資格。 您可以在 QLDB 主控台上檢視帳本的建立時間。

串流功能

1/ 建立 Amazon Kinesis 資料串流 (KDS):客戶可以使用 Amazon Kinesis 主控台或 AWS SDK 建立 KDS 串流。也可以使用現有的串流。

2/ 建立 Amazon QLDB 串流:客戶可以使用 Amazon QLDB 主控台或 AWS SDK 建立 Amazon QLDB 串流。必須設定下列要素才能建立串流:

  • Amazon QLDB 總帳名稱
  • 目標 KDS 串流
  • Amazon QLDB 將擔任 IAM 角色,該角色具有寫入 KDS 串流的權限
  • 開始時間,指定串流開始的時鐘時間
  • 結束時間,指定串流結束的時鐘時間。省略此選擇性參數表示連續的串流。

3/ 運用 KDS 串流:客戶可以使用 Kinesis 服務 (例如 Kinesis Data Firehose 和 Kinesis Data Analytics) 編寫 Kinesis 應用程式,以運用和處理串流。客戶還可以透過 AWS Lambda 使用 Kinesis 資料串流記錄。

Amazon QLDB 串流功能至少提供一次交付保證。QLDB 串流從日誌產生的每項控制、區塊摘要和修訂詳細資訊記錄,至少會串流至 Amazon Kinesis 一次。由於在某些情況下,Kinesis 串流中會出現重複記錄,因此如果應用程式需要,客戶將需要在應用層中使用重複資料刪除邏輯。不保證按照順序,因為之前的區塊和修訂可能不會按照順序在 Kinesis 串流中發佈。