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
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
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
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
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
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
Vous pouvez ensuite aller dans votre navigateur préféré, et entrez l’url du container pour afficher la page
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
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