Scalabilità dei cluster Redis OSS con repliche - Amazon ElastiCache (sistema operativo Redis)

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à.

Scalabilità dei cluster Redis OSS con repliche

Amazon ElastiCache fornisce supporto per console, CLI e API per scalare il gruppo di replica Redis OSS (modalità cluster disabilitata).

Quando viene avviato il processo di scalabilità verticale, effettua le seguenti operazioni: ElastiCache

  1. Avvia un nuovo gruppo di replica utilizzando il nuovo tipo di nodo.

  2. Copia tutti i dati da un nodo primario corrente al nuovo nodo primario.

  3. Sincronizza le nuove repliche di lettura con il nuovo nodo primario.

  4. Aggiorna le voci DNS in modo che puntino ai nuovi nodi. Per questo motivo non è necessario aggiornare gli endpoint nell'applicazione. Per Redis OSS 5.0.5 e versioni successive, puoi scalare i cluster abilitati al failover automatico mentre il cluster continua a rimanere online e a soddisfare le richieste in arrivo. Sulla versione 4.0.10 e precedenti, si potrebbe verificare una breve interruzione di letture e scritture su versioni precedenti dal nodo primario mentre la voce DNS viene aggiornata.

  5. Elimina i nodi precedenti (CLI/API: gruppo di replica). Noterai una breve interruzione (pochi secondi) di letture e scritture dai vecchi nodi perché le connessioni ai vecchi nodi verranno disconnesse.

La durata di questo processo dipende dal tipo di nodo e dalla quantità di dati presenti nel cluster.

Come illustrato nella tabella seguente, l'operazione di scalabilità verticale di Redis OSS è bloccata se è pianificato un aggiornamento del motore per la prossima finestra di manutenzione del cluster.

Operazioni Redis OSS bloccate
Operazioni in sospeso Operazioni bloccate
Dimensionamento Aggiornamento immediato del motore
Aggiornamento del motore Dimensionamento immediato
Dimensionamento e aggiornamento del motore Dimensionamento immediato
Aggiornamento immediato del motore

Se hai un'operazione in sospeso che ti blocca, puoi svolgere una delle seguenti operazioni.

  • Pianifica l'operazione di scale-up di Redis OSS per la prossima finestra di manutenzione deselezionando la casella di controllo Applica immediatamente (uso CLI:, uso API:--no-apply-immediately). ApplyImmediately=false

  • Attendi la finestra di manutenzione successiva (o successiva) per eseguire l'operazione di scalabilità di Redis OSS.

  • Aggiungi l'aggiornamento del motore Redis OSS a questa modifica del cluster di cache selezionando la casella di controllo Applica immediatamente (uso CLI--apply-immediately:, uso ApplyImmediately=true API:). In questo modo si sblocca l'operazione di dimensionamento verso l'alto per eseguire immediatamente l'aggiornamento automatico del motore.

Le sezioni seguenti descrivono come scalare il cluster Redis OSS con repliche attive utilizzando la ElastiCache console, l'e l'API AWS CLI. ElastiCache

Importante

Se il tuo gruppo di parametri utilizza reserved-memory la memoria per il sovraccarico di Redis OSS, prima di iniziare la scalabilità assicurati di disporre di un gruppo di parametri personalizzato che riservi la quantità di memoria corretta per il nuovo tipo di nodo. In alternativa, è possibile modificare un gruppo di parametri personalizzato in modo che utilizzi reserved-memory-percent e il gruppo di parametri per il nuovo cluster.

Se stai utilizzando reserved-memory-percent, questa operazione non è necessaria.

Per ulteriori informazioni, consulta Gestione della memoria prenotata.

Il tempo necessario per dimensionare l'alto a un tipo di nodo più grande varia a seconda del tipo di nodo e della quantità di dati nel cluster corrente.

Il seguente processo ridimensiona il cluster con repliche dal tipo di nodo corrente a un nuovo tipo di nodo più grande utilizzando la console. ElastiCache Durante questo processo, si potrebbe verificare una breve interruzione di letture e scritture per altre versioni del nodo primario mentre la voce DNS viene aggiornata. Si potrebbe verificare un tempo di inattività inferiore al secondo per nodi in esecuzione su versioni 5.0.6 e superiore a qualche secondo per versioni precedenti.

