Configuration d’un cluster Redis évolutif et à haute disponibilité

Configuration de mode, sécurité et provisionnement du cluster Amazon ElastiCache for Redis

Dans ce tutoriel, vous allez apprendre comment créer et configurer un cluster Redis à l’aide d’ElastiCache for Redis. Une fois le mode cluster activé, votre cluster Redis bénéficiera d'une meilleure évolutivité et d'une haute disponibilité. Vous pouvez commencer à petite échelle et effectuer le scaling des données Redis à mesure que votre application se développe. Vous pouvez également augmenter votre capacité de lecture en configurant des instances dupliquées dans différentes zones de disponibilité. En suivant ce tutoriel, vous allez également apprendre quelques bonnes pratiques pour les déploiements de Redis Cluster.

Le très vaste réseau de clients Redis est compatible avec les fonctionnalités du mode cluster. Cela facilite énormément le traitement des données partitionnées, qui devient rend plus fiable puisque les clients peuvent suivre l'emplacement des hashslots dans un cache local. Les performances du système dans son ensemble s’en trouvent améliorées.

Le nœud ElastiCache créé dans ce tutoriel est admissible à l’offre gratuite.

Connectez-vous au tableau de bord Amazon ElastiCache

Conditions requises

À un certain niveau du tutoriel, vous devrez vous connecter à votre cluster Redis afin de découvrir certaines de ses fonctionnalités. Pour cela, il vous faudra accéder à une instance EC2 avec un client Redis installé. Si vous avez déjà une instance EC2 avec un client Redis installé, vous pouvez passer à l'étape 1. Dans le cas contraire, connectez-vous à votre instance Amazon EC2 et suivez les instructions ci-dessous pour installer un client Redis.

Si vous n'avez pas de compilateur C disponible, installez-en un en exécutant :

$ sudo yum install gcc

Téléchargez et compilez 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

Vous êtes maintenant prêt à démarrer le tutoriel.

À propos de ce tutoriel
Durée 10 - 20 minutes                                           
Coût Admissible à l’offre gratuite
Cas d’utilisation Scaling, haute disponibilité, applications en temps réel
Produits AWS ElastiCache for Redis, version gratuite d’AWS
Public ciblé Développeurs
Niveau Débutant
Dernière mise à jour 05 Juin 2019

Étape 1 : Ouvrez le tableau de bord ElastiCache

Ouvrez le tableau de bord ElastiCache, puis :

1.1 – Dans le coin supérieur droit, sélectionnez la région où vous souhaitez lancer le cluster Redis.

1.2 — Cliquez sur « Démarrer maintenant ».

Étape 2 : Créez votre cluster Redis

2.1 — Sélectionnez « Redis » en tant que moteur de cluster.

2.2 — Cochez « Mode du cluster activé ».

Étape 3 : Configurer les paramètres de Redis

3.1 — Choisissez un nom pour votre cluster Redis, par exemple « elc-tutorial ».

3.2 — Indiquez cache.t2.micro comme type de nœud. Ce type de nœud convient à ce tutoriel, mais dans le cas d’un cluster de production, la taille du nœud doit dépendre de votre charge de travail ; commencez par les familles d'instances m5 ou r5.

3.3 — Sous le champ Nombre de partitions, sélectionnez 3. Les données seront alors divisées en trois nœuds maîtres.

3.4 — Dans Instances dupliquées par partition, sélectionnez 2. Chaque nœud maître aura deux instances dupliquées. En cas de défaillance, un basculement automatique sera déclenché et l’une des deux instances dupliquées reprendra le rôle du nœud maître.

3.5 — Sélectionnez un groupe de sous-réseaux. Pour en savoir plus sur les groupes de sous-réseaux, consultez la documentation.

Étape 4 : Configurer les paramètres avancés de Redis

4.1 — Cochez la case « Multi-AZ avec basculement automatique ».

Chaque nœud maître sera créé dans une zone de disponibilité différente, et chacune de ses instances dupliquées sera également affectée à une zone de disponibilité différente. Ceci est une bonne pratique pour améliorer la fiabilité.

Conservez les valeurs par défaut dans les autres champs.

Étape 5 : Configurer les paramètres de sécurité

Dans cet exemple, nous n'utiliserons pas de chiffrement, mais retenez que vous pouvez le configurer pour les données au repos et les données en transit.

5.1 — Sélectionnez un groupe de sécurité pour votre cluster Redis.

Important : assurez-vous que le groupe de sécurité que vous choisissez autorise les connexions TCP entrantes sur le port 6379. Si ce n'est pas le cas, vous ne pourrez pas vous connecter à vos nœuds Redis.

Étape 6 : Importer des données dans le cluster

Dans cet exemple, nous ne chargerons aucun fichier RDB d'amorçage. Nous pouvons donc sauter cette étape de configuration. Cependant, gardez à l'esprit que cette option est disponible.

Étape 7 : Configurer des sauvegardes

Dans la plupart des scénarios, il est très important d’effectuer des sauvegardes quotidiennes. Nous vous recommandons de les activer en prévoyant une durée de conservation qui laisse suffisamment de temps pour agir en cas d'incident. Nous n’utiliserons pas de sauvegardes dans cet atelier.

7.1 — Décochez « Activer les sauvegardes automatiques ».

Étape 8 : Paramètres de maintenance

8.1 — Spécifiez un intervalle de maintenance adapté à vos besoins.

