Quelle est la différence entre une tâche et un service AWS ECS?
Il semble que l'on peut soit exécuter une Tâche ou un Service sur la base d'une Définition de Tâche. Quelles sont les différences et les similitudes entre la Tâche et le Service? Est-il un indice dans le fait que l'on peut spécifier "Groupe de travail" lors de la création de la Tâche, mais pas de Service? Sont de la Tâche et de Service hiérarchiquement l'égalité des instanciations de la Définition du travail, ou le Service est composé de Tâches?
Vous devez vous connecter pour publier un commentaire.
Un Tâche Définition est une collection de 1 ou plus conteneur 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.
Un 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 un certain nombre de Tâches à toutes les heures. 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 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 références une définition de Tâche. Un Service est responsable de de la création des Tâches.
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é (lu qu' d'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.
Magnifiquement expliqué par des mots par @talentedmrjones. L'image ci-dessous vous aidera à visualiser facilement 🙂