Per scalare il cluster Redis OSS con repliche (console)
  1. Accedi AWS Management Console e apri la ElastiCache console all'indirizzo https://console.aws.amazon.com/elasticache/.

  2. Dal pannello di navigazione, scegli i cluster Redis OSS

  3. Nell'elenco di cluster, scegliere quello da dimensionare. Questo cluster deve utilizzare il motore Redis OSS e non il motore Redis OSS Clustered.

  4. Scegli Modifica.

  5. Nella procedura guidata Modify Cluster (Modifica cluster):

    1. Scegliere il tipo di nodo a cui dimensionare dall'elenco Node type (Tipo di nodo). Si noti che non tutti i tipi di nodo sono disponibili per il dimensionamento.

    2. Se stai utilizzando reserved-memory per gestire la tua memoria, dall'elenco Parameter Group (Gruppo di parametri), seleziona il gruppo di parametri personalizzati che riserva la quantità corretta di memoria per il nuovo tipo di nodo.

  6. Per eseguire subito il processo di dimensionamento verso l'alto, scegliere la casella Apply immediately (Applica immediatamente). Se non viene selezionata la casella Apply immediately (Applica immediatamente), il processo di dimensionamento verso l'alto viene eseguito nel corso della successiva finestra di manutenzione del cluster.

  7. Scegli Modifica.

  8. Quando lo stato del cluster cambia da modifica in corso a disponibile, il cluster è stato dimensionato a un nuovo tipo di nodo. Non è necessario aggiornare gli endpoint nell'applicazione.

La procedura seguente ridimensiona il gruppo di replica dal tipo di nodo corrente a un nuovo tipo più grande di nodo utilizzando l' AWS CLI. Durante questo processo, ElastiCache (Redis OSS) aggiorna le voci DNS in modo che puntino ai nuovi nodi. Per questo motivo non è necessario aggiornare gli endpoint nell'applicazione. Per Redis OSS 5.0.5 e versioni successive, puoi scalare i cluster abilitati al failover automatico mentre il cluster continua a rimanere online e a soddisfare le richieste in arrivo. Sulla versione 4.0.10 e precedenti, si potrebbe verificare una breve interruzione di letture e scritture su versioni precedenti dal nodo primario mentre la voce DNS viene aggiornata.

Il tempo necessario per aumentare a un tipo di nodo più grande varia a seconda del tipo di nodo e della quantità di dati nel cluster di cache corrente.

