PERF03-BP02 評估資料存放區可用的組態選項
了解並評估資料存放區可用的各種特徵和組態選項,以最佳化工作負載的儲存空間和效能。
常見的反模式:
-
所有工作負載只能使用一種儲存類型,例如 Amazon EBS。
-
您為所有工作負載使用佈建 IOPS,卻未針對所有儲存層進行實際測試。
-
您未意識到所選資料庫管理解決方案的組態選項。
-
僅依靠增加執行個體大小,而不查看其他可用的組態選項。
-
未測試資料存放區的擴展特性。
建立此最佳實務的優勢: 藉由探索和試驗資料存放區組態,您能夠降低基礎架構成本、改善效能,以及減少維護工作負載所需的工作量。
未建立此最佳實務時的曝險等級: 中
實作指引
工作負載可以根據資料儲存和存取需求使用一或多個資料存放區。若要最佳化效能效率和成本,您必須評估資料存取模式,以判斷適當的資料存放區組態。在探索資料存放區選項時,請考量各種層面,例如儲存選項、記憶體、運算、讀取複本、一致性需求、連線共用,以及快取選項。試驗這些不同的組態選項來改善效能效率指標。
實作步驟
-
了解資料存放區的目前組態 (例如執行個體類型、儲存大小或資料庫引擎版本)。
-
檢閱 AWS 文件和最佳實務,以了解可協助改善資料存放區效能的建議組態選項。要考慮的關鍵資料存放區選項如下:
組態選項 範例 卸載讀取 (例如讀取複本和快取) -
若為 DynamoDB 資料表,您可以使用 DAX 卸載讀取,以進行快取。
-
您可以建立 Amazon ElastiCache (Redis OSS) 叢集,並將應用程式設定為先從快取中讀取,如果請求的項目不存在,則退回到資料庫。
-
關聯式資料庫 (例如 Amazon RDS 和 Aurora) 和已佈建的 NoSQL 資料庫 (例如 Neptune 和 Amazon DocumentDB) 全都支援新增讀取複本,以卸載工作負載的讀取部分。
-
無伺服器資料庫 (例如 DynamoDB) 將自動擴展。確定您已佈建足夠的讀取容量單位 (RCU) 來處理工作負載。
擴展寫入(例如分區金鑰碎片或引進佇列) -
對於關聯式資料庫,您可以增加執行個體的大小,以適應增加的工作負載或增加佈建 IOPS,以允許增加基礎儲存的輸送量。
-
您也可以在資料庫前面引進佇列,而不是直接寫入至資料庫。此模式允許您將擷取與資料庫分離並控制流量,因此資料庫不會癱瘓。
-
批次處理寫入請求而不是建立許多短期交易,有助改善高寫入量關聯式資料庫中的輸送量。
-
取決於容量模式,DynamoDB 之類的無伺服器資料庫可以自動擴展寫入輸送量,或透過調整已佈建的容量單位 (WCU) 來進行。
-
當您達到指定分區索引鍵的輸送量限制時,仍可能會遇到熱分區的問題。這可以透過選擇更均勻分佈的分區索引鍵,或對分區索引鍵進行寫入碎片化來緩解。
使用政策來管理資料集的生命週期 -
您可以使用 Amazon S3 生命週期 在物件的完整生命週期內管理該物件。如果存取模式不明、會變化或是無法預測,則可以使用 Amazon S3 Intelligent-Tiering,讓其監控存取模式,並自動將未存取的物件移至成本較低的存取層。您可以利用 Amazon S3 Storage Lens 指標,來找出生命週期管理中的最佳化機會和落差。
-
Amazon EFS 生命週期管理 自動管理檔案系統的檔案儲存。
連線管理與集區 -
Amazon RDS Proxy 可以與 Amazon RDS 和 Aurora 搭配使用,以管理資料庫的連線。
-
無伺服器資料庫 (例如 DynamoDB) 沒有與其相關聯的連線,但會考慮佈建的容量和自動擴展政策來處理負載中的峰值。
-
-
在非生產環境中執行試驗和基準化分析,以找出哪個組態選項能滿足工作負載需求。
-
完成試驗之後,請規劃遷移並確認效能指標。
-
使用 AWS 監控 (例如 Amazon CloudWatch
) 和最佳化 (例如 Amazon S3 Storage Lens ) 工具,以透過實際使用模式持續最佳化資料存放區。
資源
相關文件:
相關影片:
相關範例: