本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以擴展 ElastiCache 快取以符合您的需求。無伺服器快取和自行設計的叢集提供多種不同的擴展選項。
擴展 ElastiCache Serverless
ElastiCache Serverless 會在工作負載流量上升或下降時,自動容納您的工作負載流量。對於每個 ElastiCache Serverless 快取,ElastiCache 會持續追蹤 CPU、記憶體和網路等資源的使用率。當上述任何資源受到限制時,ElastiCache Serverless 會透過新增碎片並將資料重新分配到新碎片的方式進行橫向擴展,您的應用程式不會面臨任何停機時間。您可以在 CloudWatch 中,藉由監控快取資料儲存的 BytesUsedForCache
指標以及運算用途的 ElastiCacheProcessingUnits
(ECPU),來監控快取所取用的資源。
設定擴展限制以管理成本
您可以選擇為快取設定快取資料儲存和 ECPU/秒的最大用量,以控制快取成本。這樣做將確保您的快取用量永遠不會超過所設定的上限。
如果您設定擴展上限,則當快取達到上限時,應用程式可能會遇到快取效能降低的問題。當您設定快取資料儲存上限,而您的快取資料儲存達到該上限時,ElastiCache 會使用 LRU 邏輯開始移出快取中已設定存活期 (TTL) 的資料。如果沒有可移出的資料,則請求寫入其他資料時,會收到「記憶體不足 (OOM)」錯誤訊息。當您設定 ECPU/秒上限,且工作負載的運算使用率超過此值時,ElastiCache 會開始調節請求。
如果您在 BytesUsedForCache
或 ElastiCacheProcessingUnits
設定上限,我們強烈建議您將 CloudWatch 警示設定為低於上限的值,以便在快取運作接近這些限制時收到通知。建議設定的警示值為上限的 75%。請參閱文件,了解如何設定 CloudWatch 警示。
使用 ElastiCache Serverless 進行預先擴展
ElastiCache Serverless 預先擴展
透過預先擴展,也稱為預熱,您可以設定 ElastiCache 快取支援的最小限制。您可以為每秒的 ElastiCache 處理器 (ECPUs) 或資料儲存設定這些最小值。這在準備預期的擴展事件時非常有用。例如,如果遊戲公司預期在新遊戲啟動的第一分鐘內登入增加 5 倍,他們可以準備快取,以因應用量大幅增加。
您可以使用 ElastiCache 主控台、CLI 或 API 執行預先擴展。ElastiCache Serverless 會在 60 分鐘內更新快取上可用的 ECPUs/秒,並在完成最低限制更新時傳送事件通知。
預先擴展的運作方式
當透過主控台、CLI 或 API 更新 ECPUs秒或資料儲存的最低限制時,該新限制可在 1 小時內使用。ElastiCache Serverless 在空快取上支援每秒 30K ECPUs使用僅供讀取複本功能時最高支援每秒 90K ECPUs。ElastiCache Serverless for Valkey 8.0 每 2 到 3 分鐘可以使支援的每秒請求 (RPS) 加倍,在 13 分鐘內從零達到每個快取 5M RPS,同時具有一致的次毫秒 p50 讀取延遲。如果您預期即將發生的擴展事件可能超過此速率,建議您將每秒最低 ECPUs設定為您在峰值事件前至少 60 分鐘預期的峰值 ECPUs。否則,應用程式可能會遇到延遲增加和請求調節。
完成最低限制更新後,ElastiCache Serverless 會開始測量您每秒的新最低 ECPUs或新的最低儲存。即使您的應用程式未在快取上執行請求,或您的資料儲存用量低於下限,也會發生這種情況。當您從目前的設定降低下限時,更新會立即進行,因此 ElastiCache Serverless 會立即以新的下限開始計量。
注意
當您設定最低用量限制時,即使您的實際用量低於最低用量限制,仍需支付該限制的費用。超過最低用量限制的 ECPU 或資料儲存用量會按一般費率收費。例如,如果您將最低用量限制設為每秒 100,000 個 ECPUs,則每小時至少需支付 1.224 美元 (使用 us-east-1 中的 ECPU 價格),即使您的用量低於該設定的最低用量。
ElastiCache Serverless 支援快取上彙總層級的請求最小擴展。ElastiCache Serverless 也支援每個插槽每秒最多 30K ECPUs(使用 Replica 讀取使用 READONLY 連線時為每秒 90K ECPUs)。最佳實務是,您的應用程式應確保金鑰在 Valkey 或 Redis OSS 插槽和金鑰之間流量的分佈盡可能一致。
使用 主控台和 設定擴展限制 AWS CLI
使用 AWS 主控台設定擴展限制
登入 AWS Management Console ,並在 https:// 開啟 ElastiCache 主控台。 https://console.aws.amazon.com/elasticache/
在導覽窗格中,選擇在您要修改的快取上執行的引擎。
接著會出現執行所選引擎的快取清單。
選擇快取名稱左側的選項按鈕來選擇要修改的快取。
選擇 Actions (動作),然後選擇 Modify (修改)。
在用量限制下,設定適當的記憶體或運算限制。
按一下預覽變更,然後儲存變更。
使用 設定擴展限制 AWS CLI
若要使用 CLI 變更擴展限制,請使用 modify-serverless-cache API。
Linux︰
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \
--cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'
Windows:
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^
--cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'
使用 CLI 移除擴展限制
若要使用 CLI 移除擴展限制,請將下限和上限參數設為 0。
Linux︰
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \
--cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'
Windows:
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^
--cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'