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 du service.
Les mesures prédéfinies à 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 métriques à haute résolution pour une mise à l'échelle automatique plus rapide
-
Sur la page Clusters, choisissez le cluster dans lequel vous souhaitez créer le service.
-
Dans la section Services, choisissez Create.
-
Dans le formulaire Créer un service, dans la section Configuration de surveillance, choisissez Ajouter une configuration métrique.
-
Dans Nom de la métrique, sélectionnez la métrique que vous souhaitez collecter en haute résolution. Sélectionnez
CPUUtilizationouMemoryUtilization. -
Pour Résolution (secondes), sélectionnez 20.
-
(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.
-
Dans la section Service auto scaling, sélectionnez Utiliser le dimensionnement automatique du service.
-
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.
-
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.
-
Pour Scaling policy type (Type de politique de mise à l'échelle), choisissez Target tracking (Suivi de cible).
-
Pour Type de métrique, sélectionnez la métrique haute résolution correspondante. Par exemple, choisissez
ECSServiceAverageCPUUtilizationHighResolutionsi vous avez configuréCPUUtilizationà une résolution de 20 secondes ouECSServiceAverageMemoryUtilizationHighResolutionsi vous l'avez configuréeMemoryUtilizationà une résolution de 20 secondes. -
Pour Valeur cible, entrez le pourcentage d'utilisation cible. Le dimensionnement automatique du service augmente 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é.
-
Sous Paramètres supplémentaires, configurez les éléments suivants :
-
Pour la période de Scale-out recharge, entrez le temps en secondes pendant lequel vous devez attendre qu'une activité de mise à l'échelle précédente prenne effet.
-
Pour le temps de Scale-in recharge, entrez le délai en secondes qui s'écoule entre la fin d'une activité de scale-in et le début d'une autre activité de scale-in.
-
-
Choisissez Create pour créer le service.
-
Créez le service avec une configuration de surveillance à l'aide de la commande create-service.
aws ecs create-service --regionus-east-1\ --clustermy-cluster\ --service-namemy-service\ --task-definitionmy-app:1\ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
Enregistrez le service en tant que cible évolutive à l'aide de la commande 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-capacity1\ --max-capacity10\ --regionus-east-1 -
Créez une politique de dimensionnement du suivi des cibles avec une métrique prédéfinie haute résolution à l'aide de la commande 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-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
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 \ --regionus-east-1
Mettre à jour un service existant afin d'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 afin d'accélérer le dimensionnement automatique du service est un processus en deux étapes. Vous devez d'abord mettre à jour la résolution de surveillance, qui déclenche le déploiement d'un service. Une fois le déploiement terminé avec succès et que toutes les tâches émettent 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 métriques 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
-
Sur la page Clusters, choisissez le cluster qui contient le service que vous souhaitez mettre à jour.
-
Dans la section Services, sélectionnez le service et choisissez Mettre à jour.
-
Dans le formulaire Update Service, dans la section Configuration de la surveillance, choisissez Ajouter une configuration métrique.
-
Dans Nom de la métrique, sélectionnez la métrique que vous souhaitez collecter en haute résolution. Sélectionnez
CPUUtilizationouMemoryUtilization. -
Pour Résolution (secondes), sélectionnez 20.
-
(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.
-
Choisissez Mettre à jour pour soumettre la modification. Cela déclenche le déploiement d'un service.
-
Attendez que le déploiement soit terminé. 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 Service Auto Scaling jusqu'à ce que le déploiement réussisse et que toutes les tâches soient émises à une résolution de 20 secondes.
Étape 2 : Configuration de la politique de dimensionnement 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
-
-
Sur la page des détails du service, choisissez l'onglet Service auto scaling.
-
Choisissez Créer une politique de dimensionnement (ou modifiez une politique existante).
-
Pour Scaling policy type (Type de politique de mise à l'échelle), choisissez Target tracking (Suivi de cible).
-
Pour Type de métrique, sélectionnez la métrique haute résolution. Par exemple,
ECSServiceAverageCPUUtilizationHighResolutionouECSServiceAverageMemoryUtilizationHighResolution. -
Pour Valeur cible, entrez le pourcentage d'utilisation cible.
-
Sous Paramètres supplémentaires, configurez les éléments suivants :
-
Pour la période de Scale-out recharge, entrez le temps en secondes pendant lequel vous devez attendre qu'une activité de mise à l'échelle précédente prenne effet.
-
Pour le temps de Scale-in recharge, entrez le délai en secondes qui s'écoule entre la fin d'une activité de scale-in et le début d'une autre activité de scale-in.
-
-
Choisissez Créer une stratégie de mise à l’échelle.
-
- Option B : formulaire de mise à jour du service
-
-
Sur la page des détails du service, choisissez Mettre à jour.
-
Dans la section Service auto scaling, choisissez Utiliser le dimensionnement automatique du service (si ce n'est pas déjà activé).
-
Pour Nombre minimum de tâches, entrez la limite inférieure.
-
Pour Nombre maximum de tâches, entrez la limite supérieure.
-
Pour Scaling policy type (Type de politique de mise à l'échelle), choisissez Target tracking (Suivi de cible).
-
Pour le type de métrique, sélectionnez la métrique haute résolution (désormais activée une fois le déploiement terminé).
-
Pour Valeur cible, entrez le pourcentage d'utilisation cible.
-
Sous Paramètres supplémentaires, définissez la période de Scale-out recharge et la période de Scale-in recharge.
-
Choisissez Mettre à jour pour soumettre la modification.
-
Étape 1 : Mettre à jour la résolution de surveillance
-
Mettez à jour le service avec la configuration de surveillance à l'aide de la commande update-service.
aws ecs update-service --regionus-east-1\ --clustermy-cluster\ --servicemy-service\ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
Attendez que le déploiement soit terminé. 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 --regionus-east-1\ --clustermy-cluster\ --servicesmy-service -
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-servicessortie, puis exécutez :aws ecs describe-service-revisions --regionus-east-1\ --service-revision-arnsarn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789Vérifiez que la configuration de surveillance apparaît dans la réponse :
{ "serviceRevisions": [ { ... "monitoring": { "metricConfigurations": [ { "metricNames": ["CPUUtilization", "MemoryUtilization"], "resolutionSeconds": 20 } ] } } ] }
Étape 2 : Configuration de la politique de dimensionnement haute résolution
-
Enregistrez le service en tant que cible évolutive s'il n'est pas déjà enregistré, à l'aide de la commande 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-capacity1\ --max-capacity10\ --regionus-east-1 -
Créez une politique de dimensionnement du suivi des cibles avec une métrique prédéfinie haute résolution à l'aide de la commande put-scaling-policy. L'exemple suivant cible une utilisation du processeur à 50 % :
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --policy-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
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 \ --regionus-east-1
Validez une mise à l'échelle automatique plus rapide des services
Partie 1 : Vérifier que les métriques haute résolution sont publiées
-
Accédez à la CloudWatch console.
-
Dans le volet de navigation, choisissez Metrics, puis All metrics.
-
Choisissez l’espace de nom AWS/ECS.
-
Choisissez ClusterName, ServiceName.
-
Localisez les
MemoryUtilizationindicateursCPUUtilizationet indicateurs de votre service. -
Réglez la période sur 20 secondes. Vous devriez voir les points de données toutes les 20 secondes, pour confirmer que les métriques haute résolution sont actives.
Partie 2 : Vérifier que la politique de dimensionnement utilise la métrique haute résolution
-
Sur la page des détails du service, choisissez l'onglet Service auto scaling.
-
Consultez vos politiques de dimensionnement existantes et confirmez que la métrique est définie sur une variante haute résolution (
ECSServiceAverageCPUUtilizationHighResolutionouECSServiceAverageMemoryUtilizationHighResolution). -
Vous pouvez également vérifier à l'aide de la CLI :
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1Vérifiez que le paramètre
PredefinedMetricTypedans 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 le type
CODE_DEPLOYouEXTERNALle contrôleur de déploiement. -
Vous pouvez consulter la configuration de surveillance de votre service à l'aide de
DescribeServiceRevisions. La configuration de surveillance n'est pas renvoyée dansCreateServiceUpdateServiceles réponses.