PERF04-BP04 根據存取模式選擇資料儲存 - AWS Well-Architected 架構

PERF04-BP04 根據存取模式選擇資料儲存

根據工作負載的存取模式確定要使用的服務和技術。除了效能和規模等非功能性要求外,存取模式還嚴重影響資料庫和儲存解決方案的選擇。第一個維度是對交易、ACID 合規和一致性讀取的需求。並非每個資料庫都支持這些項目,並且大部分 NoSQL 資料庫都會提供最終一致性模型。第二個重要維度是寫入和讀取隨時間和空間的分佈。全球分散式應用程式需要考慮流量模式、延遲和存取要求,以便識別最佳的儲存解決方案。選擇的第三個關鍵層面是查詢模式靈活性、隨機存取模式,以及一次性查詢。還必須斟酌圍繞文字和自然語言處理、時間系列和圖形的高度專業化查詢功能的考量。

預期成果: 已根據識別和記錄的資料存取模式選取資料儲存。這可能包括最常見的讀取、寫入和刪除查詢、對特定計算和彙總的需求、資料的複雜性、資料相依性,以及必要的一致性需求。

常用的反模式:

  • 您只選取一個資料庫廠商來簡化操作管理。

  • 您假設資料存取模式不會隨著時間改變。

  • 您在應用程式中實作複雜的交易、回復和一致性邏輯。

  • 資料庫設定為支援潛在的高流量爆增,這會導致資料庫資源大部分時間保持閒置狀態。

  • 使用共用的資料庫進行交易和分析用途。

建立此最佳實務的優勢: 根據存取模式選取和優化您的資料儲存將有助於降低開發複雜性,並優化您的效能機會。了解何時使用讀取複本、全域表、資料分割和快取將協助您降低營運負擔,並根據您的工作負載需求進行擴展。

若未建立此最佳實務,暴露的風險等級:

實作指引

識別並評估您的資料存取模式,以選取正確的儲存組態。每個資料庫解決方案都有設定和優化儲存解決方案的選項。使用收集的指標和記錄,並嘗試使用選項來找出最佳組態。使用下表根據每個資料庫服務檢閱儲存選項。

AWS 服務 Amazon RDS、Amazon Aurora Amazon DynamoDB Amazon DocumentDB Amazon ElastiCache Amazon Neptune Amazon Timestream Amazon Keyspaces Amazon QLDB
擴展儲存 可用來自動擴展所佈建儲存 IOPS 的儲存自動擴展選項也可以在利用佈建的 IOPS 儲存類型時,獨立於佈建的儲存進行擴展 自動擴展。資料表在大小方面不受限制。 儲存自動擴展選項可用來擴展佈建的儲存 儲存是記憶體內,受制於執行個體類型或計數 儲存自動擴展選項可用來自動擴展佈建的儲存 設定記憶體內和磁性層的保留期間 (以天為單位) 自動擴增和縮減表格儲存 自動擴展。資料表在大小方面不受限制。

實作步驟:

  1. 識別並記錄資料和流量的預期成長。

    1. Amazon RDS 和 Aurora 支援儲存自動擴增至記錄的限制。除此之外,考慮將較舊資料轉換到 Amazon S3 進行封存、彙總歷史資料進行分析,或透過碎片水平擴展。

    2. DynamoDB 和 Amazon S3 將自動擴展至近乎無限制的儲存容量。

    3. 可以手動調整在 EC2 上執行的 Amazon RDS 執行個體和資料庫大小,並且 EC2 執行個體可以在後來新增 EBS 容量以取得額外的儲存。 

    4. 可以根據活動中的變更來變更執行個體類型。例如,您可以在測試時從較小的執行個體開始,然後在您開始接收服務的生產流量時擴展執行個體。Aurora Serverless V2 會自動擴展以回應負載中的變更。 

  1. 記錄有關正常和尖峰效能 (每秒交易數 TPS 和每秒查詢數 QPS) 和一致性 (ACID 和最終一致性) 的要求。

  2. 記錄解決方案部署層面和資料庫存取要求 (全域、多可用區域、讀取複寫、多個寫入節點)

實作計劃的工作量: 如果您的資料管理解決方案沒有日誌或指標,則需要在識別和記錄資料存取模式之前完成該操作。一旦了解您的資料存取模式,選取並設定您的資料儲存是  工作量。

資源

相關文件:

相關影片:

相關範例: