Configurazione di scalabilità e alta disponibilità per un cluster Redis

Impostazione della modalità cluster di Amazon ElastiCache for Redis, configurazione, sicurezza e provisioning

In questo tutorial, scoprirai come creare e configurare un cluster Redis con ElastiCache per Redis. Attivando la modalità cluster, potrai aumentare la scalabilità e l’elevata disponibilità del tuo cluster Redis. Puoi iniziare con piccoli passi e scalare facilmente i tuoi dati Redis man mano che la tua applicazione cresce e, impostando repliche in diverse zone di disponibilità, puoi anche aumentare la tua capacità di lettura. Questo tutorial ti permetterà anche di conoscere le best practice per le distribuzioni di un cluster Redis.

Vi è un ecosistema estremamente ricco di clienti Redis con supporto per funzionalità in modalità cluster. Ciò permette di semplificare ulteriormente il lavoro con dati condivisi e di aumentarne l’affidabilità, poiché gli utenti possono tenere traccia della posizione degli hashslot in una cache locale, quindi migliorando le prestazioni dell’intero sistema.

Il nodo ElastiCache creato in questo tutorial è idoneo per il piano gratuito.

Accedi al pannello di controllo di Amazon ElastiCache »

Requisiti

A un certo punto durante questo tutorial, dovrai connetterti al tuo cluster Redis per poter provare in prima persona alcune delle sue funzionalità. Ciò significa che dovrai avere accesso a un’istanza EC2 con un client Redis installato. Se disponi già di un’istanza EC2 con un client Redis installato, puoi passare al Passaggio 1. Altrimenti, connettiti alla tua istanza Amazon EC2 e segui le istruzioni di seguito per installare un client Redis.

Se non disponi di un C compiler, installane uno eseguendo il seguente comando:

$ sudo yum install gcc

Scarica e compila un client Redis:

$ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean  # Ubuntu systems only
$ make

Ora sei pronto per iniziare il tutorial.

Informazioni sul tutorial
Durata 10 - 20 minuti                                           
Costo Idoneo per Piano gratuito
Caso d'uso Dimensionamento, alta disponibilità, applicazione in tempo reale
Prodotti AWS ElastiCache for Redis, piano gratuito AWS
Destinatari Sviluppatori
Livello Principiante
Ultimo aggiornamento 05 Giugno 2019

Passaggio 1: Accedi al pannello di controllo di ElastiCache

1.1 — Nell’angolo superiore destro, seleziona la regione in cui vuoi lanciare il cluster Redis.

1.2 — Fai clic su “Get Started Now” (inizia ora).

Passaggio 2: Crea il tuo cluster Redis

2.1 - Seleziona "Redis" come motore del cluster.

2.2 — Spunta la casella “Cluster Mode enabled” (modalità cluster attivata).

Passaggio 3: Configura le impostazioni di Redis

3.1 - Scegli un nome per il cluster Redis, per esempio "elc-tutorial".

3.2 - Cambia il Tipo di nodo in cache.t2.micro. Questo tipo di nodo è adeguato per questo tutorial, ma per un cluster di produzione le dimensioni del nodo dipendono dal carico di lavoro ed è consigliabile iniziare con le famiglie di istanze m5 o r5.

3.3 — Nella sezione “Number of Shards” (numero di frammenti), seleziona 3. Ciò significa che i dati verranno suddivisi in tre nodi master diversi.

3.4 — Nella sezione “Replicas per Shard” (repliche per frammento), seleziona 2. Ciò significa che il nodo master avrà due repliche. Se l’operazione non riesce, scatta un failover automatico e una delle repliche assume il ruolo del nodo master.

3.5 - Seleziona un Gruppo di sottoreti. Per ulteriori informazioni sui gruppi di sottoreti, consulta la documentazione.

Passaggio 4: Configura le impostazioni avanzate di Redis

4.1 - Seleziona la casella "Multi-AZ with Auto-Failover” (Multi-AZ con failover automatico).

