Extensification des clusters Redis OSS avec des répliques - Amazon ElastiCache (RedisOSS)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Extensification des clusters Redis OSS avec des répliques

Amazon ElastiCache fournit une prise en charge de la console, de la CLI et de l'API pour dimensionner votre groupe de réplication Redis OSS (mode cluster désactivé) vers le haut.

Lorsque le processus de mise à l'échelle est lancé, ElastiCache effectue les opérations suivantes :

  1. Il lance un groupe de réplication à l'aide du nouveau type de nœud.

  2. Il copie toutes les données du nœud principal actuel vers le nouveau nœud principal.

  3. Il synchronise les nouveaux réplicas en lecture avec le nouveau nœud principal.

  4. Il met à jour les entrées DNS afin qu'elles pointent vers les nouveaux nœuds. Ainsi, vous n'aurez plus besoin de mettre à jour les points de terminaison de votre application. Pour Redis OSS 5.0.5 et versions ultérieures, vous pouvez faire évoluer les clusters compatibles avec le basculement automatique pendant que le cluster continue de rester en ligne et de traiter les demandes entrantes. Sur les versions 4.0.10 ou antérieures, vous pouvez remarquer une brève interruption des lectures et des écritures sur les versions précédentes à partir du nœud primaire pendant que l'entrée DNS est mise à jour.

  5. Il supprime les anciens nœuds (CLI/API : groupe de réplication). Vous remarquerez une brève interruption (quelques secondes) des lectures et des écritures à partir des anciens nœuds car les connexions aux anciens nœuds seront déconnectées.

La durée de ce processus dépend de votre type de nœud et de la quantité de données dans votre cluster.

Comme indiqué dans le tableau suivant, votre opération de mise à l'échelle de Redis OSS est bloquée si une mise à niveau du moteur est planifiée pour la prochaine fenêtre de maintenance du cluster.

Opérations Redis OSS bloquées
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

