Clusters Amazon ECS pour le type de lancement Fargate - 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.

Clusters Amazon ECS pour le type de lancement Fargate

Les fournisseurs de capacité Amazon ECS gèrent la mise à l'échelle de l'infrastructure pour les tâches de vos clusters. Chaque cluster dispose d'un ou plusieurs fournisseurs de capacité et éventuellement d'une stratégie de fournisseur de capacité facultative. La stratégie de fournisseur de capacité détermine la façon dont les tâches sont réparties entre les fournisseurs de capacité du cluster. Lorsque vous exécutez une tâche autonome ou que vous créez un service, vous pouvez utiliser soit la stratégie de fournisseur de capacité par défaut du cluster, soit une stratégie de fournisseur de capacité qui remplace celle par défaut.

Lorsque vous exécutez vos tâches AWS Fargate, vous n'avez pas besoin de créer ou de gérer la capacité. Il vous suffit d'associer au cluster l'un des fournisseurs de capacité prédéfinis suivants :

  • Fargate

  • Fargate Spot

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. Fargate Spot prend uniquement en charge les tâches Linux avec l'architecture X86_64 sur la version 1.3.0 ou ultérieure de la plate-forme.

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 plus d’informations, consultez Événements de modification de l'état des tâches Amazon ECS.

Un cluster peut contenir une combinaison à la fois de fournisseurs de capacité Fargate et de groupe Auto Scaling. Toutefois, une stratégie de fournisseur de capacité ne peut contenir que des fournisseurs de capacité Fargate ou de groupe Auto Scaling, mais pas les deux. Pour plus d'informations, consultez 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 utilisant un fournisseur de capacité de groupe 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 weight n'est spécifiée pour un fournisseur de capacité dans la console, alors la valeur par défaut 1 est utilisée. Si vous utilisez l'API ou AWS CLI, la valeur par défaut de 0 est 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 coefficient de pondération est nul ne sont pas habitués à 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 RunTask ou CreateService utilisant 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 une combinaison à la fois de fournisseurs de capacité de groupe Auto Scaling et de fournisseurs de capacité Fargate. Toutefois, une stratégie de fournisseur de capacité ne peut contenir que des fournisseurs de capacité du groupe Auto Scaling ou Fargate, mais pas les deux.

  • Un cluster peut contenir une combinaison de services et de tâches autonomes utilisant à la fois des fournisseurs de capacité et des types de lancement. 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 de Fargate Spot

Pendant les périodes de forte demande, la capacité Spot de Fargate peut être indisponible. Cela peut retarder les tâches Spot de Fargate. Dans ce cas, les services Amazon ECS réessayent de lancer des 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) de 120 secondes ou moins dans la définition de conteneur utilisée par la tâche. La valeur stopTimeout par défaut est de 30 secondes. Vous pouvez spécifier une valeur stopTimeout plus 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 plus d’informations, consultez 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 stopTimeout configuré 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, consultez la section Création d'une EventBridge règle 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" ] } }