Mise à l'échelle 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.

Mise à l'échelle 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 utiliser des clusters conçus ElastiCache par Memcached pour une mise à l'échelle verticale. Vous pouvez appliquer une mise à l'échelle verticale aux clusters 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 caches conçus par 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 cache et de type de nœud conçues par vos soins ne sont disponibles que pour les versions 1.5 ou ultérieures du moteur Memcached.

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

Configuration de la mise à l'échelle verticale à la demande pour les ElastiCache clusters Memcached

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 cache personnalisé 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 de votre cache personnalisé Memcached 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 de cache 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 AWS Management Console

Pour convertir un cache personnalisé Memcached existant en un cache pouvant être redimensionné verticalement à travers le https://console.aws.amazon.com/elasticache/, procédez comme suit.

  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. 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 Prévisualiser les 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 les caches que vous avez conçus vous-même.

  • 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 cache auto-conçu ElastiCache pour Memcached via la CLI

Pour le dimensionnement horizontal avec ElastiCache Memcached, vous pouvez avoir 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 put scaling policy.

  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 de cache 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 planning 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 s'adapte à 70 MinCapacity pour porter le nombre de nœuds de cache à 70.

    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 mise à l'échelle

    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 cache Memcached via AWS Management Console

Pour convertir un cache personnalisé Memcached existant en un cache pouvant être redimensionné horizontalement https://console.aws.amazon.com/elasticache/, procédez comme suit.

  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.