Dimensionnement à la demande pour les clusters Memcached - Amazon ElastiCache

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.

Dimensionnement à la demande pour les clusters Memcached

ElastiCache for Memcached propose un service de mise en cache en mémoire entièrement géré qui déploie, exploite et fait évoluer verticalement Memcached dans le cloud.AWS

Dimensionnement vertical à la demande

Grâce à la mise à l'échelle verticale, ElastiCache Memcached fournit un système de mise en cache de mémoire distribuée à hautes performances largement utilisé pour accélérer les applications dynamiques en allégeant la charge des bases de données. Il stocke les données et les objets dans la RAM, réduisant ainsi le besoin de lire à partir de sources de données externes.

Vous pouvez appliquer une mise à l'échelle verticale aux clusters basés sur des nœuds existants ainsi qu'aux nouveaux clusters. Cela peut apporter de la flexibilité dans l'allocation des ressources, permettant aux utilisateurs de s'adapter efficacement à l'évolution des charges de travail sans modifier l'architecture du cluster. Cette capacité d'évolutivité améliore les performances en augmentant la capacité du cache pendant les périodes de forte demande et en la réduisant pour optimiser les coûts pendant les périodes de faible demande. Cela simplifie les opérations, élimine le besoin de créer de nouveaux clusters pour répondre à l'évolution des besoins en ressources et permet de réagir rapidement aux fluctuations du trafic. Dans l'ensemble, la mise à l'échelle verticale des clusters basés sur des nœuds Memcached peut contribuer à améliorer la rentabilité, à améliorer l'utilisation des ressources et même à permettre aux utilisateurs de modifier leur type d'instance Memcached. Tout cela permet aux utilisateurs d'aligner plus facilement leur infrastructure de mise en cache sur les besoins réels des applications.

Note
  • Les modifications de type de nœud ne sont disponibles que pour les clusters Memcached basés sur des nœuds dotés de versions de moteur 1.5 ou ultérieures.

  • La découverte automatique doit être activée pour pouvoir utiliser la mise à l'échelle verticale.

Configuration du dimensionnement vertical à la demande pour les clusters Memcached basés sur des nœuds

Vous pouvez configurer le dimensionnement vertical à la demande pour Memcached avecscale-config, qui contient deux paramètres :

  1. ScaleIntervalMinutes: durée (en minutes) entre le dimensionnement des lots pendant le processus de mise à niveau de Memcached

  2. ScalePercentage: pourcentage de nœuds à dimensionner simultanément pendant le processus de mise à niveau de Memcached

Conversion d'un type de nœud Memcached existant en un cache pouvant être redimensionné verticalement via la CLI

Pour convertir un cluster basé sur des nœuds Memcached existant en un cache pouvant être redimensionné verticalement, vous pouvez l'utiliser via elasticache modify-cache-cluster la CLI.

aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config <scale-config> \ --apply-immediately

Configuration de la mise à l'échelle verticale avec la CLI

Pour configurer la mise à l'échelle verticale pour un cluster Memcached basé sur des nœuds via la CLI, utilisez elasticache modify-cache-cluster with scale-config et ses paramètres et. ScalePercentage ScaleIntervalMinutes

  • scale-interval-minutes: Ceci définit le temps (en minutes) entre les lots de mise à l'échelle. Ce réglage peut aller de 2 à 30 minutes. Si aucune valeur n'est spécifiée, la valeur par défaut de 5 minutes est appliquée.

  • scale-percentage : indique le pourcentage de nœuds à dimensionner simultanément dans chaque lot. Ce paramètre peut être compris entre 10 et 100. Le paramètre est arrondi lors de la division. Par exemple, si le résultat est de 49,5, un paramètre de 50 est appliqué. Si aucune valeur n'est spécifiée, la valeur par défaut de 20 est appliquée.

Ces options de configuration vous permettront d'affiner le processus de dimensionnement en fonction de vos besoins spécifiques, en trouvant un équilibre entre la minimisation des perturbations du cluster et l'optimisation de la vitesse de mise à l'échelle. Le paramètre scale-config ne sera applicable qu'aux types de moteurs Memcached et sera ignoré pour les autres moteurs de cache, garantissant ainsi la rétrocompatibilité avec l'utilisation existante des API pour d'autres clusters.

Appel d'API

aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config '{ "ScalePercentage": 30, "ScaleIntervalMinutes": 2 }' --apply-immediately

Résultat :

Renvoie l'ID du cluster et la modification en attente.

{ "CacheCluster": { "CacheNodeType": "old_insance_type", ... ... "PendingModifiedValues": { "CacheNodeType": "new_instance_type" }, } }

Répertoriez les paramètres de mise à l'échelle verticale de votre cache Memcached

Vous pouvez récupérer les options de mise à l'échelle de vos caches Memcached et voir quelles sont leurs options actuelles pour la mise à l'échelle verticale.

Appel d'API

aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id>

Résultat :

