擴展 ElastiCache - Amazon ElastiCache

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

擴展 ElastiCache

您可以擴展 ElastiCache 快取以符合您的需求。無伺服器快取和自行設計的叢集提供多種不同的擴展選項。

Scaling ElastiCache Serverless

ElastiCache Serverless 會在工作負載流量上升或下降時自動容納工作負載流量。對於每個無 ElastiCache 伺服器快取, ElastiCache 會持續追蹤資源的使用率CPU,例如 、記憶體和網路。當任何這些資源受到限制時, ElastiCache Serverless 會透過新增碎片並重新分發資料至新的碎片來橫向擴展,而不會讓應用程式停機。您可以透過監控快取資料儲存的指標和 ElastiCacheProcessingUnits(ECPU) BytesUsedForCache 的運算用量, CloudWatch 來監控 中快取所使用的資源。

設定擴展限制以管理成本

您可以選擇在快取資料儲存上設定最大用量,並為快取設定ECPU每秒用量,以控制快取成本。這樣做將確保您的快取用量永遠不會超過所設定的上限。

如果您設定擴展上限,則當快取達到上限時,應用程式可能會遇到快取效能降低的情況。當您設定快取資料儲存上限,且快取資料儲存達到上限時, ElastiCache 將會使用 LRU 邏輯,開始逸出快取中已設定 Time-To-Live(TTL) 的資料。如果沒有可以清除的資料,則寫入其他資料的請求將會收到記憶體不足 (OOM) 錯誤訊息。當您設定ECPU每秒上限,且工作負載的運算使用率超過此值時, ElastiCache 將開始限流請求。

如果您在 BytesUsedForCache或 上設定了上限ElastiCacheProcessingUnits,強烈建議在低於上限的值設定CloudWatch 警示,以便在快取操作接近這些限制時收到通知。建議設定的警示值為上限的 75%。請參閱有關如何設定 CloudWatch 警示的文件。

使用 ElastiCache Serverless 預先擴展

ElastiCache 無伺服器預先擴展

透過預先擴展,也稱為預熱,您可以設定 ElastiCache 快取的支援限制下限。您可以為每秒的 ElastiCache 處理單位 (ECPUs) 或資料儲存設定這些最小值。這對於準備預期的擴展事件很有用。例如,如果遊戲公司預期在新遊戲啟動的第一分鐘內登入次數會增加 5 倍,他們可以為快取做好準備,以因應用量大幅增加的情況。

您可以使用 ElastiCache 主控台、 CLI或 執行預先擴展API。無 ElastiCache 伺服器會在 60 分鐘內更新快取上可用的ECPUs每秒 / 秒,並在完成最低限制更新時傳送事件通知。

預先擴展的運作方式

當透過主控台、 或 CLI更新 ECPUs/秒或資料儲存的下限時API,該新限制可在 1 小時內使用。 ElastiCache Serverless 支援空快取的 30KECPUs/秒,以及使用從複本讀取功能時的 90KECPUs/秒。每 10-12 分鐘 ElastiCache 可以加倍 ECPUs/秒。此擴展速度足以應付大多數工作負載。如果您預期即將發生的擴展事件可能超過此速率,則建議您將最小 ECPUs/秒設定為峰值事件至少 60 分鐘之前預期的峰值 ECPUs/秒。否則,應用程式可能會遇到延遲增加和請求限流。

一旦下限更新完成, ElastiCache Serverless 將開始測量您ECPUs每秒的新下限或新的最低儲存。即使您的應用程式未在快取上執行請求,或您的資料儲存用量低於下限,也會發生這種情況。當您從目前的設定降低下限時,更新會立即進行,因此 ElastiCache Serverless 將立即開始以新的下限計量。

注意
  • 當您設定最低用量限制時,即使實際用量低於最低用量限制,仍需支付該限制的費用。ECPU 或超過最低用量限制的資料儲存用量會按一般費率收費。例如,如果您將最低用量限制設定為ECPUs每秒 100,000,則每小時至少需支付 1.224 美元 (使用 us-east-1 ECPU的價格),即使您的用量低於該最低用量。

  • ElastiCache Serverless 支援快取上彙總層級的請求最小規模。 ElastiCache Serverless 也支援每個插槽最多 30KECPUs/秒 (使用 READONLY連線從複本讀取時為 90KECPUs/秒)。作為最佳實務,您的應用程式應確保金鑰在 Valkey 或 Redis OSS插槽和金鑰之間的流量盡可能一致。

使用主控台 和 設定擴展限制 AWS CLI

使用 AWS 主控台設定擴展限制

  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/elasticache/開啟 ElastiCache 主控台。

  2. 在導覽窗格中,選擇您要修改之快取上執行的引擎。

  3. 接著會出現執行所選引擎的快取清單。

  4. 選擇快取名稱左側的選項按鈕來選擇要修改的快取。

  5. 選擇 Actions (動作),然後選擇 Modify (修改)

  6. 用量限制 下,設定適當的記憶體運算限制。

  7. 按一下預覽變更,然後儲存變更。

使用 設定擴展限制 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}'