Clément Schanen

ConteneursService régional

ECS

Elastic Container Service

Permet de déployer, gérer et scaler des applications conteneurisées sur AWS

Présentation

ECS simplifie la gestion de plusieurs conteneurs en automatisant :

  • le déploiement
  • le scaling
  • la mise en réseau
  • l’intégration avec les services AWS

Cas d’utilisation :

  • Déployer des applications Docker en production
  • Gérer des architectures microservices
  • Exécuter des traitements batch ou asynchrones
  • Remplacer des serveurs traditionnels par des conteneurs

Concepts clés

Cluster

  • Regroupement de ressources de calcul sur lesquelles s’exécutent les conteneurs
  • Deux modes possibles :
    • EC2 : gestion des machines par l’utilisateur
    • Fargate : infrastructure entièrement managée par AWS

Task definition

  • Template d’exécution qui décrit :
    • les conteneurs à lancer
    • les images (via ECR)
    • les ressources (CPU / mémoire)
    • les variables d’environnement
    • les ports et configurations réseau

Task

  • Instance d’exécution d’une task definition

Service

  • Permet de :
    • Maintenir un nombre de tâches en fonctionnement
    • Gérer le scaling automatique
    • Assurer la haute disponibilité

ECS Anywhere

  • Permet d’exécuter des conteneurs en dehors d’AWS
  • Cas d’usage :
    • Infrastructures on-premise
    • Environnements hybrides
  • Fonctionnement :
    • Nécessite l’installation des agents (ECS + SSM) et de Docker
    • Les ressources sont enregistrées dans un cluster ECS
  • Limitations :
    • Pas d’intégration native avec les load balancers AWS
    • Gestion réseau plus complexe

Scalabilité & haute disponibilité

  • ECS permet de construire des applications résilientes :
    • Scaling automatique (nombre de tâches)
    • Répartition sur plusieurs AZ
    • Redémarrage automatique des tâches en cas d’échec