Ciascun nodo master verrà creato in una zona di disponibilità differente e anche ciascuna delle sue repliche verrà assegnata a diverse zone di disponibilità. Questa è una best practice finalizzata a migliorare l’affidabilità.

Negli altri campi, puoi lasciare invariate le impostazioni predefinite.

Passaggio 5: Configurazione delle impostazioni di sicurezza

Per questo esempio non utilizzeremo la crittografia, ma tieni presente che puoi configurarla sia per i dati inattivi sia per i dati in transito.

5.1 - Seleziona un Gruppo di sicurezza per il cluster Redis.

Questo è importante: assicurati che il gruppo di sicurezza selezionato consenta connessioni TCP in entrata sulla porta 6379. In caso contrario, non sarai in grado di collegarti ai nodi Redis.

Passaggio 6: Importazione dei dati nel cluster

Ai fini di questo esempio, non caricheremo alcun file RDB seed per cui possiamo saltare questa fase di configurazione. Tieni però presente che questa opzione è disponibile.

Passaggio 7: Configurazione dei backup

I backup quotidiani sono importanti per la maggior parte dei casi d’uso e consigliamo vivamente di attivarli con un periodo di archiviazione che dia tempo a sufficienza per agire in caso di problemi. Ai fini di questo tutorial, non utilizzeremo nessun backup.

7.1 - Deseleziona "Enable automatic backups” (Abilita backup automatici).

Passaggio 8: Impostazioni di manutenzione

8.1 - Specifica una finestra di manutenzione adatta alle tue esigenze.

Con questa opzione puoi specificare l’ora e il giorno in cui la tua applicazione ha un carico di lavoro ridotto. Ai fini di questo tutorial, possiamo selezionare "Nessuna preferenza".

Passaggio 9: Rivedi e crea

Dopo una rapida revisione di tutti i campi nel modulo, puoi fare clic su “Create” (crea).

9.1 - Fai clic su "Create" (crea).

Sarà inizializzato un cluster Redis e non appena diventa “disponibile”, sarai in grado di proseguire alla passaggio 10.

Se preferisci utilizzare l’interfaccia a riga di comando (CLI) Amazon, il comando di seguito ti permetterà di creare direttamente un cluster Redis.

Se preferisci utilizzare l’interfaccia a riga di comando (CLI) Amazon, il comando di seguito ti permetterà di creare direttamente un cluster Redis.

$ aws elasticache create-replication-group \
--replication-group-id elc-tutorial \
--replication-group-description "Tutorial example" \
--num-node-groups 3 \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis5.0.cluster.on \
--engine redis \
--engine-version 5.0.3 \
--cache-subnet-group-name sn-value \
--security-group-ids sg-value \
--node-group-configuration \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1a','us-east-1b',Slots=10922-16383"

Per l’argomento di --security-group-ids, dovrai sostituire sg-value con l’ID del Gruppo di sicurezza che desideri utilizzare.

Per l’argomento di --cache-subnet-group-name, dovrai sostituire sn-value con il nome del Gruppo di sottoreti. Se hai bisogno di creare un Gruppo di sottoreti, utilizza il comando di seguito:

$ aws elasticache create-cache-subnet-group \
--cache-subnet-group-name elc-tutorial-subnet \
--cache-subnet-group-description "Tutorial Subnet Group" \
--subnet-ids sn-ids

Il valore di sn-ids deve essere una lista di ID di sottoreti.

Se preferisci utilizzare l’API Amazon, la richiesta di seguito ti permetterà di creare un cluster Redis:

https://elasticache.us-east-1.amazonaws.com/
?Action=CreateReplicationGroup 
&CacheParameterGroup=default.redis5.0.cluster.on
&Engine=redis
&EngineVersion=5.0.3
&ReplicationGroupDescription=Tutorial%20example
&ReplicationGroupId=elc-tutorial
&NumNodeGroups=3
&PrimaryClusterId=elc-primary
&ReplicasPerNodeGroup=2
&Version=<version>
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=<timestamp>
&X-Amz-Credential=<credential>

