View a markdown version of this page

Mise à l'échelle automatique plus rapide grâce à des mesures haute résolution - Amazon Elastic Container Service

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 automatique plus rapide grâce à des mesures haute résolution

Par défaut, Amazon ECS publie CPUUtilization et MemoryUtilization mesure à une résolution de 60 secondes. Vous pouvez configurer une résolution de 20 secondes pour accélérer la mise à l'échelle automatique des services.

Les mesures prédéfinies en haute résolution suivantes sont disponibles pour les politiques de dimensionnement du suivi des cibles :

PredefinedMetricType Description
ECSServiceAverageCPUUtilizationHighResolution Utilisation moyenne du processeur à une résolution de 20 secondes
ECSServiceAverageMemoryUtilizationHighResolution Utilisation moyenne de la mémoire à une résolution de 20 secondes

Créez un nouveau service avec des mesures haute résolution pour une mise à l'échelle automatique plus rapide

  1. Sur la page Clusters, choisissez le cluster dans lequel vous souhaitez créer le service.

  2. Dans la section Services, choisissez Créer.

  3. Dans le formulaire Créer un service, dans la section Configuration de surveillance, choisissez Ajouter une configuration métrique.

  4. Dans Nom de la métrique, sélectionnez la métrique que vous souhaitez collecter en haute résolution. Sélectionnez CPUUtilization ou MemoryUtilization.

  5. Pour Résolution (secondes), sélectionnez 20.

  6. (Facultatif) Pour ajouter les deux mesures en haute résolution, choisissez à nouveau Ajouter une configuration de métrique et répétez les deux étapes précédentes pour l'autre métrique.

  7. Dans la section Mise à l'échelle automatique des services, choisissez Utiliser la mise à l'échelle automatique des services.

  8. Pour Nombre minimum de tâches, saisissez la limite inférieure du nombre de tâches à utiliser pour l’autoscaling du service. Le nombre souhaité ne sera pas inférieur à ce nombre.

  9. Pour Nombre maximal de tâches, saisissez la limite supérieure du nombre de tâches à utiliser par l’autoscaling du service. Le nombre souhaité ne sera pas supérieur à ce nombre.

  10. Pour Scaling policy type (Type de politique de mise à l'échelle), choisissez Target tracking (Suivi de cible).

  11. Dans Type de métrique, sélectionnez la métrique haute résolution correspondante. Par exemple, choisissez ECSServiceAverageCPUUtilizationHighResolution si vous avez configuré CPUUtilization avec une résolution de 20 secondes ou ECSServiceAverageMemoryUtilizationHighResolution si vous avez configuré avec une résolution MemoryUtilization de 20 secondes.

  12. Pour Valeur cible, entrez le pourcentage d'utilisation cible. Le service Auto Scaling fait évoluer votre capacité jusqu'à ce que l'utilisation moyenne atteigne la valeur cible ou jusqu'à ce qu'elle atteigne le nombre maximum de tâches que vous avez spécifié.

  13. Dans Paramètres supplémentaires, configurez les éléments suivants :

    1. Pour la période de Scale-out recharge, entrez le temps en secondes nécessaire pour qu'une activité de scale-out précédente prenne effet.

    2. Pour la période de Scale-in recharge, entrez le temps en secondes qui s'écoule entre la fin d'une activité d'adaptation et le début d'une autre activité d'adaptation.

  14. Choisissez Créer pour créer le service.

  1. Créez le service avec la configuration de surveillance à l'aide de la commande create-service.

    aws ecs create-service --region us-east-1 \ --cluster my-cluster \ --service-name my-service \ --task-definition my-app:1 \ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. Enregistrez le service en tant que cible évolutive à l'aide de la commande https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html register-scalable-target.

    aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --min-capacity 1 \ --max-capacity 10 \ --region us-east-1
  3. Créez une politique de dimensionnement du suivi des cibles avec une métrique prédéfinie en haute résolution à l'aide de la commande https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html put-scaling-policy.

    aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --policy-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  4. Vérifiez que la politique a été créée à l'aide de la commande describe-scaling-policies.

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --region us-east-1

Mettez à jour un service existant pour utiliser des métriques haute résolution pour une mise à l'échelle automatique plus rapide

La mise à jour d'un service existant afin d'utiliser des métriques haute résolution pour accélérer la mise à l'échelle automatique du service est un processus en deux étapes. Vous devez d'abord mettre à jour la résolution de surveillance, ce qui déclenche le déploiement d'un service. Une fois le déploiement terminé avec succès et toutes les tâches émettant des métriques à une résolution de 20 secondes, vous pouvez configurer une politique de dimensionnement haute résolution.

Important

Si votre service utilisait auparavant une résolution métrique de 60 secondes, les mesures haute résolution pour la politique de dimensionnement ne seront disponibles sur la console Amazon ECS qu'une fois que vous aurez mis à jour votre service pour utiliser une résolution métrique de 20 secondes et que le déploiement du service sera terminé.

Étape 1 : mettre à jour la résolution de surveillance

  1. Sur la page Clusters, choisissez le cluster qui contient le service que vous souhaitez mettre à jour.

  2. Dans la section Services, sélectionnez le service et choisissez Mettre à jour.

  3. Dans le formulaire Update Service, dans la section Configuration de surveillance, choisissez Ajouter une configuration métrique.

  4. Dans Nom de la métrique, sélectionnez la métrique que vous souhaitez collecter en haute résolution. Sélectionnez CPUUtilization ou MemoryUtilization.

  5. Pour Résolution (secondes), sélectionnez 20.

  6. (Facultatif) Pour ajouter les deux mesures en haute résolution, choisissez à nouveau Ajouter une configuration de métrique et répétez les deux étapes précédentes pour l'autre métrique.

  7. Choisissez Mettre à jour pour soumettre la modification. Cela déclenche le déploiement d'un service.

  8. Attendez la fin du déploiement. Vous pouvez suivre la progression sur la page des détails du service dans l'onglet Déploiements.

    Note

    Les options de mesure de mise à l'échelle haute résolution sont grisées dans la section de mise à l'échelle automatique du service jusqu'à ce que le déploiement soit réussi et que toutes les tâches soient émises à une résolution de 20 secondes.

Étape 2 : configurer la politique de mise à l'échelle haute résolution

Une fois le déploiement terminé, configurez la politique de dimensionnement à l'aide de l'une des méthodes suivantes :

Option A : page de détails du service
  1. Sur la page des détails du service, choisissez l'onglet Service auto scaling.

  2. Choisissez Créer une politique de dimensionnement (ou modifier une politique existante).

  3. Pour Scaling policy type (Type de politique de mise à l'échelle), choisissez Target tracking (Suivi de cible).

  4. Pour Type de métrique, sélectionnez la métrique haute résolution. Par exemple, ECSServiceAverageCPUUtilizationHighResolution ou ECSServiceAverageMemoryUtilizationHighResolution.

  5. Pour Valeur cible, entrez le pourcentage d'utilisation cible.

  6. Dans Paramètres supplémentaires, configurez les éléments suivants :

    1. Pour la période de Scale-out recharge, entrez le temps en secondes nécessaire pour qu'une activité de scale-out précédente prenne effet.

    2. Pour la période de Scale-in recharge, entrez le temps en secondes qui s'écoule entre la fin d'une activité d'adaptation et le début d'une autre activité d'adaptation.

  7. Choisissez Créer une stratégie de mise à l’échelle.

Option B : Mettre à jour le formulaire de service
  1. Sur la page des détails du service, choisissez Mettre à jour.

  2. Dans la section Mise à l'échelle automatique des services, choisissez Utiliser la mise à l'échelle automatique des services (si ce n'est pas déjà fait).

  3. Pour Nombre minimum de tâches, entrez la limite inférieure.

  4. Pour Nombre maximum de tâches, entrez la limite supérieure.

  5. Pour Scaling policy type (Type de politique de mise à l'échelle), choisissez Target tracking (Suivi de cible).

  6. Dans Type de métrique, sélectionnez la métrique haute résolution (désormais activée une fois le déploiement terminé).

  7. Pour Valeur cible, entrez le pourcentage d'utilisation cible.

  8. Dans Paramètres supplémentaires, définissez la période de Scale-out recharge et la période de Scale-in recharge.

  9. Choisissez Mettre à jour pour soumettre la modification.

Étape 1 : mettre à jour la résolution de surveillance

  1. Mettez à jour le service avec la configuration de surveillance à l'aide de la commande https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html update-service.

    aws ecs update-service --region us-east-1 \ --cluster my-cluster \ --service my-service \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. Attendez la fin du déploiement. Vous pouvez suivre la progression à l'aide de la commande describe-services et en vérifiant l'état du déploiement.

    aws ecs describe-services --region us-east-1 \ --cluster my-cluster \ --services my-service
  3. Une fois le déploiement terminé, vérifiez que la configuration de surveillance est active en décrivant la révision du service. Obtenez l'ARN de révision du service actif à partir de la describe-services sortie, puis exécutez :

    aws ecs describe-service-revisions --region us-east-1 \ --service-revision-arns arn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789

    Vérifiez que la configuration de surveillance apparaît dans la réponse :

    { "serviceRevisions": [ { ... "monitoring": { "metricConfigurations": [ { "metricNames": ["CPUUtilization", "MemoryUtilization"], "resolutionSeconds": 20 } ] } } ] }
Étape 2 : configurer la politique de mise à l'échelle haute résolution

  1. Enregistrez le service en tant que cible évolutive s'il n'est pas déjà enregistré, à l'aide de la commande https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html register-scalable-target.

    aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --min-capacity 1 \ --max-capacity 10 \ --region us-east-1
  2. Créez une politique de dimensionnement du suivi des cibles avec une métrique prédéfinie en haute résolution à l'aide de la commande https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html put-scaling-policy. L'exemple suivant cible 50 % d'utilisation du processeur :

    aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --policy-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  3. Vérifiez que la politique a été créée :

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --region us-east-1

Validez un dimensionnement automatique plus rapide des services

Partie 1 : Vérifier que les métriques haute résolution sont publiées

  1. Accédez à la CloudWatch console.

  2. Dans le volet de navigation, choisissez Metrics, puis All metrics.

  3. Choisissez l’espace de nom AWS/ECS.

  4. Choisissez ClusterName, ServiceName.

  5. Localisez les MemoryUtilization paramètres CPUUtilization et les indicateurs de votre service.

  6. Réglez la période sur 20 secondes. Vous devriez voir des points de données toutes les 20 secondes, ce qui confirme que les mesures haute résolution sont actives.

Partie 2 : Vérifier que la politique de dimensionnement utilise la métrique haute résolution

  1. Sur la page des détails du service, choisissez l'onglet Service auto scaling.

  2. Consultez vos politiques de dimensionnement existantes et confirmez que la métrique est définie sur une variante haute résolution (ECSServiceAverageCPUUtilizationHighResolutionouECSServiceAverageMemoryUtilizationHighResolution).

  3. Vous pouvez également vérifier à l'aide de l'interface de ligne de commande :

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --region us-east-1

    Vérifiez que le paramètre indiqué PredefinedMetricType dans la réponse est défini sur une métrique haute résolution.

Considérations

  • La surveillance des modifications de configuration crée une nouvelle révision du service et nécessite un déploiement de service. La métrique de mise à l'échelle haute résolution n'est pas disponible tant que le déploiement n'est pas terminé et que toutes les tâches sont émises à une résolution de 20 secondes.

  • High-resolution les métriques sont prises en charge pour les services utilisant des équilibreurs de charge d'application et des équilibreurs de charge réseau. Les services utilisant des équilibreurs de charge classiques sans groupes cibles ne sont pas pris en charge.

  • High-resolution les métriques ne sont pas prises en charge pour les services utilisant les types de contrôleurs de EXTERNAL déploiement CODE_DEPLOY ou de contrôleur de déploiement.

  • Vous pouvez consulter la configuration de surveillance de votre service à l'aide deDescribeServiceRevisions. La configuration de surveillance n'est pas renvoyée dans CreateService nos UpdateService réponses.