{ "ScaleUpModifications": [ "cache.x.xxxx", "cache.x.xxxx" ], "ScaleDownModifications": [ "cache.x.xxxx", "cache.x.xxxx", "cache.x.xxxx" ] }

Mise à l'échelle verticale pour Memcached avec le AWS Management Console

Suivez ces étapes pour AWS Management Console convertir un cluster Memcached basé sur des nœuds en cluster évolutif verticalement.

  1. Connectez-vous à la ElastiCache console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/elasticache/.

  2. Sélectionnez le cluster Memcached à convertir.

  3. Sélectionnez l'onglet Modifier.

  4. Accédez à la section Paramètres du cache et sélectionnez le type de nœud souhaité.

  5. Sélectionnez Aperçu des modifications, puis passez en revue les modifications.

  6. Sélectionnez Modify.

Mise à l'échelle horizontale automatisée pour Memcached

ElastiCache s'intègre désormais au service AWS Application Auto Scaling (AAS) pour inclure le dimensionnement horizontal automatique pour les clusters Memcached. Vous pouvez définir des politiques de dimensionnement via le service AWS Application Auto Scaling et ajuster automatiquement le nombre de nœuds dans les clusters Memcached selon les besoins, en fonction de métriques ou de plannings prédéfinis.

Note

La mise à l'échelle horizontale automatisée n'est actuellement pas disponible dans les régions de Pékin et de Ningxia.

Voici les méthodes disponibles pour redimensionner automatiquement horizontalement vos clusters basés sur des nœuds.

  • Dimensionnement planifié : le dimensionnement basé sur un calendrier vous permet de définir votre propre calendrier de dimensionnement pour des changements de charge prévisibles. Par exemple, chaque semaine le trafic vers l'application Web commence à augmenter le mercredi, reste élevé le jeudi et amorce une baisse le vendredi. Vous pouvez configurer Auto Scaling pour augmenter la capacité le mercredi et la diminuer le vendredi.

  • Suivi des cibles : avec les politiques de dimensionnement du suivi des cibles, vous choisissez une métrique de mise à l'échelle et définissez une valeur cible. Application Auto Scaling crée et gère les CloudWatch alarmes qui déclenchent la politique de dimensionnement et calcule l'ajustement de dimensionnement en fonction de la métrique et de la valeur cible. La politique de dimensionnement ajoute ou supprime de la capacité si nécessaire pour maintenir la métrique à la valeur cible spécifiée ou proche de celle-ci.

Comment configurer la mise à l'échelle horizontale pour un cluster Memcached basé sur des nœuds via la CLI

