縮放 ElastiCache (內存緩存) - Amazon ElastiCache

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

縮放 ElastiCache (內存緩存)

縮放 ElastiCache (內存緩存)

ElastiCache 無伺服器會在工作負載流量上升或下降時自動容納您的工作負載流量。針對每個 ElastiCache 無伺服器快取, ElastiCache 持續追蹤資源 (例如 CPU、記憶體和網路) 的使用率。當任何這些資源受到限制時, ElastiCache Serverless 會透過新增碎片並將資料重新分配到新的碎片來向外擴充,而不會對應用程式造成任何停機時間。您可以監視快取資料儲存體和 ElastiCacheProcessingUnits (ECPU) 計算使用BytesUsedForCache量的測量結果, CloudWatch 來監視快取使用的資源。

設定擴展限制以管理成本

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

如果您設定了擴展上限,當快取達到上限時,應用程式可能會遇到快取效能降低的情況。當您設定快取資料儲存最大值且快取資料儲存達到最大值時, ElastiCache 將開始使用 LRU 邏輯收回快取中的資料。當您設定 ECPU/ 秒上限且工作負載的運算使用率超過此值時, ElastiCache 將開始限制 Memcached 要求。

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

使用無伺服器預先調整 ElastiCache

ElastiCache 無伺服器預先調整

透過預先調整 (也稱為預熱),您可以為快取設定支援的 ElastiCache 最低限制。您可以為每秒 ElastiCache 處理單位 (ECPU) 或資料儲存設定這些最小值。這對於準備預期的擴展事件很有用。例如,如果一家遊戲公司預計在新遊戲推出的第一分鐘內登入會增加 5 倍,他們就可以準備好快取,以應付這種顯著的使用量激增。

您可以使用 ElastiCache 主控台、CLI 或 API 執行預先調整規模。 ElastiCache 無伺服器會在 60 分鐘內更新快取記憶體上的可用 ECP,並在最小限制更新完成時傳送事件通知。

預縮放的運作方式

當 ECPUS/ 秒或資料儲存體的最低限制透過主控台、CLI 或 API 更新時,該新限制將在 1 小時內提供。 ElastiCache 無伺服器在空白快取上支援每秒 30K ECPUS,使用「從複本讀取」功能時,最高可支援每秒 90K ECPUS。 ElastiCache 每 10-12 分鐘可以加倍/秒。此擴展速度足以滿足大多數工作負載的需求 如果您預期即將到來的擴展事件可能會超過此速率,那麼我們建議您將最小 ECPUS /秒設定為期望在高峰事件發生前至少60 分鐘的峰值 ECPUS /秒。否則,應用程式可能會遇到更高的延遲和請求限制。

最低限制更新完成後, ElastiCache 無伺服器會開始計量新的每秒最低 ECPU 或新的最低儲存空間。即使您的應用程式未在快取上執行要求,或您的資料儲存使用量低於最低限度,也會發生這種情況。當您從目前的設定降低最小限制時,會立即更新,因此 ElastiCache 無伺服器會立即開始以新的最低限制計量。

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

  • ElastiCache 無伺服器支援快取上彙總層級的要求最小規模。 ElastiCache 無伺服器也支援每個插槽最多每秒 30K ECPUS (使用唯讀連線使用「從複本讀取」時,每秒為 90K ECPUS)。最佳做法是,您的應用程式應確保 Redis OSS 插槽間的金鑰散佈和金鑰間的流量盡可能一致。

使用主控台和設定縮放限制 AWS CLI

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

  1. 請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/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}'