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.
Clusters Amazon ECS pour Fargate
Avec Amazon ECS sur les fournisseurs AWS Fargate de capacité, vous pouvez utiliser à la fois les capacités Fargate et Fargate Spot pour vos tâches Amazon ECS.
Avec Fargate Spot, vous pouvez exécuter des tâches Amazon ECS tolérantes aux interruptions à un tarif réduit par rapport au prix de Fargate. Fargate Spot exécute les tâches sur la capacité de calcul de réserve. Lorsque la AWS capacité est rétablie, vos tâches sont interrompues par un avertissement de deux minutes.
Lorsque les tâches qui utilisent les fournisseurs de capacité Fargate et Fargate Spot sont arrêtées, l'événement de changement d'état de la tâche est envoyé à Amazon. EventBridge Le motif de l'arrêt en décrit la cause. Pour de plus amples informations, veuillez consulter Événements de changement d’état d’une tâche Amazon ECS.
Un cluster peut contenir une combinaison de fournisseurs de capacité du groupe Fargate et Amazon EC2 Auto Scaling. Cependant, une stratégie de fournisseur de capacité ne peut inclure que les fournisseurs de capacité du groupe Fargate ou EC2 Amazon Auto Scaling, mais pas les deux. Pour plus d'informations, consultez Amazon EC2 Auto Scaling Group Capacity Providers.
Prenez les points suivants en compte lors de l'utilisation de fournisseurs de capacité :
-
Vous devez associer un fournisseur de capacité à un cluster avant de l’associer à la stratégie du fournisseur de capacité.
-
Vous pouvez spécifier un maximum de 20 fournisseurs de capacité pour une stratégie de fournisseur de capacité.
-
Vous ne pouvez pas mettre à jour un service en utilisant un fournisseur de capacité du groupe Amazon EC2 Auto Scaling pour utiliser un fournisseur de capacité Fargate. L'inverse est également vrai.
-
Dans une stratégie de fournisseur de capacité, si aucune valeur
weightn'est spécifiée pour un fournisseur de capacité dans la console, alors la valeur par défaut1est utilisée. Si vous utilisez l'API ou AWS CLI, la valeur par défaut de0est utilisée. -
Lorsque plusieurs fournisseurs de capacité sont spécifiés dans le cadre d'une stratégie de fournisseur de capacité, au moins l'un des fournisseurs de capacité doit disposer d'une valeur de poids supérieure à zéro. Les fournisseurs de capacité dont le poids est nul ne sont pas utilisés pour attribuer des tâches. Si vous spécifiez, dans une stratégie, plusieurs fournisseurs de capacité qui possèdent tous un poids nul, toutes les actions
RunTaskouCreateServiceutilisant la stratégie de fournisseur de capacité échoueront. -
Une valeur de base ne peut être définie que pour un seul fournisseur de capacité dans une stratégie de fournisseur de capacité. Si aucune valeur de base n'est spécifiée, la valeur par défaut de zéro est utilisée.
-
Un cluster peut contenir à la fois des fournisseurs de capacité du groupe Amazon EC2 Auto Scaling et des fournisseurs de capacité Fargate. Cependant, une stratégie de fournisseur de capacité ne peut inclure que le groupe Amazon EC2 Auto Scaling ou les fournisseurs de capacité Fargate, mais pas les deux.
-
Un cluster peut contenir un mélange de services et de tâches autonomes qui utilisent les deux fournisseurs de capacité. Un service peut être mis à jour pour utiliser une stratégie de fournisseur de capacité plutôt qu'un type de lancement. Vous devez toutefois forcer un nouveau déploiement pour ce faire.
Avis de résiliation Spot Fargate
Pendant les périodes de forte demande, la capacité Spot de Fargate peut être indisponible. Cela peut retarder les tâches Spot de Fargate. Lorsque cela se produit, les services Amazon ECS essaient de relancer les tâches jusqu’à ce que la capacité requise soit disponible. Fargate ne remplace pas la capacité Spot par une capacité à la demande.
Lorsque des tâches utilisant la capacité Fargate Spot sont arrêtées en raison d'une interruption Spot, un avertissement d'interruption sous deux minutes est envoyé avant cet arrêt. L'avertissement est envoyé en tant qu'événement de changement d'état de tâche à Amazon EventBridge et en tant que signal SIGTERM à la tâche en cours d'exécution. Si vous utilisez Fargate Spot au titre d'un service, le planificateur de service reçoit dans ce scénario le signal d'interruption et tente de lancer des tâches supplémentaires sur Fargate Spot si la capacité est disponible. Un service avec une seule tâche est interrompu jusqu'à ce que la capacité soit disponible. Pour plus d'informations sur un arrêt progressif, veuillez consulter le billet de blog Graceful shutdowns with ECS
Pour faire en sorte que vos conteneurs se ferment correctement avant l'arrêt de la tâche, vous pouvez configurer les éléments suivants :
-
Il est possible de spécifier une valeur de temporisation d'arrêt (
stopTimeout) de120secondes ou moins dans la définition de conteneur utilisée par la tâche. La valeurstopTimeoutpar défaut est de 30 secondes. Vous pouvez spécifier une valeurstopTimeoutplus longue pour disposer de plus de temps entre le moment où l'événement de changement d'état de tâche est reçu et l'instant où le conteneur est arrêté de force. Pour de plus amples informations, veuillez consulter Temporisations de conteneurs. -
Le signal SIGTERM doit être reçu à l'intérieur du conteneur pour effectuer des actions de nettoyage. Si vous ne parvenez pas à traiter ce signal, la tâche reçoit un signal SIGKILL après le
stopTimeoutconfiguré et peut entraîner une perte ou une corruption de données.
Voici un extrait d'événement de changement d'état de tâche. Cet extrait indique le motif et le code d'arrêt d'une interruption Fargate Spot.
{ "version": "0", "id": "9bcdac79-b31f-4d3d-9410-fbd727c29fab", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "resources": [ "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6f1cebef" ], "detail": { "clusterArn": "arn:aws:ecs:us-east-1:111122223333:cluster/default", "createdAt": "2016-12-06T16:41:05.702Z", "desiredStatus": "STOPPED", "lastStatus": "RUNNING", "stoppedReason": "Your Spot Task was interrupted.", "stopCode": "SpotInterruption", "taskArn": "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6fEXAMPLE", ... } }
Voici un modèle d'événement utilisé pour créer une EventBridge règle pour les événements de changement d'état des tâches Amazon ECS. Vous pouvez éventuellement spécifier un cluster dans le champ detail. Cela signifie que vous recevrez des événements de changement d'état de tâche pour ce cluster. Pour plus d'informations sur la création d'une EventBridge règle, consultez Getting started with Amazon EventBridge dans le guide de EventBridge l'utilisateur Amazon.
{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Task State Change" ], "detail": { "clusterArn": [ "arn:aws:ecs:us-west-2:111122223333:cluster/default" ] } }