Choisissez ici un horaire et un jour où votre application a une faible charge de travail. Pour nos besoins actuels, vous pouvez indiquer « Aucune préférence ».

Étape 9 : Vérification et création

Après une vérification rapide de tous les champs du formulaire, vous pouvez cliquer sur « Créer ».

9.1 — Cliquez sur « Créer ».

Un cluster Redis s’initialise et une fois qu'il devient « disponible », vous pouvez passer à l'étape 10.

Si vous choisissez d’utiliser Amazon CLI, exécutez la commande ci-dessous pour créer le cluster Redis en une fois :

Si vous choisissez d’utiliser Amazon CLI, exécutez la commande ci-dessous pour créer le cluster Redis en une fois :

$ 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"

Pour l'argument du champ --security-group-ids, remplacez sg-value par l'ID du groupe de sécurité que vous voulez utiliser.

Pour l'argument du champ --cache-subnet-group-name, remplacez sn-value par le nom d'un groupe de sous-réseaux. Si vous devez créer un groupe de sous-réseaux, exécutez la commande suivante :

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

La valeur des sn-ids doit être une liste d'ID de sous-réseaux.

Si vous choisissez d’utiliser l'API d'Amazon, créez un cluster Redis à l’aide de la requête ci-dessous :

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>

Dans la requête précédente, indiquez des valeurs dans les champs Version, Timestamp et X-Amz-Credential.

Étape 10 : Se connecter à Redis

Trouvez le point de terminaison de la configuration de Redis Cluster.

10.1 — Cliquez sur la flèche pour afficher les détails de Redis Cluster.

10.2 — Copiez le point de terminaison de la configuration.

Dans les exemples, utilisez le nom d'hôte du point de terminaison de votre configuration chaque fois qu'un point de terminaison est mentionné.

10.4 — Utilisez l'utilitaire redis-cli pour vous connecter à votre nœud Redis.

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

10.5 — Testez la connexion à l’aide d’un PING.

endpoint:6379> PING
	PONG

Étape 11 : Déclencher un basculement

Vous avez maintenant un cluster Redis opérationnel et qui fonctionne correctement. Une des caractéristiques du mode cluster est qu’en cas de défaillance d’un nœud, le cluster peut s’auto-réparer. Pour vous en assurer, déclenchez un basculement manuel. Une instance dupliquée avec accès en lecture sera sélectionnée pour reprendre le rôle du maître, et une fois le basculement exécuté, vous pourrez vous connecter au nouveau maître. Dans le même temps, une nouvelle instance dupliquée sera automatiquement ajoutée, de sorte que le cluster disposera toujours d'un maître et de deux instances dupliquées.

Vérifiez le rôle du nœud à l’aide du point de terminaison de l’étape 10.

11.1 - Vérifiez le rôle du point de terminaison.

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

Vous souhaitez vous connecter au maître. Si vous ne vous êtes pas connecté à un maître, essayez avec un autre point de terminaison. Vous pouvez essayer jusqu’à trois fois.

Une fois que vous avez localisé le nœud maître :

11.2 — Sélectionnez l'un des nœuds, cliquez sur « Action » et sélectionnez « Failover primary » (Basculement le principal).

Lisez le message pour comprendre ce qui se passe, puis cliquez sur « Continuer ». L'une des instances dupliquées deviendra le nouveau maître, et le nombre d’instances dupliquées par maître restera inchangé. Vous pouvez exécuter la commande CLUSTER NODES pour vérifier ce qui se passe.

Étape 12 : Suppression de votre cluster

Pour conclure cette expérience, vous allez apprendre à supprimer votre cluster Redis lorsqu'il n'est plus nécessaire.

Pour supprimer votre cluster Redis, accédez au tableau de bord ElastiCache et suivez les instructions suivantes :

12.1 — Sélectionnez « Redis » dans le volet de gauche.

Une liste de tous vos clusters Redis va s’afficher.

12.2 — Sélectionnez le cluster Redis que vous avez créé pour ce tutoriel.

12.3 — Cliquez sur « Supprimer ».

12.4 – Vous serez invité à créer une sauvegarde finale. C'est généralement une bonne idée, mais cela n'est pas utile aux fins du présent tutoriel. Sélectionnez « Non » et cliquez sur « Supprimer ».

Le statut de votre cluster passera à « Suppression en cours ».

Félicitations

Vous venez de créer un cluster Redis avec le mode cluster activé. Les nœuds ont été répartis dans les zones de disponibilité et configurés avec des basculements automatiques. Vous avez également appris quelques bonnes pratiques pour les déploiements de Redis Cluster.

Ce didacticiel vous a-t-il été utile ?

En savoir plus

Si vous souhaitez en savoir plus sur Redis Cluster, lisez l'article Redis Cluster 101 du blog. Pour accéder à plus d’instructions de démarrage, à un guide du développeur et à des blogs techniques sur les cas d'utilisation, consultez notre page de ressources.

Choisir la bonne taille de nœud

Il peut sembler difficile de déterminer la taille de vos nœuds Redis. Nous avons élaboré quelques directives qui vous aideront à choisir la bonne taille de nœud en fonction de vos besoins.

Stratégies de mise en cache

Enfin, vous pouvez en savoir plus sur les stratégies de mise en cache et les bonnes pratiques pour améliorer les performances et la fiabilité.