Mise à niveau des versions de moteur
Vous pouvez contrôler si et quand le logiciel conforme au protocole qui alimente votre cluster de cache est mis à niveau vers de nouvelles versions prises en charge par ElastiCache. Ce niveau de contrôle permet de maintenir la compatibilité avec des versions spécifiques, de tester les nouvelles versions avec votre application avant le déploiement en production et de réaliser des mises à niveau en fonction de vos propres conditions et délais.
Comme les mises à niveau de version peuvent présenter un risque en termes de compatibilité, elles ne se produisent pas automatiquement. Vous devez les initier.
Vous lancez les mises à niveau de version du moteur dans votre cluster ou groupe de réplication en le modifiant et en spécifiant une nouvelle version de moteur. Pour plus d'informations, consultez les ressources suivantes :
Considérations relatives aux mises à niveau
Tenez compte des éléments suivants lors du choix de la mise à niveau :
La gestion de la version du moteur est conçue afin que vous ayez autant de contrôle que possible sur le déroulement de la correction. Cependant, ElastiCache se réserve le droit de corriger votre cluster en votre nom dans l'éventualité improbable d'une faille de vulnérabilité critique dans le système ou le logiciel du cache.
À partir de Redis 6.0, ElastiCache for Redis offrira une seule version pour chaque version mineure de Redis OSS, plutôt que de proposer plusieurs versions de correctifs.
À partir de la version 5.0.6 du moteur Redis, vous pouvez mettre à niveau la version de votre cluster avec une interruption minimale. Le cluster est disponible pour la lecture pendant toute la mise à niveau et reste disponible pour l'écriture pendant la majeure partie de la mise à niveau, sauf durant l'opération de basculement, qui dure quelques secondes.
Vous pouvez également mettre à niveau vos clusters ElastiCache avec des versions antérieures à 5.0.6. Le processus impliqué est le même, mais peut entraîner un temps de basculement plus long pendant la propagation DNS (30 s-1 mn).
-
À compter de la version Redis 7, ElastiCache for Redis prend en charge le basculement entre Redis (mode cluster désactivé) et Redis (mode cluster activé).
-
Le processus de mise à niveau du moteur Amazon ElastiCache for Redis est conçu pour optimiser la conservation de vos données existantes et nécessite une réplication Redis réussie.
-
Lors de la mise à niveau du moteur, ElastiCache for Redis interrompt les connexions client existantes. Pour minimiser les temps d'arrêt lors des mises à niveau du moteur, nous vous recommandons de mettre en œuvre les bonnes pratiques pour les clients Redis concernant les nouvelles tentatives après erreur et les backoffs exponentiels, ainsi que les bonnes pratiques pour minimiser les interruptions pendant la maintenance.
-
Vous ne pouvez pas effectuer une mise à niveau directe de Redis (mode cluster désactivé) vers Redis (mode cluster activé) lorsque vous mettez à niveau votre moteur. La procédure suivante décrit comment effectuer une mise à niveau de Redis (mode cluster désactivé) vers Redis (mode cluster activé).
Pour effectuer une mise à niveau d'un moteur Redis (mode cluster désactivé) vers Redis (mode cluster activé)
-
Effectuez une sauvegarde de votre cluster ou de votre groupe de réplication Redis (mode cluster désactivé). Pour de plus amples informations, veuillez consulter Réalisation de sauvegardes manuelles.
-
Utilisez cette sauvegarde pour créer et alimenter un cluster Redis avec une partition (groupe de nœuds). Spécifiez la nouvelle version du moteur et activez le mode de cluster lors de la création du cluster ou du groupe de réplication. Pour de plus amples informations, veuillez consulter Ensemencement d'un nouveau cluster avec une sauvegarde créée en externe.
-
Supprimez l'ancien cluster ou groupe de réplication Redis (mode cluster désactivé). Pour plus d'informations, consultez Suppression d'un cluster ou Suppression d'un groupe de réplication.
-
Mettez à l'échelle le nouveau cluster ou groupe de réplication Redis en fonction du nombre de partitions (groupes de nœuds) dont vous avez besoin. Pour plus d'informations, consultez Mise à l'échelle des clusters dans Redis (Mode Cluster activé)
-
-
Lors de la mise à niveau des versions majeures du moteur, par exemple de 5.0.6 à 6.0, vous devez également choisir un nouveau groupe de paramètres compatible avec la nouvelle version du moteur.
-
Pour les clusters Redis individuels et les clusters avec Multi-AZ désactivé, nous vous conseillons de libérer suffisamment de mémoire pour Redis comme décrit dans S'assurer d'avoir suffisamment de mémoire pour créer un instantané Redis. Dans ce cas, le réplica principal n'est pas disponible pour traiter les demandes de service pendant la mise à niveau.
-
Pour les clusters Redis avec Multi-AZ activé, en plus de ce qui est indiqué précédemment, nous vous conseillons aussi de planifier les mises à niveau de moteur pendant les périodes où le trafic d'écritures entrantes est faible. Lors d'une mise à niveau vers Redis 5.0.6 ou une version ultérieure, le cluster principal reste disponible pour les requêtes de service survenant pendant le processus de mise à niveau.
Les clusters et les groupes de réplication avec plusieurs partitions sont traités et soumis à des correctifs comme suit :
-
Toutes les partitions sont traitées en parallèle. Une seule opération de mise à niveau à la fois est effectuée sur une partition.
-
Dans chaque partition, tous les réplicas sont traités avant le réplica principal. S'il y a moins de réplicas dans une partition, le réplica principal de cette partition peut être traité avant que le traitement des réplicas des autres partitions ne soit terminé.
-
Dans toutes les partitions, les nœuds principaux sont traités en séries. Un seul nœud principal est mis à niveau à la fois.
-
-
Si les chiffrements sont activés sur votre cluster ou votre groupe de réplication actuel, vous ne pouvez pas effectuer de mise à niveau vers une version du moteur ne prenant pas en charge le chiffrement, comme par exemple de 3.2.6 vers 3.2.10.
Comment mettre à niveau les versions de moteur
Vous initiez des mises à niveau de version dans votre cluster ou groupe de réplication en le modifiant à l'aide de la console ElastiCache, de la AWS CLI ou de l'API ElastiCache et en spécifiant une version de moteur plus récente. Pour plus d'informations, consultez les rubriques suivantes.
Comment modifier des clusters et des groupes de réplication | |
---|---|
Clusters | Groupes de réplication |
Utilisation de AWS Management Console | Utilisation de la AWS Management Console |
Utilisation de AWS CLI | Utilisation de la AWS CLI |
Utilisation de l'API ElastiCache | Utilisation de l'API ElastiCache |
Résolution des mises à niveau du moteur Redis bloquées
Comme illustré dans le tableau suivant, la mise à niveau du moteur Redis est bloquée si une opération de dimensionnement est en cours.
Opérations en suspens | Opérations bloquées |
---|---|
Mise à l'échelle ascendante | Mise à niveau du moteur |
Mise à niveau du moteur | Mise à niveau du moteur |
Augmentation et mise à niveau du moteur | Mise à niveau du moteur |
Mise à niveau du moteur |
Pour résoudre une mise à niveau du moteur Redis bloquée
Effectuez l'une des actions suivantes :
-
Planifiez votre opération de mise à niveau du moteur Redis au cours de la prochaine fenêtre de maintenance en désélectionnant la case à cocher Apply immediately (Appliquer immédiatement).
Avec la CLI, utilisez
--no-apply-immediately
. Avec l'API, utilisezApplyImmediately=false
. -
Patientez jusqu'à votre prochaine fenêtre de maintenance (ou la suivante) pour effectuer votre opération de mise à niveau du moteur Redis.
-
Ajoutez l'opération d'augmentation de Redis pour cette modification de cluster en cochant la case à cocher Apply immediately (Appliquer immédiatement).
Avec la CLI, utilisez
--apply-immediately
. Avec l'API, utilisezApplyImmediately=true
.Cette approche annule efficacement la mise à niveau du moteur lors de la prochaine fenêtre de maintenance en l'effectuant immédiatement.
-