Nella richiesta precedente avrai bisogno di fornire i valori per la versione, la marca temporale e le credenziali X-Amz.

Passaggio 10: Connettersi a Redis

Trova l’endpoint per la configurazione del tuo cluster Redis.

10.1 — Fai clic sulla freccia per visualizzare i dettagli del cluster Redis.

10.2 — Copia l’endpoint di configurazione.

Negli esempi, ogni volta che si cita un endpoint devi utilizzare il nome host del tuo endpoint nella configurazione.

10.4 — Utilizza l’utility redis-cli per connetterti al tuo nodo Redis.

$ ./src/redis-cli -c -h endpoint

10.5 — Testa la connessione con un PING.

endpoint:6379> PING
	PONG

Passaggio 11: Fai partire un failover

Ora hai a disposizione un cluster Redis funzionante e in perfetto stato. Una delle funzionalità della modalità cluster consiste nel fatto che, se un nodo cede, il cluster può ripararsi in modo indipendente. Per poter testare che la funzionalità funzioni correttamente, dovrai attivare un failover manuale. Succederà ciò che segue: verrà selezionata una replica di lettura che verrà utilizzata con il ruolo di replica master e, una volta eseguito il failover, potrai connetterti a quest’ultima. Nel frattempo, una nuova copia verrà aggiunta automaticamente in modo che il cluster avrà ancora un master e due copie.

Utilizzando l’endpoint dalla fase 10, verifica il ruolo del nodo.

11.1 — Verifica il ruolo dell’endpoint.

	endpoint:6379> ROLE
	1) "master"
 	...

Vuoi collegarti al master. Se non ti sei collegato al master, prova con un endpoint diverso. Hai tre possibilità per fare la cosa giusta.

Una volta localizzato il nodo master:

11.2 — Seleziona qualsiasi nodo, fai clic su “Azione” e seleziona “Failover originale”.

Leggi il messaggio per capire cosa sta succedendo e quindi fai clic su “Continua”. Una delle copie diventerà il nuovo master e il numero di copie per master verrà ripristinato. Puoi utilizzare il comando CLUSTER NODES per verificare cosa sta succedendo.

Passaggio 12: Eliminazione del cluster

Per terminare questa esercitazione, scoprirai come eliminare il Redis Cluster quando non è più necessario.

Per eliminare il Redis Cluster, vai al pannello di controllo di ElastiCache e segui queste istruzioni:

12.1 – Seleziona “Redis” nel riquadro sinistro.

Questo mostra un elenco di tutti i cluster Redis.

12.2 – Seleziona il cluster Redis che hai creato per questo tutorial.

12.3 – Fai clic su “Delete” (elimina).

12.4 – Ti verrà chiesto se desideri creare un backup finale. Solitamente è una buona idea, ma ai fini di questo tutorial non è necessario. Selezionare "No" e fare clic su "Delete" (Elimina).

Lo stato del cluster cambierà in “eliminazione in corso”.

Complimenti

Hai creato un cluster Redis con la modalità cluster attivata. Questi nodi verranno distribuiti nelle zone di disponibilità e configurati con failover automatico. Inoltre, hai imparato alcune delle best practice per le distribuzioni dei cluster Redis.

Questo tutorial è stato utile?

Ulteriori informazioni

Se desideri ottenere maggiori informazioni sui cluster Redis, leggi il post del blog Redis Cluster 101. Per ulteriori materiali per cominciare a utilizzare Redis, la guida per sviluppatori e blog tecnici sui casi d’uso, visita la nostra pagina delle risorse.

Scegli la dimensione corretta per il tuo nodo

Determinare la dimensione dei tuoi nodi Redis potrebbe sembrare complicato. Quindi, abbiamo creato delle linee guida per aiutarti a scegliere la giusta dimensione per i tuoi nodi in base alle tue necessità.

Strategie di caching

Infine, puoi ottenere maggiori informazioni sulle strategie e best practice di caching per migliorare le prestazioni e l’affidabilità.