Lors de la mise à l'échelle horizontale d'un cluster Memcached basé sur des nœuds, vous pouvez utiliser une politique de suivi des cibles, une politique planifiée ou les deux.

  1. Enregistrer une ressource en tant que cible évolutive

    Appelez l'RegisterScalableTargetAPI dans AWS Application Auto Scaling pour enregistrer la cible de la dimension évolutiveelasticache:cache-cluster:Nodes.

    API : ApplicationAutoScaling. RegisterScalableTarget

    Entrée :

    { "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "MinCapacity": 20, "MaxCapacity": 50 }
  2. Création d'une politique de dimensionnement du suivi de Target

    Ensuite, vous pouvez créer une politique de dimensionnement de suivi des cibles pour la ressource en appelant l'API de politique de dimensionnement put.

  3. Métrique prédéfinie

    Vous trouverez ci-dessous une politique qui s'adapte à la dimension du nœud de cache, en utilisant la métrique prédéfinie ElastiCacheCPUUtilization, définie à 50 pour le cluster test-cluster-1. Lorsque vous supprimez des nœuds à des fins de scale-in, les n derniers nœuds seront supprimés.

    API : ApplicationAutoScaling. PutScalingPolicy

    Entrée :

    { "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 50, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCacheCPUUtilization" }, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }

    Sortie :

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/elasticache/cache-cluster/test-cluster-1:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }
  4. Métrique personnalisée

    Vous pouvez également définir une politique de dimensionnement pour la dimension en utilisant un pourcentage personnalisé basé sur la métrique Cloudwatch.

    Entrée :

    { "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "CustomizedMetricSpecification": { "Dimensions": [ { "Name": "MyMetricDimension", "Value": "DimensionValue" } ], "MetricName": "MyCustomMetric", "Namespace": "MyNamespace", "Statistic": "Average", "Unit": "Percent" }, "TargetValue": 40, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }
  5. Actions planifiées

    Lorsque vous devez effectuer une mise à l'échelle en fonction d'un événement particulier, puis intervenir après l'événement, vous pouvez créer deux actions planifiées en appelant l'PutScheduledActionAPI.

    Politique 1 : Extensification

    La at commande --schedule planifie l'action pour qu'elle soit exécutée une fois à une date et à une heure spécifiées dans le futur. Le champ de planification prend également en charge le taux (minute, heure, jour, etc.) et le cron (pour l'expression cron).

    À la date et à l'heure spécifiées, Application Auto Scaling met à jour les valeurs MinCapacity et MaxCapacity. Application Auto Scaling évolue MinCapacity jusqu'à 70 nœuds de cache.

    API : ApplicationAutoScaling. PutScheduledAction

    Entrée :

    { "ResourceId": "elasticache:ache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 100, "MinCapacity": 70 }, "Schedule": "at(2020-05-20T17:05:00)", "ScheduledActionName": "ScalingOutScheduledAction", "ServiceNamespace": "elasticache", }

    Politique 2 : mise à l'échelle

    À la date et à l'heure spécifiées, Application Auto Scaling met à jour les valeurs de MinCapacity la table et les redimensionne MaxCapacity pour ramener le nombre de nœuds de cache à 60. MaxCapacity

    API : ApplicationAutoScaling. PutScheduledAction

    Entrée :

    { "ResourceId": "elasticache:cache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 60, "MinCapacity": 40 }, "Schedule": "at(2020-05-21T17:05:00)", "ScheduledActionName": "ScalingInScheduledAction", "ServiceNamespace": "elasticache", }
  6. Afficher les activités de dimensionnement

    Vous pouvez consulter les activités de dimensionnement à l'aide de l'DescribeScalingActivitiesAPI.

    API : ApplicationAutoScaling. DescribeScalingActivities

    Sortie :

    { "ScalingActivities": [ { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 30.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "4d759079-a31f-4d0c-8468-504c56e2eecf", "StartTime": 1462574194.658, "elasticacheNamespace": "elasticache", "EndTime": 1462574276.686, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Failed to set desired count to 30", "StatusCode": "Failed" }, { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 25.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "90aff0eb-dd6a-443c-889b-b809e78061c1", "StartTime": 1462574254.223, "elasticacheNamespace": "elasticache", "EndTime": 1462574333.492, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Successfully set desired count to 25. Change successfully fulfilled by elasticache.", "StatusCode": "Successful" } ] }
  7. Modifier/supprimer la politique de dimensionnement

    Vous pouvez modifier ou supprimer des politiques en appelant à nouveau PutScalingPolicy l'API ou en appelant DeleteScalingPolicy DeleteScheduled Action.

  8. Désenregistrer les cibles évolutives

    Vous pouvez désenregistrer la cible évolutive via l'DeregisterScalableTargetAPI. L'annulation de l'enregistrement d'une cible évolutive supprime les politiques de dimensionnement et les actions planifiées qui lui sont associées.

    API : ApplicationAutoScaling. DeregisterScalableTarget

    Entrée :

    { "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes" }
  9. Nettoyage des politiques de dimensionnement

  10. Politiques de dimensionnement multiples

    Vous pouvez créer plusieurs politiques de dimensionnement. Vous trouverez ci-dessous des informations clés sur le comportement issues du suivi des cibles Auto Scaling.

    • Vous pouvez avoir plusieurs stratégies de dimensionnement Suivi de la cible pour une cible évolutive, dans la mesure où chacune d'elles utilise une métrique différente.

    • L'objectif d'Application Auto Scaling est de toujours donner la priorité à la disponibilité, afin que son comportement diffère selon que les politiques de suivi des cibles et d'échelonnement sont prêtes pour une augmentation ou une diminution de la capacité. Il augmentera la taille de la cible scalable si une des stratégies Suivi de la cible est prête pour une augmentation de taille, mais la diminuera uniquement si toutes les stratégies Suivi de la cible (avec la portion de diminution en charge activée) sont prêtes pour une diminution de taille.

    • Si plusieurs stratégies indiquent simultanément à la cible évolutive de procéder à une montée en charge ou à une diminution en charge, Application Auto Scaling effectue la mise à l'échelle en fonction de la stratégie qui fournit la plus grande capacité à la fois pour la diminution et l'augmentation. Cela vous offre une plus grande flexibilité pour couvrir plusieurs scénarios et pouvoir toujours disposer d'une capacité suffisante pour traiter vos charges de travail d'application.

    Note

    AWS Application Auto Scaling ne met pas en file d'attente les politiques de dimensionnement. Application Auto Scaling attendra la fin de la première mise à l'échelle, puis se refroidira, puis répétera l'algorithme ci-dessus.

Redimensionnez automatiquement horizontalement un cluster Memcached basé sur des nœuds via AWS Management Console

Suivez ces étapes pour AWS Management Console convertir un cluster Memcached existant basé sur des nœuds en un cluster évolutif horizontalement.

  1. Connectez-vous à la ElastiCache console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/elasticache/.

  2. Sélectionnez le cache Memcached à convertir.

  3. Accédez à l'onglet Autoscaling.

  4. Sélectionnez la politique de dimensionnement à appliquer en sélectionnant Ajouter une mise à l'échelle dynamique ou Ajouter une mise à l'échelle planifiée.

  5. Renseignez les détails de la politique sélectionnée selon vos besoins.

  6. Cliquez sur Create.