AWS Fargate is a technology that can be used with Amazon ECS and Amazon EKS. It allows you to run containers without managing servers or clusters of Amazon EC2 instances.

Fargate élimine le besoin de configurer, de mettre à l'échelle ou de provisionner des clusters de machines virtuelles pour exécuter des conteneurs. Il n'est pas nécessaire de sélectionner des types de serveurs, de planifier la mise à l'échelle du cluster ou d'optimiser l'emballage du cluster.

Nous pouvons utiliser le type de lancement Fargate ou un fournisseur de capacité Fargate pour exécuter vos tâches et services Amazon ECS. Pour utiliser Fargate, vous pouvez empaqueter votre application dans conteneurs, spécifiez les exigences en matière de système d'exploitation, de processeur et de mémoire, configurez la mise en réseau et les politiques IAM, puis lancez-le.

Il n'est pas nécessaire de maintenir une capacité CPU et RAM de base pour héberger des conteneurs. Nous pouvons indiquer à AWS la quantité de ressources dont une tâche a besoin et laisser le reste de la tâche à AWS. Chaque tâche Fargate a sa barrière d'isolation, de sorte qu'elle ne partage pas le noyau, le processeur, la mémoire ou l'interface réseau élastique sous-jacents avec d'autres tâches.

YouTube vidéo

How Does Fargate Work?

Fargate fonctionne en vous permettant de déployer des conteneurs sans configurer ni gérer l'infrastructure qui les hébergera. Vous indiquez à Fargate quelles images de conteneur vous souhaitez exécuter et combien de ressources CPU et mémoire vous souhaitez attribuer. Les serveurs hôtes sont ensuite automatiquement provisionnés par Fargate. Lorsque vos conteneurs sont en cours d'exécution, vous ne payez que les ressources utilisées.

