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.
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
Apri il pannello di controllo di ElastiCache, quindi:
Passaggio 3: Configura le impostazioni di Redis
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.
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.
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.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.
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.
Fasi successive consigliate
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à.