Per scalare un Redis OSS Replication Group ()AWS CLI
  1. Determina a quali tipi di nodi puoi scalare eseguendo il AWS CLI list-allowed-node-type-modifications comando con il seguente parametro.

    • --replication-group-id = il nome del gruppo di replica. Utilizzare questo parametro per descrivere un gruppo di replica particolare piuttosto che tutti i gruppi di replica.

    Per Linux, macOS o Unix:

    aws elasticache list-allowed-node-type-modifications \ --replication-group-id my-repl-group

    Per Windows:

    aws elasticache list-allowed-node-type-modifications ^ --replication-group-id my-repl-group

    L'output di questa operazione è simile al seguente (in formato JSON).

    { "ScaleUpModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] }

    Per ulteriori informazioni, consulta list-allowed-node-type-modifications nella documentazione di riferimento AWS CLI .

  2. Ridimensiona il gruppo di replica corrente fino al nuovo tipo di nodo utilizzando il AWS CLI modify-replication-group comando con i seguenti parametri.

    • --replication-group-id : il nome del gruppo di replica.

    • --cache-node-type : Il nuovo tipo di nodo più grande di cluster di cache nel gruppo di replica. Questo valore deve essere uno dei tipi di istanza restituiti dal comando list-allowed-node-type-modifications nella fase 1.

    • --cache-parameter-group-name – [Facoltativo] Utilizzare questo parametro se si usa reserved-memory per gestire la memoria prenotata del cluster. Specificare un gruppo di parametri di cache personalizzato che riserva la quantità di memoria corretta per il nuovo tipo di nodo. Se si sta utilizzando reserved-memory-percent è possibile omettere questo parametro.

    • --apply-immediately : Consente di applicare immediatamente il dimensionamento verso l'alto. Per posporre l'operazione di dimensionamento verso l'alto alla finestra di manutenzione successiva, utilizzare --no-apply-immediately.

    Per Linux, macOS o Unix:

    aws elasticache modify-replication-group \ --replication-group-id my-repl-group \ --cache-node-type cache.m3.xlarge \ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

    Per Windows:

    aws elasticache modify-replication-group ^ --replication-group-id my-repl-group ^ --cache-node-type cache.m3.xlarge ^ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

    L'output di questo comando è simile al seguente (in formato JSON).

    { "ReplicationGroup": { "Status": "available", "Description": "Some description", "NodeGroups": [{ "Status": "available", "NodeGroupMembers": [{ "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-001.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-002.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-002" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com" } }], "ReplicationGroupId": "my-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "disabled", "SnapshotWindow": "12:00-13:00", "SnapshottingClusterId": "my-repl-group-002", "MemberClusters": [ "my-repl-group-001", "my-repl-group-002" ], "PendingModifiedValues": {} } }

    Per ulteriori informazioni, consulta modify-replication-group nella documentazione di riferimento AWS CLI .

  3. Se avete utilizzato il --apply-immediately parametro, monitorate lo stato del gruppo di replica utilizzando il AWS CLI describe-replication-group comando con il seguente parametro. Mentre lo stato è ancora impostato su modifica in corso, si potrebbe verificare un tempo di inattività inferiore al secondo per nodi in esecuzione su versioni 5.0.6 e successive e una breve interruzione di letture e scritture per versioni precedenti dal nodo primario mentre la voce DNS viene aggiornata.

    • --replication-group-id = il nome del gruppo di replica. Utilizzare questo parametro per descrivere un gruppo di replica particolare piuttosto che tutti i gruppi di replica.

    Per Linux, macOS o Unix:

    aws elasticache describe-replication-groups \ --replication-group-id my-replication-group

    Per Windows:

    aws elasticache describe-replication-groups ^ --replication-group-id my-replication-group

    Per ulteriori informazioni, vedere describe-replication-groupsnel AWS CLI Reference.

Il seguente processo ridimensiona il gruppo di replica dal tipo di nodo corrente a un nuovo tipo di nodo più grande utilizzando l'API. ElastiCache Per Redis OSS 5.0.5 e versioni successive, puoi scalare i cluster abilitati al failover automatico mentre il cluster continua a rimanere online e a soddisfare le richieste in arrivo. Sulla versione 4.0.10 e precedenti, si potrebbe verificare una breve interruzione di letture e scritture su versioni precedenti dal nodo primario mentre la voce DNS viene aggiornata.

Il tempo necessario per aumentare a un tipo di nodo più grande varia a seconda del tipo di nodo e della quantità di dati nel cluster di cache corrente.

Per scalare un Redis OSS Replication Group (API) ElastiCache
  1. Determina a quali tipi di nodi puoi scalare utilizzando l'ListAllowedNodeTypeModificationsazione ElastiCache API con il seguente parametro.

    • ReplicationGroupId : il nome del gruppo di replica. Utilizzare questo parametro per descrivere un gruppo di replica specifico piuttosto che tutti i gruppi di replica.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

    Per ulteriori informazioni, ListAllowedNodeTypeModifications consulta Amazon ElastiCache API Reference.

  2. Scala il tuo attuale gruppo di replica fino al nuovo tipo di nodo utilizzando l'azione ModifyRedplicationGroup ElastiCache API e con i seguenti parametri.

    • ReplicationGroupId : il nome del gruppo di replica.

    • CacheNodeType : Il nuovo tipo di nodo più grande di cluster di cache nel gruppo di replica. Questo valore deve essere uno dei tipi di istanza restituiti dall'operazione ListAllowedNodeTypeModifications nella fase 1.

    • CacheParameterGroupName – [Facoltativo] Utilizzare questo parametro se si usa reserved-memory per gestire la memoria prenotata del cluster. Specificare un gruppo di parametri di cache personalizzato che riserva la quantità di memoria corretta per il nuovo tipo di nodo. Se si sta utilizzando reserved-memory-percent è possibile omettere questo parametro.

    • ApplyImmediately : Impostato su true permette di applicare immediatamente il processo di dimensionamento verso il basso. Per posporre il processo di dimensionamento verticale alla successiva finestra di manutenzione, utilizzare ApplyImmediately=false.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.m3.2xlarge &CacheParameterGroupName=redis32-m3-2xl &ReplicationGroupId=myReplGroup &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

    Per ulteriori informazioni, ModifyReplicationGroup consulta Amazon ElastiCache API Reference.

  3. Se lo hai utilizzato ApplyImmediately=true, monitora lo stato del gruppo di replica utilizzando l'DescribeReplicationGroupsazione ElastiCache API con i seguenti parametri. Quando lo stato cambia da modifica in corso a disponibile, puoi iniziare a scrivere sul nuovo gruppo di replica ingrandito.

    • ReplicationGroupId = il nome del gruppo di replica. Utilizzare questo parametro per descrivere un gruppo di replica particolare piuttosto che tutti i gruppi di replica.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

    Per ulteriori informazioni, DescribeReplicationGroups consulta Amazon ElastiCache API Reference.