Sylvain BRUAS

Accueil

Bien débuter avec Amazon EC2 Container Service (101) – Cluster & task

4 min read

Partager sur :

  • ECS Cluster

    1 – Qu’est ce qu’un Cluster

    Un cluster ECS est un regroupement d’instances EC2 qui vont héberger vos containers.

    Exemple d'un cluster ECS

    Exemple d’un cluster ECS

    Un cluster peut contenir une ou plusieurs instances, de différents types et taille. Dans notre exemple, nous utiliserons une t2.micro.

    2 – Création d’un cluster ECS

    Nous allons nous connecter à la console web AWS aws pour ecs. Nous allons cliquer sur “Cluster” dans le menu de gauche. Dans l’écran suivant (liste des clusters), nous allons cliquer sur “Create Cluster” pour créer notre premier cluster.

    Dans l’écran de création de cluster nous avons un formulaire très complet avec de nombreuses options. Nous allons utiliser les champs suivants :

    • Cluster Name : helloworldCluster
    • Provisioning Model : On-Demand Instance
    • EC2 instance type : t2.micro
    • VPC : choisir la VPC où vous désirez créer vos instances
    • Security group : Choisir/Créer un security group qui ouvre le port 80
    • Cliquez sur le bouton bleu “Create” pour créer le cluster. Il devrait maintenant apparaître dans la liste des clusters

    ECS Cluster

    ECS Cluster

    3 – Task Definition ou comment définir le lancement des containers

    Une task definition est une liste des paramètres qui vont permettre le lancement de nos containers.

    Pour la créer, nous allons cliquer sur “Task definitions” dans le menu de gauche, puis sur le bouton bleu “Create new Task Definition”.

    Cette première task definition va nous permettre de lancer un container, qui aura son port HTTP (80) lié au port 8080 sur l’instance hôte.

    Pour notre exemple nous allons remplir les champs suivants :

    • Task Definition Name : Helloworld-1
    • Container Definitions : cliquez sur “add container”
      • Container name : Helloworld
      • Image : 123456789012.dkr.ecr.eu-west-1.amazonaws.com/helloworld:latest
      • Memory Limits (MB) : 128
      • Port mappings :
        • Host : 8080
        • Container : 80
        • protocol : tcp
      • Cliquez sur le bouton “Add”

    Vous pouvez ensuite cliquer sur le bouton bleu “Create”

    ECS Task definition

    ECS Task definition

    De nombreuses autres options sont disponibles dans le Container Definitions, pour permettre une définition fine des besoins des containers (Mapping de volumes, lien entre containers …)

    4 – Exécution d’une task

    Maintenant que nous avons créé notre Cluster de machine hôte et que nous avons décrit la manière de lancer le container, nous pouvons enfin l’exécuter.

    Pour cela, nous allons cliquer sur le menu “Cluster” puis choisir dans la liste notre cluster helloworldCluster. Nous arrivons donc ici :

    ECS Cluster Hello world

    ECS Cluster Hello world

    Cliquez sur l’onglet “Task” puis sur le bouton bleu “Run new Task” Dans l’écran suivant nous allons choisir tous les éléments que nous avons créé précédemment

    ECS run task

    ECS run task

    La task est créée et est prête à recevoir des messages.

    5 – Connexion au container

    Il ne reste plus qu’à valider que le container répond bien à nos requêtes HTTP.

    Nous allons nous connecter directement à l’instance hôte sur le port 8080.

    Pour trouver son IP, il suffit de cliquer sur le nom de la task (dans notre cas 67f6a5b4-4…) pour afficher les détails. Dans la partie container il faut cliquer sur le triangle à côté du nom du container (helloworld) pour afficher les détails, l’IP sera dans la section “Network Bindings”

    ECS host IP

    ECS host IP

    Vous pouvez ensuite aller dans votre navigateur préféré, et entrez l’url du container pour afficher la page

    ECS task result

    ECS task result

    Félicitations, vous avez fait fonctionner votre premier container sur Amazon EC2 Container Service.

    Dans le prochain article nous verrons comment aller plus loin en créant un service se basant sur l’image de container existante. Ainsi plusieurs containers seront lancés et pourront répondre à vos requêtes

Sylvain BRUAS

Sylvain BRUAS

Je suis architecte solution AWS depuis plus de 8 ans. J'interviens dans les grands groupes pour les aider dans leur transformation vers le cloud AWS.

Mes compétences principales sont les fondations AWS, le Dev(SecFin*)Ops et les containers.

AWS Community Builder et AWS Authorized Instructor depuis 2024