Mise à l'échelle ElastiCache pour Redis - Amazon ElastiCache pour Redis

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.

Mise à l'échelle ElastiCache pour Redis

Mise à l'échelle ElastiCache sans serveur

ElastiCache Serverless s'adapte automatiquement au trafic de votre charge de travail à mesure qu'il augmente ou diminue. Pour chaque cache ElastiCache sans serveur, suit ElastiCache en permanence l'utilisation des ressources telles que le processeur, la mémoire et le réseau. Lorsque l'une de ces ressources est limitée, ElastiCache Serverless évolue en ajoutant une nouvelle partition et en redistribuant les données vers la nouvelle partition, sans aucune interruption de service pour votre application. Vous pouvez surveiller les ressources consommées par votre cache en CloudWatch surveillant la BytesUsedForCache métrique pour le stockage des données du cache et ElastiCacheProcessingUnits (ECPU) pour l'utilisation du calcul.

Définition de limites de mise à l’échelle pour gérer les coûts

Vous pouvez choisir de configurer une utilisation maximale à la fois du stockage des données du cache et de l’ECPU/seconde pour votre cache afin de contrôler les coûts du cache. Cela garantira que l’utilisation de votre cache ne dépassera jamais l’utilisation maximale configurée.

Si vous définissez une limite maximale de mise à l’échelle, votre application risque de voir les performances du cache diminuer lorsque celui-ci atteint la limite maximale. Lorsque vous définissez un maximum de stockage de données en cache et que votre stockage de données en cache atteint le maximum, ElastiCache les données de votre cache dont la durée de vie (TTL) est définie commencent à être expulsées, en utilisant la logique LRU. Si aucune donnée ne peut être expulsée, les demandes d’écriture de données supplémentaires recevront un message d’erreur OOM (mémoire insuffisante). Lorsque vous définissez un maximum d'ECPU/seconde et que l'utilisation du calcul de votre charge de travail dépasse cette valeur, ElastiCache les demandes Redis commencent à être limitées.

Si vous définissez une limite maximale sur BytesUsedForCache ouElastiCacheProcessingUnits, nous vous recommandons vivement de configurer une CloudWatch alarme à une valeur inférieure à la limite maximale afin que vous soyez averti lorsque votre cache fonctionne à proximité de ces limites. Nous vous recommandons de définir une alarme à 75 % de la limite maximale que vous avez définie. Consultez la documentation pour savoir comment configurer les CloudWatch alarmes.

Pré-dimensionnement avec Serverless ElastiCache

ElastiCache Prédimensionnement sans serveur

Avec le prédimensionnement, également appelé préchauffage, vous pouvez définir des limites minimales prises en charge pour votre ElastiCache cache. Vous pouvez définir ces minimums pour les unités de ElastiCache traitement (eCPU) par seconde ou pour le stockage de données. Cela peut être utile pour préparer les événements de mise à l'échelle prévus. Par exemple, si une société de jeux prévoit une multiplication par 5 du nombre de connexions dès la première minute de lancement de son nouveau jeu, elle peut préparer son cache pour ce pic d'utilisation significatif.

Vous pouvez effectuer un pré-dimensionnement à l'aide de la ElastiCache console, de la CLI ou de l'API. ElastiCache Serverless met à jour les ECPUS/seconde disponibles sur le cache dans les 60 minutes et envoie une notification d'événement lorsque la mise à jour de la limite minimale est terminée.

Comment fonctionne le pré-dimensionnement

Lorsque la limite minimale d'ECPUS/seconde ou de stockage de données est mise à jour via la console, la CLI ou l'API, cette nouvelle limite est disponible dans un délai d'une heure. ElastiCache Serverless prend en charge 30 000 ECPUs/seconde sur un cache vide, et jusqu'à 90 000 ECPUs/s lors de l'utilisation de la fonction Read from Replica. ElastiCache peut doubler l'eCPUS/seconde toutes les 10 à 12 minutes. Cette vitesse de mise à l'échelle est suffisante pour la plupart des charges de travail. Si vous prévoyez qu'un événement de dimensionnement à venir pourrait dépasser ce taux, nous vous recommandons de définir le nombre minimal d'eCPUs/seconde par rapport au pic d'eCPUs/seconde que vous attendez au moins 60 minutes avant l'événement de pointe. Dans le cas contraire, l'application risque de connaître une latence élevée et un ralentissement des demandes.

Une fois la mise à jour de la limite minimale terminée, ElastiCache Serverless commencera à vous mesurer le nouveau nombre minimum d'eCPU par seconde ou le nouveau minimum de stockage. Cela se produit même si votre application n'exécute pas de requêtes dans le cache ou si votre utilisation du stockage de données est inférieure au minimum. Lorsque vous abaissez la limite minimale par rapport à son paramètre actuel, la mise à jour est immédiate, de sorte que ElastiCache Serverless commence immédiatement à mesurer la nouvelle limite minimale.

Note
  • Lorsque vous définissez une limite d'utilisation minimale, celle-ci vous est facturée même si votre utilisation réelle est inférieure à la limite d'utilisation minimale. L'utilisation de l'ECPU ou du stockage de données qui dépasse la limite d'utilisation minimale est facturée au tarif normal. Par exemple, si vous définissez une limite d'utilisation minimale de 100 000 ECPUs/seconde, vous serez facturé au moins 1,224$ par heure (en utilisant les prix des ECPU indiqués dans us-east-1), même si votre utilisation est inférieure à ce minimum défini.

  • ElastiCache Serverless prend en charge l'échelle minimale requise au niveau agrégé du cache. ElastiCache Serverless prend également en charge un maximum de 30 000 ECPU/seconde par slot (90 000 ECPU/seconde lors de l'utilisation de Read from Replica à l'aide de connexions READONLY). Il est recommandé que votre application veille à ce que la distribution des clés entre les emplacements Redis et le trafic entre les clés soient aussi uniformes que possible.

Définition des limites de dimensionnement à l'aide de la console et AWS CLI

Définition des limites de dimensionnement à l'aide de la AWS 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 le moteur s’exécutant sur le cache que vous voulez modifier.

  3. La liste des caches exécutant le moteur choisi s’affiche.

  4. Choisissez le cache à modifier en cliquant sur le bouton d’option situé à gauche du nom du cache.

  5. Choisissez Actions, puis Modifier.

  6. Sous Limites d'utilisation, définissez les limites de mémoire ou de calcul appropriées.

  7. Cliquez sur Prévisualiser les modifications, puis sur Enregistrer les modifications.

Définition des limites d'échelle à l'aide du AWS CLI

Pour modifier les limites de dimensionnement à l'aide de la CLI, utilisez l' modify-serverless-cache API.

Linux :

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'

Windows:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'

Suppression des limites de mise à l’échelle à l’aide de l’interface de ligne de commande

Pour supprimer les limites de mise à l'échelle à l'aide de la CLI, définissez les paramètres de limite minimale et maximale sur 0.

Linux :

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'

Windows:

aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'