Fargate est un moteur informatique sans serveur, car il élimine le besoin pour les utilisateurs finaux de gérer les serveurs qui hébergent les conteneurs. Pour être clair, les serveurs sont toujours là ; AWS les gère simplement. Fargate ne doit pas être confondu avec AWS Lambda, un autre service informatique sans serveur qui n'a pas été créé avec les conteneurs à l'esprit (bien que Lamba prenne désormais en charge le déploiement d'images de conteneurs).

How does Fargate help?

AWS Fargate calcule la quantité exacte de calcul, de mémoire et d'autres ressources requises pour vos tâches, vous n'avez donc pas à vous soucier du choix des types d'instance ou de la mise à l'échelle de la capacité du cluster.

Il vous permet de payer les ressources dont vous avez besoin pour exploiter vos conteneurs au fur et à mesure de leur utilisation, en évitant le surprovisionnement et en payant pour des serveurs dont vous n'avez pas besoin.

Les tâches Fargate (pods) s'exécutent dans leurs propres noyaux, ce qui se traduit par un environnement de calcul sûr et isolé avec des charges de travail isolées et une sécurité accrue.

Il permet aux équipes de concevoir et d'exécuter des applications à l'aide de conteneurs ECS ou EKS sans avoir à gérer des tâches chronophages gestion des infrastructures des activités telles que la mise à l'échelle et la sécurisation des serveurs ou l'application de correctifs aux systèmes d'exploitation.

Avec des connexions intégrées avec d'autres services AWS comme Amazon CloudWatch Container Insights, AWS Fargate offre un haut niveau d'observabilité. Vous pouvez également utiliser plusieurs technologies tierces pour collecter des journaux et des métriques.

Nous pouvons également utiliser efficacement la vaste gamme de services AWS lors de l'utilisation de conteneurs avec Fargate.

Fargate lancera et mettra à l'échelle en permanence les ressources informatiques pour répondre aux exigences du conteneur, évitant ainsi le surprovisionnement et garantissant que vous ne payez pas pour des ressources que vous n'utilisez pas. Vous pouvez également calculer une stratégie d'économies, l'option Fargate Spot peut vous faire économiser jusqu'à 70 % sur les coûts ordinaires, mais elle n'est optimale que pour les applications interruptibles.

Components of Fargate

Clusters

Un regroupement logique de tâches ou de services est un cluster Amazon ECS. Les clusters peuvent être utilisés pour isoler vos applications. Lorsque vous utilisez Fargate pour effectuer vos tâches, il gère les ressources de votre cluster.

Définitions des tâches

Une définition de tâche est un fichier texte qui décrit au moins un des conteneurs de votre application. C'est un fichier JSON. Il peut être utilisé pour décrire jusqu'à dix conteneurs à la fois. La définition de tâche de votre application sert de modèle. Il spécifie les nombreux paramètres de votre application.

Par exemple, vous pouvez l'utiliser pour définir les paramètres du système d'exploitation, les conteneurs à utiliser, les ports à ouvrir pour votre application et les volumes de données à utiliser avec les conteneurs de la tâche. Les exigences de votre application déterminent les paramètres particuliers disponibles pour la définition des tâches.

Tâches

Une tâche est une instanciation au niveau du cluster d'une définition de tâche. Une fois que vous avez créé une définition de tâche pour votre application dans Amazon ECS, vous pouvez choisir le nombre de tâches qui s'exécuteront sur votre cluster. Nous pouvons exécuter une tâche dans le cadre d'un service ou d'un processus distinct.

Services

Dans un cluster Amazon ECS, vous pouvez utiliser un service Amazon ECS pour exécuter et gérer simultanément le nombre de tâches souhaité. Le planificateur de service Amazon ECS exécute une autre instance en fonction de la définition de votre tâche si l'une de vos tâches échoue ou s'arrête pour une raison quelconque. Il le fait pour le remplacer et maintenir le nombre de tâches dans le service au niveau correct.

YouTube vidéo

Système d'exploitation et architecture du processeur

The operating systems supported by Fargate are Amazon Linux 2, Windows server 2019 Full, and Windows server 2019 core.

ARM et X86_64 sont les deux architectures disponibles pour la définition de tâche Amazon ECS. Si vous utilisez des conteneurs Windows, vous devez disposer d'une architecture CPU X86_64. En revanche, si vous utilisez des conteneurs Linux, vous pouvez utiliser l'architecture ARM64 pour vos applications basées sur ARM et l'architecture CPU X86_64.

ECS with EC2 instances Vs. ECS with AWS Fargate 

Dans le Modèle d'instance EC2, les conteneurs sont déployés sur les instances EC2 (VM) du cluster. ECS les gère conjointement avec les tâches qui font partie de la définition de tâche.

👍

  • Le type d'instance EC2 utilisé ici est entièrement sous votre contrôle.
  • Vous pouvez utiliser des instances ponctuelles qui réduisent les coûts jusqu'à 90 %.

Contre

  • Vous devez vous occuper des correctifs de sécurité et de la sécurité réseau des instances ; vous êtes également responsable de leur évolutivité dans le cluster.

Dans le Modèle Fargate, vous n'avez plus à vous soucier des instances ou des serveurs EC2. Sélectionnez la configuration CPU et mémoire requise, et Fargate déploiera vos conteneurs.

👍

  • Vous n'avez pas à gérer de serveurs.
  • AWS est responsable de la disponibilité et de l'évolutivité, mais il est toujours recommandé de sélectionner la mémoire et le processeur appropriés ; sinon, notre application risque de devenir indisponible.
  • Si vous décidez d'utiliser Fargate Spot, vous pouvez obtenir jusqu'à 70 % de réduction sur le prix Fargate.

Contre

  • ECS avec AWS Fargate ne prend en charge qu'un seul mode de mise en réseau -awsvpc-. Par conséquent, cela limite votre contrôle sur la couche réseau.

EKS without Fargate Vs. EKS with Fargate

In EKS sans le modèle Fargate, vous devez décider à l'avance de la taille du cluster. Vous pouvez toujours modifier les nœuds manuellement plus tard, mais c'est gênant par rapport à la spécification de la taille idéale dès le départ.

👍

  • Ce modèle vous donne plus de contrôle de différentes manières, comme vous pouvez spécifier des variables de configuration telles que HostNetwork et HostPort.
  • Fargate n'est pas pris en charge dans toutes les régions, vous préférez donc utiliser EKS sans Fargate si vous souhaitez que votre conteneur soit disponible dans plus de régions.

Inconvénients 👎

  • EKS sans Fargate est un peu difficile à utiliser.

In EKS avec le modèle Fargate, vous n'avez pas besoin de spécifier la taille des clusters au préalable.

👍

  • EKS avec Fargate est plus sécurisé car il s'exécute dans des machines virtuelles dédiées. Le fait qu'il ne supporte pas le mode privilégié est une sorte de fonctionnalité de sécurité.
  • C'est moins cher sur le long terme.

Contre

  • Cela vous donne moins de contrôle de différentes manières

Conclusion

Fargate est un outil extrêmement puissant et mature. Il vous fait gagner du temps, de l'argent et beaucoup d'efforts en faisant toute la gestion de l'infrastructure pour vous. Fargate est particulièrement avantageux si vous débutez conteneurs et souhaitez simplement vous concentrer sur la création de votre application plutôt que sur sa maintenance.