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.
Vous pouvez adapter votre ElastiCache cache à vos besoins. Les caches sans serveur et les clusters conçus par nos soins offrent plusieurs options de mise à l'échelle.
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 un maximum de dimensionnement, votre application risque de connaître une baisse des performances du cache lorsque celui-ci atteint le maximum. 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 qui ont un Time-To-Live (TTL) défini 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, les demandes commencent à ElastiCache ê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 (ECPUs) par seconde ou pour le stockage des 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 le ECPUs /seconde disponible 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 de 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 ECPUs 000/sec lors de l'utilisation de la fonction Read from Replica. ElastiCache Serverless for Valkey 8.0 peut doubler le nombre de demandes prises en charge par seconde (RPS) toutes les 2 à 3 minutes, pour atteindre 5 millions de RPS par cache contre zéro en moins de 13 minutes, avec une latence de lecture constante inférieure à la milliseconde p50. Si vous prévoyez qu'un événement de dimensionnement à venir pourrait dépasser ce taux, nous vous recommandons de définir le minimum ECPUs /seconde par rapport au pic ECPUs /sec attendu 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 pour le nouveau minimum ECPUs 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 de l'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 ECPUs €/seconde par slot (90 ECPUs 000/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 Valkey ou Redis OSS et le trafic entre les clés soient aussi uniformes que possible.
Définition des limites de mise à l'échelle à l'aide de la console et AWS CLI
Définition des limites de dimensionnement à l'aide de la AWS console
Connectez-vous à la ElastiCache console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/elasticache/
. Dans le volet de navigation, choisissez le moteur qui s'exécute sur le cache que vous souhaitez modifier.
La liste des caches exécutant le moteur choisi s’affiche.
Choisissez le cache à modifier en cliquant sur le bouton d’option situé à gauche du nom du cache.
Choisissez Actions, puis Modifier.
Sous Limites d'utilisation, définissez les limites de mémoire ou de calcul appropriées.
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-cacheAPI.
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}'