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.
Comment CloudWatch des alarmes détectent les échecs de déploiement d'Amazon ECS
Vous pouvez configurer Amazon ECS pour définir l'échec du déploiement lorsqu'il détecte qu'un CloudWatch l'alarme est entrée dans ALARM état.
Vous pouvez éventuellement définir la configuration pour qu'elle revienne au dernier déploiement réussi en cas d'échec d'un déploiement.
Les suivants create-service AWS CLI Un exemple montre comment créer un service Linux lorsque les alarmes de déploiement sont utilisées avec l'option de restauration.
aws ecs create-service \ --service-nameMyService\ --deployment-controller type=ECS\ --desired-count3\ --deployment-configuration "alarms={alarmNames=[alarm1Name,alarm2Name],enable=true,rollback=true}" \ --task-definitionsample-fargate:1\ --launch-typeFARGATE\ --platform-familyLINUX\ --platform-version1.4.0\ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}"
Tenez compte des points suivants lorsque vous utilisez Amazon CloudWatch méthode d'alarme sur un service.
-
La durée pendant laquelle les révisions de service bleues et vertes se déroulent simultanément après le transfert du trafic de production. Amazon ECS calcule cette période en fonction de la configuration d'alarme associée au déploiement. Vous ne pouvez pas définir cette valeur.
-
Le paramètre de demande
deploymentConfigurationcontient désormais le type de donnéesalarms. Vous pouvez spécifier les noms des alarmes, si vous souhaitez utiliser la méthode et si vous souhaitez lancer une restauration lorsque les alarmes indiquent un échec de déploiement. Pour plus d'informations, voir CreateService dans le Référence de l'API Amazon Elastic Container Service. -
La réponse
DescribeServicesdonne un aperçu de l'état d'un déploiement, lerolloutStateetrolloutStateReason. Lorsqu'un nouveau déploiement démarre, il commence à l'étatIN_PROGRESS. Lorsque le service atteint un état stable et que la durée de l'intégration est terminée, l'état du déploiement passe àCOMPLETED. Si le service n'arrive pas à atteindre un état stable et que l'alarme passe à l'étatALARM, le déploiement passe à un étatFAILED. Un déploiement dans un étatFAILEDne lancera aucune nouvelle tâche. -
Outre les événements de changement d'état de déploiement de service qu'Amazon ECS envoie pour les déploiements qui ont démarré et se sont terminés, Amazon ECS envoie également un événement lorsqu'un déploiement qui utilise des alarmes échoue. Ces événements fournissent des informations sur la raison pour laquelle un déploiement a échoué ou si un déploiement a été démarré en raison d'une restauration. Pour plus d’informations, consultez Événements de modification de l’état de déploiement de service Amazon ECS.
-
Si un nouveau déploiement démarre parce qu'un déploiement précédent a échoué et que la restauration a été activée, le champ
reasonde l'événement de changement d'état de déploiement de service indique que le déploiement a démarré en raison d'une restauration. -
Si vous utilisez le disjoncteur de déploiement et l'Amazon CloudWatch alarmes pour détecter les pannes, l'une ou l'autre peut déclencher un échec de déploiement dès que les critères de l'une ou l'autre des méthodes sont remplis. Une restauration se produit lorsque vous utilisez l'option de restauration pour la méthode à l'origine de l'échec du déploiement.
-
L'Amazonie CloudWatch les alarmes ne sont prises en charge que pour les services Amazon ECS qui utilisent la mise à jour continue (
ECS) contrôleur de déploiement. -
Vous pouvez configurer cette option à l’aide de la console Amazon ECS ou de l’ AWS CLI. Pour plus d'informations, consultez Créer un service à l'aide de paramètres définis et create-service dans la Référence AWS Command Line Interface .
-
Vous remarquerez peut-être que l'état du déploiement reste
IN_PROGRESSpendant une durée prolongée. La raison en est qu'Amazon ECS ne modifie pas le statut tant qu'il n'a pas supprimé le déploiement actif, et cela ne se produit qu'après la durée de l'intégration. En fonction de votre configuration d'alarme, le déploiement peut sembler prendre plusieurs minutes de plus que lorsque vous n'utilisez pas d'alarmes (même si le nouvel ensemble de tâches principales est augmenté et l'ancien déploiement réduit). Si vous utilisez CloudFormation timeouts, pensez à augmenter les timeouts. Pour de plus amples informations, veuillez consulter Création de conditions d'attente dans un modèle dans le Guide de l'utilisateur AWS CloudFormation . -
Amazon ECS appelle
DescribeAlarmspour sonder les alarmes. Les appels àDescribeAlarmscomptez pour CloudWatch les quotas de service associés à votre compte. Si vous avez d'autres AWS services qui appellentDescribeAlarms, l'interrogation des alarmes par Amazon ECS peut avoir un impact. Par exemple, si un autre service effectue suffisamment d’appels àDescribeAlarmspour atteindre le quota, ce service est limité ; Amazon ECS est alors également limité et incapable d’interroger les alarmes. Si une alarme est générée pendant la période de limitation, Amazon ECS peut ne pas la détecter et la restauration peut ne pas avoir lieu. Cela n'a aucun autre impact sur le déploiement. Pour plus d'informations sur CloudWatch quotas de service, voir CloudWatch quotas de service dans le CloudWatch Guide de l'utilisateur. -
Si une alarme est activée à l’état
ALARMau début d'un déploiement, Amazon ECS ne surveille pas les alarmes pendant la durée de ce déploiement (il ignore la configuration des alarmes). Ce comportement concerne le cas où vous souhaitez lancer un nouveau déploiement afin de corriger un échec initial.
Alarmes recommandées
Nous vous recommandons d'utiliser les métriques d'alarme suivantes :
-
Si vous utilisez un Application Load Balancer, utilisez les métriques d'Application Load Balancer
HTTPCode_ELB_5XX_CountetHTTPCode_ELB_4XX_Count. Ces métriques surveillent la présence de pics HTTP. Pour plus d'informations sur les mesures de l'équilibreur de charge des applications, consultez CloudWatch des mesures pour votre équilibreur de charge d'application dans le Guide de l'utilisateur pour les équilibreurs de charge d'application. -
Si vous avez déjà une application, utilisez les métriques
CPUUtilizationetMemoryUtilization. Elles vérifient l'utilisation de l'UC et de la mémoire en pourcentage utilisées par le cluster ou le service. Pour plus d’informations, consultez Considérations. -
Si vous utilisez Amazon Simple Queue Service files d'attente dans vos tâches, utilisez
ApproximateNumberOfMessagesNotVisibleMétrique Amazon SQS. Cette métrique vérifie le nombre de messages dans la file d'attente qui sont retardés et qui ne peuvent pas être lus immédiatement. Pour plus d'informations sur les métriques Amazon SQS, consultez Disponible CloudWatch statistiques pour Amazon SQS dans le Guide du développeur d'Amazon Simple Queue Service.
Durée de l’intégration
Lorsque vous utilisez l'option de restauration pour vos déploiements de services, Amazon ECS attend un délai supplémentaire après le déploiement de la révision du service cible avant d'envoyer un CloudWatch alarme. C’est ce que l’on appelle la durée de l’intégration. Cette durée commence lorsque :
-
toutes les tâches d’une révision de service cible sont en cours d’exécution et en bon état ;
-
les révisions du service source sont réduites à 0 %.
La durée de l’intégration par défaut est inférieure à 5 minutes. Le déploiement de service est marqué comme terminé après l’expiration de la durée de l’intégration.
Vous pouvez configurer la durée de l’intégration pour un déploiement continu. Quand vous utilisez CloudWatch alarmes pour détecter un échec. Si vous modifiez le temps de cuisson, puis décidez que vous souhaitez utiliser la valeur par défaut d'Amazon ECS, vous devez régler le temps de cuisson manuellement.