選取 SaaS 應用程式的資料庫 - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

選取 SaaS 應用程式的資料庫

對於許多多租戶 SaaS 應用程式而言,選取操作資料庫可以精簡為關聯式和非關聯式資料庫之間的選擇,或是兩者的組合。若要做出決定,請考慮下列高階應用程式資料需求和特性:

  • 應用程式的資料模型

  • 資料的存取模式

  • 資料庫延遲需求

  • 數據完整性和事務完整性要求(原子性,一致性,隔離性和耐久性或 ACID)

  • 跨區域可用性與回復需求

下表列出應用程式資料需求和特性,並在資料 AWS 庫產品的內容中討論這些需求:與 Aurora PostgreSQL 相容和 Amazon RDS (關聯式) 和 Amazon DynamoDB (非關聯式)。當您嘗試在關聯式和非關聯式作業資料庫產品之間做決定時,您可以參考此矩陣。

資料庫 SaaS 應用程式資料需求與特性
資料模型 存取模式 延遲需求 資料和交易完整性 跨區域可用性與回復

关系

(Aurora 兼容和亞馬遜 RDS 適用於 PostgreSQL)

關係或高度規範化。 不必事先進行徹底的計劃。 最好是更高的延遲容忍度;在預設情況下,使用 Aurora 並實作僅供讀取複本、快取和類似功能,可達到較低的延遲。 默認情況下維護高數據和交易完整性。 在 Amazon RDS 中,您可以建立跨區域擴展和容錯移轉的僅供讀取複本。Aurora 主要是自動化這個過程。對於跨多個主動-主動組態 AWS 區域,您可以將寫轉送Aurora 全域資料庫搭配使用。

非关系

(Amazon DynamoDB)

通常非標準化。這些資料庫利用模式來建many-to-many立關係大型項目時間序列資料的模式。 在產生資料模型之前,必須徹底瞭解資料的所有存取模式 (查詢)。 具有 Amazon DynamoDB 加速器 (DAX) 等選項的極低延遲,可進一步提升效能。 以效能為代價的選擇性交易完整性。數據完整性考慮轉移到應用程序。 透過全域表,輕鬆進行跨區域復原和主動-主動組態。(ACID 合規性只能在單個 AWS 區域中實現。)

某些多租用戶 SaaS 應用程式可能具有唯一的資料模型或特殊情況,這些特殊情況會由前一個資料表中未包含的資料庫提供更 例如,時間序列資料集、高度連線的資料集或維護集中式交易分類帳可能需要使用不同類型的資料庫。分析所有可能性已超出本指南的範圍。有關 AWS 資料庫產品的完整清單,以及它們如何能夠在高層級滿足不同的使用案例,請參閱 Amazon Web Services 概觀白皮書中的資料庫一節。

本指南的其餘部分著重於支援 PostgreSQL 的 AWS 關聯式資料庫服務:與 Amazon RDS 和 Aurora PostgreSQL 相容。DynamoDB 需要不同的方法來針對 SaaS 應用程式進行最佳化,這超出本指南的範圍。如需有關 DynamoDB 的詳細資訊,請參閱 AWS 部落格文章使用 Amazon DynamoDB 分割集區的多租戶 SaaS 資料

Amazon RDS 和 Aurora 之間的選擇

在大多數情況下,我們建議您使用相容於亞馬遜 RDS 的 Aurora PostgreSQL。下表顯示在這兩個選項之間做出決定時應考慮的因素。

数据库管理系统 Amazon RDS for PostgreSQL Aurora 郵政兼容
擴充性 複寫延遲時間為分鐘,最多 5 個僅供讀取複本 複寫延遲不到一分鐘 (通常在全域資料庫少於 1 秒),最多 15 個僅供讀取複本
崩潰恢復 檢查點相隔 5 分鐘(默認情況下)可能會降低數據庫性能 以 parallel 執行緒進行非同步復原,可快速
故障轉 60-120 秒,除了崩潰恢復時間 通常約 30 秒(包括崩潰恢復)
儲存 最多 25 萬六千個 IOPS IOPS 僅受到 Aurora 執行個體大小和容量的限制
高可用性和災難復原 兩個具備待命執行個體的可用區域、跨區域容錯移轉至僅供讀取複本或複製備份 預設有三個可用區域、跨區域容錯移轉與 Aurora 全域資料庫、主動-主動組態的AWS 區域 寫入轉送
備份 在備份時段期間,可能會影響效能 自動增量備份,不影響效能
資料庫實例類別 查看 Amazon RDS 執行個體類別清 查看 Aurora 執行個體類別清

在上表中描述的所有類別中,Aurora PostgreSQL 兼容通常是更好的選擇。不過,Amazon RDS for PostgreSQL 對於中小型工作負載來說仍然有意義,因為它具有更多的執行個體類別選擇,可能會提供更符合成本效益的選項,但會犧牲 Aurora 更強大的功能集。