Si vous avez une opération en suspens qui vous bloque, vous pouvez effectuer l'une des actions suivantes.

  • Planifiez votre opération de mise à l'échelle de Redis OSS pour la prochaine fenêtre de maintenance en décochant la case Appliquer immédiatement (utilisation de la CLI :--no-apply-immediately, utilisation de l'API :ApplyImmediately=false).

  • Attendez votre prochaine fenêtre de maintenance (ou après) pour effectuer votre opération de mise à l'échelle de Redis OSS.

  • Ajoutez la mise à niveau du moteur Redis OSS à cette modification du cluster de cache en cochant la case Appliquer immédiatement sélectionnée (utilisation de la CLI :--apply-immediately, utilisation de l'API :ApplyImmediately=true). Cela permet de débloquer votre opération de mise à l'échelle en provoquant une mise à jour du moteur à effectuer immédiatement.

Les sections suivantes décrivent comment redimensionner votre cluster Redis OSS avec des répliques à l'aide de la ElastiCache console, de l' AWS CLI API et de l' ElastiCache API.

Important

Si votre groupe de paramètres est utilisé reserved-memory pour réserver de la mémoire pour la surcharge de Redis OSS, avant de commencer le dimensionnement, assurez-vous de disposer d'un groupe de paramètres personnalisé qui réserve la bonne quantité de mémoire pour votre nouveau type de nœud. Vous pouvez aussi modifier un groupe de paramètres personnalisé de façon à ce qu'il utilise reserved-memory-percent et vous servir de ce groupe de paramètres pour votre nouveau cluster.

Si vous utilisez reserved-memory-percent, cette opération n'est pas nécessaire.

Pour plus d’informations, consultez Gestion de la mémoire réservée.

La durée nécessaire pour redimensionner la taille d'un type de nœud et passer à un type plus grand, varie selon le type de nœud et la quantité de données dans votre cluster de actuel.

Le processus suivant fait évoluer votre cluster avec des répliques de son type de nœud actuel vers un nouveau type de nœud plus grand à l'aide de la ElastiCache console. Pendant ce processus, une brève interruption des lectures et des écritures peut avoir lieu pour d'autres versions à partir du nœud primaire pendant que l'entrée DNS est mise à jour. Vous pouvez constater un temps d'arrêt inférieur à une seconde pour les nœuds s'exécutant sur les versions 5.0.6 et de l'ordre de quelques secondes pour les versions plus anciennes.

Pour étendre le cluster Redis OSS avec des répliques (console)
  1. Connectez-vous à la ElastiCache console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/elasticache/.

  2. Dans le volet de navigation, choisissez Redis OSS clusters

  3. Dans la liste des clusters, choisissez le cluster que vous souhaitez augmenter. Ce cluster doit exécuter le moteur Redis OSS et non le moteur Redis OSS en cluster.

  4. Sélectionnez Modifier.

  5. Dans l'assistant Modifier le cluster :

    1. Choisissez le type de nœud auquel vous souhaitez passer dans la liste Type de nœud. Notez que tous les types de nœuds ne sont pas disponibles pour la réduction de la capacité.

    2. Si vous utilisez reserved-memory pour gérer la mémoire, dans la liste Groupe de paramètres, choisissez le groupe de paramètres personnalisé qui réserve la quantité de mémoire nécessaire à votre nouveau type de nœud.

  6. Si vous souhaitez effectuer un processus de mise à l'échelle immédiatement, choisissez la case Apply immediately. Si la case Apply immediately est décochée, le processus de mise à l'échelle est effectué lors du créneau de maintenance suivant du cluster.

  7. Sélectionnez Modifier.

  8. Lorsque le statut du cluster passe de modifying à available, cela signifie que votre cluster est passé au nouveau type de nœud. Il n'est pas nécessaire de mettre à jour les points de terminaison dans votre application.

Le processus suivant met à l'échelle votre groupe de réplication à partir de son type de nœud actuel vers un nouveau type de nœud plus grand à l'aide de l' AWS CLI. Au cours de ce processus, ElastiCache (Redis OSS) met à jour les entrées DNS afin qu'elles pointent vers les nouveaux nœuds. Ainsi, vous n'aurez plus besoin de mettre à jour les points de terminaison de votre application. Pour Redis OSS 5.0.5 et versions ultérieures, vous pouvez faire évoluer les clusters compatibles avec le basculement automatique pendant que le cluster continue de rester en ligne et de traiter les demandes entrantes. Sur les versions 4.0.10 ou antérieures, vous pouvez remarquer une brève interruption des lectures et des écritures sur les versions précédentes à partir du nœud primaire pendant que l'entrée DNS est mise à jour.

La durée nécessaire pour remettre à l'échelle la taille d'un type de nœud et passer à un type plus grand, varie selon le type de nœud et la quantité de données dans votre cluster de actuel.

Pour étendre un groupe de réplication Redis OSS ()AWS CLI
  1. Déterminez les types de nœuds que vous pouvez augmenter en exécutant la AWS CLI list-allowed-node-type-modifications commande avec le paramètre suivant.

    • --replication-group-id – Le nom du groupe de réplication. Utilisez ce paramètre pour décrire un groupe de réplication particulier plutôt que tous les groupes de réplication.

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

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

    Le résultat de cette opération doit ressembler à ce qui suit (format 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" ] }

    Pour plus d'informations, consultez list-allowed-node-type-modifications dans la référence AWS CLI .

  2. Adaptez votre groupe de réplication actuel au nouveau type de nœud à l'aide de la AWS CLI modify-replication-group commande avec les paramètres suivants.

    • --replication-group-id : le nom du groupe de réplication.

    • --cache-node-type – Le nouveau type de nœud plus grand des clusters de cache dans ce groupe de réplication. Cette valeur doit correspondre à l'un des types d'instance renvoyés par la commande list-allowed-node-type-modifications lors de l'étape 1.

    • --cache-parameter-group-name – [Facultatif] Utilisez ce paramètre si vous avez recours à reserved-memory pour gérer la mémoire réservée de votre cluster. Spécifiez un groupe de paramètres de cache personnalisé qui réserve la quantité de mémoire nécessaire à votre nouveau type de nœud. Si vous utilisez reserved-memory-percent, vous pouvez omettre ce paramètre.

    • --apply-immediately : ce paramètre entraîne l'application immédiate du processus d'augmentation. Pour reporter l'opération de mise à l'échelle au créneau de maintenance suivant, utilisez --no-apply-immediately.

    Pour Linux, macOS ou 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

    Pour 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

    Le résultat de cette commande doit ressembler à ce qui suit (format 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": {} } }

    Pour plus d'informations, consultez modify-replication-group dans la référence AWS CLI .

  3. Si vous avez utilisé le --apply-immediately paramètre, surveillez l'état du groupe de réplication à l'aide de la AWS CLI describe-replication-group commande avec le paramètre suivant. Pendant que le statut est encore modification en cours, vous pouvez constater un temps d'arrêt inférieur à 1 seconde pour les nœuds s'exécutant sur les versions 5.0.6 et une brève interruption des lectures et des écritures pour les versions plus anciennes à partir du nœud primaire pendant que l'entrée DNS est mise à jour.

    • --replication-group-id – Le nom du groupe de réplication. Utilisez ce paramètre pour décrire un groupe de réplication particulier plutôt que tous les groupes de réplication.

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

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

    Pour plus d'informations, reportez-vous describe-replication-groupsà la section AWS CLI Référence.

Le processus suivant fait passer votre groupe de réplication de son type de nœud actuel à un nouveau type de nœud plus important à l'aide de l' ElastiCache API. Pour Redis OSS 5.0.5 et versions ultérieures, vous pouvez faire évoluer les clusters compatibles avec le basculement automatique pendant que le cluster continue de rester en ligne et de traiter les demandes entrantes. Sur les versions 4.0.10 ou antérieures, vous pouvez remarquer une brève interruption des lectures et des écritures sur les versions précédentes à partir du nœud primaire pendant que l'entrée DNS est mise à jour.

La durée nécessaire pour remettre à l'échelle la taille d'un type de nœud et passer à un type plus grand, varie selon le type de nœud et la quantité de données dans votre cluster de actuel.

Pour étendre un groupe de réplication Redis OSS (ElastiCache API)
  1. Déterminez les types de nœuds que vous pouvez augmenter à l'aide de l'ListAllowedNodeTypeModificationsaction d' ElastiCache API avec le paramètre suivant.

    • ReplicationGroupId : le nom du groupe de réplication. Utilisez ce paramètre pour décrire un groupe de réplication spécifique plutôt que tous les groupes de réplication.

    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>

    Pour plus d'informations, consultez ListAllowedNodeTypeModifications le Amazon ElastiCache API Reference.

  2. Adaptez votre groupe de réplication actuel au nouveau type de nœud à l'aide de l'action ModifyRedplicationGroup ElastiCache API et avec les paramètres suivants.

    • ReplicationGroupId : le nom du groupe de réplication.

    • CacheNodeType : le nouveau type de nœud plus grand des clusters de cache dans ce groupe de réplication. Cette valeur doit correspondre à l'un des types d'instance renvoyés par l'action ListAllowedNodeTypeModifications lors de l'étape 1.

    • CacheParameterGroupName : [Facultatif] Utilisez ce paramètre si vous avez recours à reserved-memory pour gérer la mémoire réservée de votre cluster. Spécifiez un groupe de paramètres de cache personnalisé qui réserve la quantité de mémoire nécessaire à votre nouveau type de nœud. Si vous utilisez reserved-memory-percent, vous pouvez omettre ce paramètre.

    • ApplyImmediately : lorsqu'il est défini sur true, il entraîne l'application immédiate du processus d'augmentation. Pour reporter le processus de mise à l'échelle au créneau de maintenance suivant, utilisez 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>

    Pour plus d'informations, consultez ModifyReplicationGroup le Amazon ElastiCache API Reference.

  3. Si vous l'avez utilisé ApplyImmediately=true, surveillez l'état du groupe de réplication à l'aide de l'DescribeReplicationGroupsaction ElastiCache API avec les paramètres suivants. Lorsque le statut passe de modifying à available, cela signifie que vous pouvez commencer à écrire sur votre nouveau groupe de réplication redimensionné.

    • ReplicationGroupId – Le nom du groupe de réplication. Utilisez ce paramètre pour décrire un groupe de réplication particulier plutôt que tous les groupes de réplication.

    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>

    Pour plus d'informations, consultez DescribeReplicationGroups le Amazon ElastiCache API Reference.