Gérer les problèmes de régulation d'Amazon ECS - 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.

Gérer les problèmes de régulation d'Amazon ECS

Les erreurs de régulation se répartissent en deux grandes catégories : la régulation synchrone et la régulation asynchrone.

Régulation synchrone

En cas de régulation synchrone, vous recevez immédiatement une réponse d'erreur d'Amazon ECS. Cette catégorie apparaît généralement lorsque vous appelez Amazon ECS APIs lors de l'exécution de tâches ou de la création de services. Pour plus d'informations sur la régulation impliquée et les limites d'accélération pertinentes, consultez la section Régulation des demandes pour l'API Amazon ECS.

Lorsque votre application lance des demandes d'API, par exemple à l'aide du SDK AWS CLI ou d'un AWS SDK, vous pouvez remédier à la limitation des API. Pour ce faire, vous pouvez soit concevoir l'architecture de votre application de manière à gérer les erreurs, soit implémenter une stratégie de ralentissement exponentiel et d'instabilité avec une logique de nouvelle tentative pour les appels d'API. Pour plus d'informations, consultez les sections Expiration, nouvelles tentatives et interruption avec gigue.

Si vous utilisez un AWS SDK, la logique de nouvelle tentative automatique est intégrée et configurable.

Régulation asynchrone

La régulation asynchrone se produit en raison de flux de travail asynchrones dans lesquels Amazon ECS AWS CloudFormation ou Amazon pourrait APIs appeler en votre nom pour provisionner des ressources. Il est important de savoir lesquels Amazon ECS AWS APIs invoque en votre nom. Par exemple, l'CreateNetworkInterfaceAPI est invoquée pour les tâches qui utilisent le mode awsvpc réseau, et l'DescribeTargetHealthAPI est invoquée lors de l'exécution de contrôles de santé pour les tâches enregistrées sur un équilibreur de charge.

Lorsque vos charges de travail atteignent une échelle considérable, ces opérations d'API peuvent être limitées. En d'autres termes, ils peuvent être suffisamment limités pour dépasser les limites imposées par Amazon ECS ou par celui Service AWS qui est appelé. Par exemple, si vous déployez des centaines de services, chacun comportant des centaines de tâches simultanément utilisant le mode awsvpc réseau, Amazon ECS invoque des opérations d' EC2 API Amazon telles que CreateNetworkInterface des opérations d'API Elastic Load Balancing telles que RegisterTarget ou DescribeTargetHealth pour enregistrer l'interface réseau élastique et l'équilibreur de charge, respectivement. Ces appels d'API peuvent dépasser les limites de l'API, ce qui entraîne des erreurs de régulation. Voici un exemple d'erreur de régulation d'Elastic Load Balancing incluse dans le message d'événement de service.

{ "userIdentity":{ "arn":"arn:aws:sts::111122223333:assumed-role/AWSServiceRoleForECS/ecs-service-scheduler", "eventTime":"2022-03-21T08:11:24Z", "eventSource":"elasticloadbalancing.amazonaws.com", "eventName":" DescribeTargetHealth ", "awsRegion":"us-east-1", "sourceIPAddress":"ecs.amazonaws.com", "userAgent":"ecs.amazonaws.com", "errorCode":"ThrottlingException", "errorMessage":"Rate exceeded", "eventID":"0aeb38fc-229b-4912-8b0d-2e8315193e9c" } }

Lorsque ces appels d'API partagent des limites avec le trafic d'autres API de votre compte, il peut être difficile de les surveiller, même s'ils sont émis sous forme d'événements de service.

Régulation du moniteur

Il est important d'identifier les demandes d'API qui sont limitées et qui les émet. Vous pouvez utiliser AWS CloudTrail lequel contrôle la régulation et s'intègre à CloudWatch Amazon Athena et Amazon. EventBridge Vous pouvez configurer CloudTrail pour envoyer des événements spécifiques à CloudWatch Logs. CloudWatch Logs : log insights, analyse et analyse les événements. Cela permet d'identifier les détails des événements de régulation, tels que l'utilisateur ou le rôle IAM qui a effectué l'appel et le nombre d'appels d'API effectués. Pour plus d'informations, consultez la section Surveillance des fichiers CloudTrail journaux à l'aide de CloudWatch journaux.

Pour plus d'informations sur CloudWatch Logs Insights et des instructions sur la façon d'interroger les fichiers journaux, consultez la section Analyse des données des CloudWatch journaux avec Logs Insights.

Amazon Athena vous permet de créer des requêtes et d'analyser des données à l'aide du langage SQL standard. Par exemple, vous pouvez créer une table Athena pour analyser CloudTrail les événements. Pour plus d'informations, voir Utilisation de la CloudTrail console pour créer une table Athena pour les CloudTrail journaux.

Après avoir créé une table Athena, vous pouvez utiliser des requêtes SQL telles que la suivante pour examiner ThrottlingException les erreurs.

Remplacez le user-input par vos valeurs.

select eventname, errorcode,eventsource,awsregion, useragent,COUNT(*) count FROM cloudtrail_table-name where errorcode = 'ThrottlingException' AND eventtime between '2024-09-24T00:00:08Z' and '2024-09-23T23:15:08Z' group by errorcode, awsregion, eventsource, useragent, eventname order by count desc;

Amazon ECS envoie également des notifications d'événements à Amazon EventBridge. Il existe des événements de modification de l'état des ressources et des événements d'action de service. Ils incluent des événements de régulation des API tels ECS_OPERATION_THROTTLED que et. SERVICE_DISCOVERY_OPERATION_THROTTLED Pour de plus amples informations, veuillez consulter Événements liés aux actions du service Amazon ECS.

Ces événements peuvent être consommés par un service, par exemple AWS Lambda pour effectuer des actions en réponse. Pour de plus amples informations, veuillez consulter Gestion des événements Amazon ECS.

Si vous exécutez des tâches autonomes, certaines opérations d'API, par exemple, RunTask sont asynchrones, et les opérations de nouvelle tentative ne sont pas effectuées automatiquement. Dans de tels cas, vous pouvez utiliser des services tels que EventBridge l'intégration pour réessayer des opérations limitées ou AWS Step Functions ayant échoué. Pour plus d'informations, consultez Gérer une tâche de conteneur (Amazon ECS, Amazon SNS).

CloudWatch À utiliser pour surveiller l'étranglement

CloudWatch propose une surveillance de l'utilisation de l'API sur l'espace de Usage noms sous By AWS Resource. Ces métriques sont enregistrées avec le type d'API et le nom de la métrique CallCount. Vous pouvez créer des alarmes qui démarreront chaque fois que ces mesures atteignent un certain seuil. Pour plus d'informations, consultez Visualisation de vos quotas de service et définition des alarmes.

CloudWatch propose également la détection des anomalies. Cette fonctionnalité utilise l'apprentissage automatique pour analyser et établir des bases de référence en fonction du comportement particulier de la métrique sur laquelle vous l'avez activée. En cas d'activité inhabituelle de l'API, vous pouvez utiliser cette fonctionnalité en association avec des CloudWatch alarmes. Pour plus d'informations, consultez la section Utilisation de la détection des CloudWatch anomalies.

En surveillant les erreurs de régulation de manière proactive, vous pouvez les contacter Support pour augmenter les limites de régulation pertinentes et également recevoir des conseils pour les besoins spécifiques de votre application.