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.
Gestion des problèmes de limitation d’Amazon ECS
Les erreurs de limitation sont classées en deux grandes catégories : la limitation synchrone et la limitation asynchrone.
Limitation synchrone
En cas de limitation 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 de plus amples informations sur la limitation impliquée et les limites d’accélération pertinentes, consultez la section Limitation de requête 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 backoff exponentiel et d’instabilité avec une logique de nouvelle tentative pour les appels d’API. Pour de plus amples informations, consultez la section Délais d’attente, nouvelles tentatives et backoff avec instabilité
Si vous utilisez un AWS SDK, la logique de nouvelle tentative automatique est intégrée et configurable.
Limitation asynchrone
La régulation asynchrone se produit en raison de flux de travail asynchrones dans lesquels Amazon ECS 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’API CreateNetworkInterface est invoquée pour les tâches qui utilisent le mode réseau awsvpc, et l’API DescribeTargetHealth est invoquée lors de l’exécution des surveillances de l’état pour les tâches enregistrées sur un équilibreur de charge.
Lorsque vos charges de travail atteignent une taille 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 ELB, telles que RegisterTarget ou DescribeTargetHealth pour enregistrer l'interface elastic network et le load balancer, respectivement. Ces appels d’API peuvent dépasser les limites de l’API, ce qui entraîne des erreurs de limitation. Voici un exemple d'erreur de régulation ELB 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.
Surveillance de la limitation
Il est important d’identifier quelles requêtes d’API 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 limitation, 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 les erreurs ThrottlingException.
Remplacez le user-input par vos valeurs.
select eventname, errorcode,eventsource,awsregion, useragent,COUNT(*) count FROM cloudtrail_table-namewhere 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 limitation des API tels que ECS_OPERATION_THROTTLED et SERVICE_DISCOVERY_OPERATION_THROTTLED. Pour de plus amples informations, veuillez consulter Événements d’action d’un 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 API telles que RunTask sont asynchrones et les opérations de répétition ne sont pas automatiquement effectuées. 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 la section Gestion d’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 de plus amples informations, consultez la section Visualisation de vos quotas de service et définition des alarmes.
CloudWatch propose également la détection des anomalies. Cette fonctionnalité utilise le machine learning 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é conjointement 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.