ConteneursService régional
Fargate
Permet d’exécuter des conteneurs sans provisionner ni administrer les machines qui les portent
Présentation
- Moteur de calcul serverless pour conteneurs, que pilotent ECS et EKS
- Le CPU et la mémoire d’une tâche sont déclarés ; AWS fournit la machine, la corrige et la dimensionne
Cas d’utilisation
- Microservices et applications à charge irrégulière
- Traitements batch et tâches planifiées
EC2 ou Fargate
| EC2 | Fargate | |
|---|---|---|
| Machines | à provisionner | fournies par AWS |
| Facturation | à l’instance, allumée ou non | aux ressources demandées |
| Isolation | noyau partagé entre tâches | une micro-VM par tâche |
Mise en œuvre
Fargate ne s’emploie pas seul : c’est ECS ou EKS qui l’appelle, et chacun a sa manière de désigner ce qui doit y être exécuté.
- Sur ECS, chaque tâche déclare son type de lancement, EC2 ou FARGATE. Un même cluster peut donc exécuter les deux.
- Sur EKS, un Fargate profile énumère les namespaces et les étiquettes des pods à exécuter sur Fargate. Les autres restent sur des nœuds EC2.
Réseau
- Mode awsvpc obligatoire : une interface réseau et une adresse IP privée par tâche
- S’enregistre en cible de type ip derrière un ALB ou un NLB
- En sous-réseau privé, joindre ECR ou CloudWatch exige une NAT Gateway ou des VPC endpoints
Stockage
- 20 Go de stockage éphémère par tâche, extensible jusqu’à 200 Go
- Ce stockage disparaît avec la tâche. Pour la persistance il faut utiliser un volume EFS, partageable entre tâches, ou un volume EBS attaché à une tâche ECS
Facturation
- À la seconde, sur les ressources demandées, avec une minute au minimum
- Fargate Spot : jusqu’à 70 % de remise, préavis de 2 minutes — sur ECS uniquement
- Le couple CPU / mémoire n’est pas libre : chaque valeur de vCPU n’accepte qu’une liste de tailles mémoire. 0,25 vCPU se limite à 0,5, 1 ou 2 Go ; 16 vCPU monte à 120 Go
Sécurité
L’isolation de Fargate n’est pas qu’une commodité d’exploitation : elle réduit la surface d’attaque.
- Une micro-VM par tâche. Chaque tâche s’exécute dans sa propre micro-VM Firecracker. Aucun noyau n’est partagé entre deux tâches, là où plusieurs conteneurs d’une même instance EC2 partagent celui de l’hôte.
- Pas d’hôte à atteindre. Ni accès shell, ni démon Docker exposé, ni chemin vers les autres conteneurs en passant par l’hôte
- Pas de rôle d’instance à voler. Les task roles existent aussi en mode EC2 ; mais là, un conteneur peut joindre le service de métadonnées de l’instance et obtenir les identifiants de son rôle, souvent plus large — à moins de l’avoir explicitement bloqué. Sur Fargate, il n’y a pas de rôle d’instance.
- Un groupe de sécurité par tâche. Le mode awsvpc donne à chaque tâche sa propre interface réseau, donc ses propres règles de filtrage, quand le mode bridge sur EC2 fait partager l’interface de l’hôte
- Correctifs appliqués par AWS sur le noyau de l’hôte, le moteur de virtualisation et l’agent Fargate, sans interruption à gérer
Dans le modèle de responsabilité partagée, la part qui reste à la charge du client se réduit d’autant.
Limites à connaître
- Pas de conteneur privilégié, pas de réseau host, pas de GPU
- Pas de DaemonSet sur EKS : chaque pod ayant son nœud, un agent par nœud n’a pas de sens
- Démarrage plus lent qu’une instance déjà chaude
- Conteneurs Windows : possibles sur ECS, pas sur EKS