178 votes

AWS ECS - Quelle est la différence entre une tâche et un service?

Il semble que l'on puisse exécuter une tâche ou un service basé sur une définition de tâche. Quelles sont les différences et les similitudes entre tâche et service? Y a-t-il un indice sur le fait que l'on peut spécifier "Groupe de tâches" lors de la création d'une tâche mais pas d'un service? La tâche et le service sont-ils hiérarchiquement égaux aux instanciations de la définition de tâche ou le service est-il composé de tâches?

Je vous remercie.

370voto

talentedmrjones Points 1354

Une Tâche de Définition est une collection de 1 ou plus, contenant les configurations. Certaines Tâches peuvent avoir besoin d'un seul conteneur, tandis que d'autres Tâches pourraient avoir besoin de 2 ou plus potentiellement liées conteneurs qui s'exécutent simultanément. La définition de Tâche vous permet de spécifier le Panneau de l'image à utiliser, les ports d'exposer, de PROCESSEUR et de mémoire pour attribuer, de façon à collecter les journaux, et de définir des variables d'environnement.

Une Tâche est créé lorsque vous exécutez une Tâche directement, qui lance des conteneur(s) (définie dans la définition de tâche) jusqu'à ce qu'ils soient à l'arrêt ou à la sortie, de leur propre chef, à quel point ils sont pas automatiquement remplacé. Tâches en cours d'exécution directement est idéale pour les travaux en cours d'exécution, peut-être comme un exemple de choses qui ont été réalisées via CRON.

Un Service est utilisé pour garantir que vous avez toujours certains nombre de Tâches en cours d'exécution à tout moment. Si une Tâche conteneur des sorties en raison de l'erreur, ou de la sous-jacentes instance EC2 échoue et est remplacé, l'ECS Service remplacera la Tâche qui a échoué. C'est pourquoi nous avons créer des Clusters afin que le Service a beaucoup de ressources en termes de CPU, de Mémoire et les ports Réseau à utiliser. Pour nous, il n'a pas vraiment d'importance quelle instance les Tâches s'exécutent sur aussi longtemps qu'ils courent. Un Service de configuration de références d'une définition de Tâche. Un Service est responsable de la création des Tâches.

Les Services sont généralement utilisés pour de longues applications comme les serveurs web. Par exemple, si j'ai déployé mon site propulsé par Node.JS dans l'Oregon (états-unis-l'ouest-2) je voudrais dire au moins trois Tâches en cours d'exécution dans les trois Zones de Disponibilité (AZ) pour l'amour de la Haute-Disponibilité; si l'un tombe en panne, j'ai un autre deux, et à l'échec de l'un sera remplacé (lire que comme auto-guérison!). La création d'un Service est la façon de le faire. Si j'avais 6 instances EC2 dans mon cluster, 2 par AZ, le Service sera automatiquement l'équilibre des Tâches dans l'ensemble des zones du mieux qu'il peut, tout en considérant l'uc, de la mémoire et des ressources du réseau.

Mise à JOUR:

Je ne suis pas sûr que ça aide à penser à ces choses de façon hiérarchique.

Un autre point très important est qu'un Service peut être configuré pour utiliser un équilibreur de charge, de sorte qu'il crée les Tâches qu'elle lance des conteneurs définis dans la Tâche de Définition-le Service de l'enregistrer automatiquement le conteneur de l'instance EC2 avec l'équilibrage de charge. Les tâches ne peuvent pas être configuré pour utiliser un équilibreur de charge, seuls les Services peuvent.

63voto

PK' Points 105

Magnifiquement expliqué par @talentedmrjones. L'image ci-dessous vous aidera à visualiser facilement :)

Cluster, Service, Instance EC2 et Task en action

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X