Come posso ridurre al minimo i tempi di inattività durante il dimensionamento di ElastiCache?

5 minuti di lettura
0

Desidero ridurre al minimo i tempi di inattività durante il dimensionamento di Amazon ElastiCache per Redis.

Soluzione

Per ridurre al minimo i tempi di inattività, rivedi queste operazioni e verifica le procedure di configurazione e manutenzione:

  • Per ridurre al minimo i tempi di inattività durante la sincronizzazione, evita il dimensionamento quando il carico di lavoro è elevato. Se il cluster ha un carico di lavoro elevato e il dimensionamento richiede molto tempo, riduci le richieste in arrivo a Redis per evitare errori di sincronizzazione. Se si verifica la sincronizzazione, controlla il parametro SaveInProgress in Amazon CloudWatch per determinare quando è avvenuta la sincronizzazione. Tieni presente che il parametro SaveInProgress raccoglie i dati ogni minuto e potrebbe non acquisire una sincronizzazione terminata in meno di un minuto. Per ulteriori informazioni, consulta Monitoring best practices with Amazon ElastiCache for Redis using Amazon CloudWatch.
  • Per identificare i problemi causati da una configurazione errata sul lato client durante la connessione al cluster, verifica il dimensionamento in un ambiente non di produzione. In base al tipo di dimensionamento, durante tale operazione potrebbe essere aggiunto o rimosso un nodo oppure l'indirizzo IP del nodo potrebbe cambiare. ElastiCache per Redis fornisce diversi tipi di endpoint di connessione per connettersi al cluster, pertanto il tipo di endpoint di connessione scelto dipende dai requisiti dell'applicazione.
  • Configura il codice del client o dell'applicazione Redis per riprovare la query su un'altra replica o per inviare una query al codice dell'applicazione primario. Se il client si connette a una nuova replica in fase di sincronizzazione, viene visualizzato il messaggio di errore LOADING: Redis is loading the dataset in memory. Il tempo necessario per caricare il set di dati si basa sulla dimensione dei dati e sulle prestazioni del nodo. Per determinare se si tratta di un problema, esegui il test in un ambiente non di produzione.
  • Configura il cluster per scalare automaticamente. Il dimensionamento automatico previene i problemi di prestazioni causati da aumenti improvvisi del carico di lavoro in entrata. Per ulteriori informazioni, consulta Auto Scaling ElastiCache for Redis clusters.

Per i cluster Redis con la modalità cluster disattivata, rivedi queste operazioni e controlla le procedure di configurazione e manutenzione:

  • Per il dimensionamento verticale, se le applicazioni utilizzano solo un endpoint primario per la connessione, non si verificano tempi di inattività quando si rimuove un nodo di replica. Se le applicazioni utilizzano un lettore o singoli endpoint per connettersi a quel nodo di replica, la connessione originale si interrompe. Quando la connessione originale si interrompe, occorre stabilire una nuova connessione TCP. L'applicazione deve inoltre eseguire una ricerca DNS per evitare la connessione al nodo di replica rimosso. Se il client utilizza endpoint di lettura, potrebbero verificarsi tempi di inattività dovuti alla propagazione DNS degli endpoint di lettura.
  • Per il dimensionamento orizzontale, assicurati di procedere ad aumentare orizzontalmente nelle ore in cui il carico di lavoro è minimo, per evitare i tempi di inattività causati dalla sincronizzazione.
  • In caso di modifica del tipo di nodo, i carichi di lavoro pesanti potrebbero determinare l’esito negativo della sincronizzazione. Inoltre, l'applicazione potrebbe dover eseguire una ricerca DNS sugli endpoint primari o di lettura per stabilire nuove connessioni al nuovo nodo. La propagazione del DNS richiede alcuni secondi e potrebbe verificarsi un'interruzione del servizio prima che il client raggiunga il nuovo nodo. Per le versioni Redis 5.0.5 o successive, l'interruzione è ridotta al minimo. È consigliabile eseguire l'aggiornamento alla nuova versione Redis per ottimizzare ElastiCache.

Per i cluster Redis con la modalità cluster attivata, rivedi queste operazioni e controlla le procedure di configurazione e manutenzione:

  • Per avere tempi di inattività minimi o nulli durante il dimensionamento, consulta Redis cluster client discovery and exponential backoff.
  • Per ridurre al minimo i tempi di inattività durante il dimensionamento verticale, consulta Online cluster resizing. Per ridurre al minimo i problemi di prestazioni, scala gradualmente. Assicurati di controllare le prestazioni del cluster durante le ore di picco dopo il dimensionamento verticale iniziale prima di procedere all'ulteriore dimensionamento.
  • Per ridurre al minimo i tempi di inattività durante il dimensionamento orizzontale, consulta Online cluster resizing.
  • I carichi di lavoro pesanti potrebbero determinare l’esito negativo della sincronizzazione in caso di modifiche al tipo di nodo. Inoltre, i nuovi indirizzi IP del nodo potrebbero non essere gli stessi dei vecchi nodi. Per determinare l'indirizzo IP, l'applicazione può utilizzare il comando cluster nodes o cluster slots per ottenere informazioni aggiornate dal cluster. I client Redis che supportano i cluster Redis possono aggiornare la topologia del cluster. Per configurare il client Redis, consulta la documentazione per il tuo tipo di client specifico.
  • Quando modifichi il numero di repliche, assicurati di controllare innanzitutto le prestazioni dei nodi principali prima di aggiungere ulteriori nodi di replica. Quando il numero di nodi di replica diminuisce e il client deve leggere da un nodo di replica rimosso, le richieste vengono inviate ai nuovi nodi di replica. Inoltre, per evitare richieste ai nodi rimossi, il client deve aggiornare la topologia del cluster.

Informazioni correlate

Replication: Redis (Cluster Mode Disabled) vs. Redis (Cluster Mode Enabled)

Find your node endpoints

Scaling ElastiCache for Redis

Making sure that you have enough memory to create a Redis snapshot

Best practices with Redis clients

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa