Ridimensionamento ElastiCache - Amazon ElastiCache

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ridimensionamento ElastiCache

Puoi scalare la ElastiCache cache in base alle tue esigenze. Le cache serverless e i cluster progettati internamente offrono diverse opzioni di scalabilità.

ElastiCache Scalabilità senza server

ElastiCache Serverless si adatta automaticamente al traffico del carico di lavoro man mano che aumenta o diminuisce. Per ogni cache ElastiCache Serverless, monitora ElastiCache continuamente l'utilizzo di risorse come CPU, memoria e rete. Quando una di queste risorse è limitata, ElastiCache Serverless esegue la scalabilità orizzontale aggiungendo un nuovo shard e ridistribuendo i dati sul nuovo shard, senza tempi di inattività dell'applicazione. È possibile monitorare le risorse utilizzate dalla cache monitorando la BytesUsedForCache metrica per l'archiviazione dei dati nella CloudWatch cache e (ECPU) per l'utilizzo dell'elaborazione. ElastiCacheProcessingUnits

Impostazione dei limiti di dimensionamento per gestire i costi

Puoi scegliere di configurare un utilizzo massimo dell'archiviazione di dati e delle ECPU al secondo per controllare i costi della cache. In questo modo ti assicuri che l'utilizzo della cache non superi mai il limite massimo configurato.

Se imposti un valore di scalabilità massimo, l'applicazione potrebbe subire una riduzione delle prestazioni della cache quando la cache raggiunge il massimo. Quando impostate un valore massimo di archiviazione dei dati nella cache e l'archiviazione dei dati della cache raggiunge il massimo, ElastiCache inizierà a rimuovere i dati dalla cache con un set Time-To-Live (TTL), utilizzando la logica LRU. Se non sono disponibili dati che possono essere sottoposti a espulsione, le richieste di scrittura di dati aggiuntivi restituiscono un messaggio di errore di memoria insufficiente (OOM). Quando imposti un valore massimo di ECPU/secondo e l'utilizzo di calcolo del carico di lavoro supera questo valore, inizieranno a limitare le richieste. ElastiCache

Se imposti un limite massimo su BytesUsedForCache oElastiCacheProcessingUnits, ti consigliamo vivamente di impostare un CloudWatch allarme a un valore inferiore al limite massimo in modo da ricevere una notifica quando la cache funziona in prossimità di questi limiti. Ti consigliamo di impostare l'allarme al 75% del limite massimo configurato. Consulta la documentazione su come configurare gli CloudWatch allarmi.

Prescalabilità con Serverless ElastiCache

ElastiCache Prescalabilità senza server

Con il preridimensionamento, chiamato anche preriscaldamento, è possibile impostare limiti minimi supportati per la cache. ElastiCache È possibile impostare questi valori minimi per le unità di ElastiCache elaborazione (ECPUs) al secondo o per l'archiviazione dei dati. Ciò può essere utile in preparazione agli eventi di scalabilità previsti. Ad esempio, se una società di giochi prevede un aumento di 5 volte degli accessi entro il primo minuto dal lancio del nuovo gioco, può predisporre la cache per questo significativo picco di utilizzo.

È possibile eseguire la prescalabilità utilizzando la ElastiCache console, la CLI o l'API. ElastiCache Serverless aggiorna i ECPUs /second disponibili nella cache entro 60 minuti e invia una notifica di evento quando viene completato l'aggiornamento del limite minimo.

Come funziona la prescalabilità

Quando il limite minimo per ECPUs /secondo o l'archiviazione dei dati viene aggiornato tramite la console, la CLI o l'API, il nuovo limite è disponibile entro 1 ora. ElastiCache Serverless supporta 30.000 ECPUs €/secondo su una cache vuota e fino a 90 ECPUs K/sec quando si utilizza la funzionalità Read from Replica. ElastiCache Serverless for Valkey 8.0 può raddoppiare le richieste al secondo (RPS) supportate ogni 2-3 minuti, raggiungendo 5 milioni di RPS per cache da zero in meno di 13 minuti, con una latenza di lettura p50 costante inferiore al millisecondo. Se prevedi che un evento di scalabilità imminente potrebbe superare questa frequenza, ti consigliamo di impostare il valore minimo ECPUs /secondo sul picco /sec previsto almeno 60 minuti prima dell'evento di picco. ECPUs In caso contrario, l'applicazione potrebbe riscontrare una latenza e una limitazione delle richieste elevate.

Una volta completato l'aggiornamento del limite minimo, ElastiCache Serverless inizierà a contabilizzare il nuovo valore minimo ECPUs al secondo o il nuovo spazio di archiviazione minimo. Ciò si verifica anche se l'applicazione non esegue le richieste sulla cache o se l'utilizzo dell'archiviazione dei dati è inferiore al minimo. Quando si abbassa il limite minimo rispetto all'impostazione corrente, l'aggiornamento è immediato, quindi ElastiCache Serverless inizierà immediatamente a misurare il nuovo limite minimo.

Nota
  • Quando imposti un limite di utilizzo minimo, ti viene addebitato il costo di tale limite anche se l'utilizzo effettivo è inferiore al limite di utilizzo minimo. All'utilizzo dell'ECPU o dell'archiviazione dei dati che supera il limite di utilizzo minimo viene addebitata la tariffa normale. Ad esempio, se imposti un limite di utilizzo minimo di 100.000 ECPUs €/secondo, ti verranno addebitati almeno 1,224 USD all'ora (utilizzando i prezzi dell'ECPU in us-east-1), anche se l'utilizzo è inferiore al minimo impostato.

  • ElastiCache Serverless supporta la scala minima richiesta a livello aggregato sulla cache. ElastiCache Serverless supporta anche un massimo di 30.000 al ECPUs secondo per slot (90 ECPUs K/secondo quando si utilizza Read from Replica utilizzando connessioni READONLY). Come best practice, l'applicazione dovrebbe garantire che la distribuzione delle chiavi tra gli slot Valkey o Redis OSS e il traffico tra le chiavi siano il più uniformi possibile.

Impostazione dei limiti di scalabilità utilizzando la console e AWS CLI

Impostazione dei limiti di scalabilità tramite la console AWS

  1. Accedi a AWS Management Console e apri la ElastiCache console all'indirizzo https://console.aws.amazon.com/elasticache/.

  2. Nel riquadro di navigazione, scegli il motore che viene eseguito sulla cache che desideri modificare.

  3. Viene visualizzato un elenco di cache che eseguono il motore scelto.

  4. Scegli la cache da modificare facendo clic sul pulsante di opzione a sinistra del nome della cache.

  5. Scegliere Actions (Operazioni), quindi Modify (Modifica).

  6. In Limiti di utilizzo, imposta i limiti di memoria o calcolo appropriati.

  7. Fai clic su Visualizza l'anteprima delle modifiche e quindi su Salva le modifiche.

Impostazione dei limiti di scalabilità utilizzando AWS CLI

Per modificare i limiti di scalabilità utilizzando la CLI, utilizza l' modify-serverless-cacheAPI.

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}'

Rimozione dei limiti di dimensionamento tramite la CLI

Per rimuovere i limiti di scalabilità utilizzando la CLI, imposta i parametri del limite minimo e massimo su 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}'