sur le service Amazon Elastic Container (Amazon ECS)

Le service Amazon Elastic Container (Amazon ECS) est la solution Amazon Web Service à utiliser pour exécuter des applications Docker dans un cluster évolutif. Dans ce tutoriel, vous allez apprendre à exécuter un exemple d'application compatible avec Docker sur un cluster Amazon ECS placé derrière un programme d'équilibrage de charge (ELB). Vous testerez cette application, puis supprimerez les ressources allouées afin de pas avoir à payer de frais.

Toutes les étapes de ce didacticiel sont éligibles à l'offre gratuite.

Gérez vos ressources AWS

Se connecter à la console

L'assistant Amazon ECS qui s'ouvre à la première exécution vous guide pas à pas pour créer un cluster et lancer un exemple d'application Web. Au cours de cette première étape, vous accédez à la console Amazon ECS et lancez l'assistant.



b. Avec Amazon ECS, vous avez la possibilité d'utiliser Amazon Elastic Container Registry (Amazon ECR) pour créer un référentiel image et y envoyer une image par push, le tout dans le cadre de l'assistant de première exécution (voir capture d'écran sur la droite). Cette fonctionnalité n'est actuellement disponible que dans certaines régions. 

  • Si vous n'avez pas accès aux options Amazon ECR, ignorez cette partie et passez directement à l'étape 2.
  • Si vous avez accès aux options Amazon ECR, désélectionnez la case Deploy a sample application onto an Amazon ECS Cluster (Déployer un exemple d'application dans un cluster Amazon ECS) et cliquez sur Continue (Continuer).
deploy-docker-container-1

(cliquez pour zoomer)

deploy-docker-container-1

La task definition (définition des tâches) correspond au plan stratégique de votre application. Au cours de cette étape, vous spécifiez la définition des tâches afin d'indiquer quelle image Docker doit être utilisée par Amazon ECS pour les conteneurs, ainsi que le nombre de conteneurs à utiliser et les ressources allouées à chaque conteneur.


Cette définition comporte, au départ, des valeurs de configuration définies par défaut.

  • Vous devez les vérifier, puis cliquer sur Next Step (Étape suivante).

Pour modifier ces configurations ou en savoir plus, consultez la page relative aux paramètres de la définition des tâches.

deploy-docker-container-2

(cliquez pour zoomer)

deploy-docker-container-2

Une fois la définition des tâches créée, vous devez configurer le service Amazon ECS. Ce service lance puis tient à jour des copies de la définition des tâches au sein de votre cluster. Par exemple, si vous exécutez une application en tant que service, Amazon ECS peut assurer la récupération automatique des tâches interrompues et maintenir le nombre de copies que vous avez défini.


a. Configurez les options du service :

  • Service Name (Nom du service) : Le service par défaut, sample-webapp, est une application Web de type « Hello World » fournie par AWS. Cette application est prévue pour s'exécuter indéfiniment. Si vous l'exécutez en tant que service, elle relancera toute tâche défaillante ou s'étant subitement interrompue.
  • Desired number of tasks (Nombre de tâches souhaité) : Si vous ne voulez pas sortir du cadre de l'offre gratuite AWS, conservez la valeur 1 par défaut. Cette opération crée 1 copie de votre tâche.
deploy-docker-container-3

(cliquez pour zoomer)

deploy-docker-container-3

b. Elastic Load Balancing : Vous avez la possibilité d'utiliser un programme d'équilibrage de charge avec votre service. Amazon ECS peut créer un programme Elastic Load Balancing (ELB) afin de répartir le trafic entre les différentes instances du conteneur sur lequel votre tâche est exécutée.

  • Container name: host port (Nom du conteneur : hôte port) : Sélectionnez Simple-app:80.
  • Pour les champs ELB Listener Protocol (Protocole d'écoute ELB), ELB listener port (Port d'écoute ELB) et ELB health check (Vérification de l'état ELB), des valeurs sont définies par défaut pour l'exemple d'application. Pour en savoir plus sur la configuration de l'équilibrage de charge, consultez la page consacrée à l'équilibrage de la charge du service.
deploy-docker-container-3b

(cliquez pour zoomer)

deploy-docker-container-3b

c. Avant d'associer un équilibreur de charge à un service Amazon ECS, vous devez créer un rôle Identity and Access Management (IAM) et l'attribuer au service. Ainsi, Amazon ECS pourra appeler les API Amazon EC2 et Elastic Load Balancing afin d'inscrire ou de désinscrire les instances auprès de vos équilibreurs de charge.

  • Si vous n'avez pas encore de rôle IAM défini pour le service, Amazon ECS en créera un, nommé ecsServiceRole.
  • S'il existe déjà un rôle de service Amazon ECS, sélectionnez-le dans la liste déroulante.
deploy-docker-container-3c

(cliquez pour zoomer)

deploy-docker-container-3c

d. Vérifiez vos paramètres, puis cliquez sur Next Step (Étape suivante).

deploy-docker-container-3d

(cliquez pour zoomer)

deploy-docker-container-3d

Vos tâches Amazon ECS s'exécutent sur un cluster qui regroupe les instances de conteneur qui font fonctionner l'agent de gestion des conteneurs Amazon ECSAu cours de cette étape, vous devez configurer le cluster, vérifier les paramètres de sécurité et définir les rôles IAM. 


a. Définissez les paramètres de configuration ci-dessous :

  • Cluster name (Nom du cluster) : Indiquez sample-cluster.
  • EC2 instance type (Type d'instance EC2) : Le type d'instance par défaut, t2.micro, vous permet de rester dans le cadre de l'offre gratuite. Les types d'instance incluant davantage de ressources CPU et de mémoire peuvent traiter plus de tâches. Pour en savoir plus sur les différents types d'instance, consultez la page Types d'instances Amazon EC2.
  • Desired number of instances (Nombre d'instances souhaité) : Conservez la valeur 1 par défaut pour lancer une instance Amazon EC2 qui s'exécutera dans votre cluster et traitera les tâches qui y seront placées. Plus le nombre d'instances au sein du cluster est élevé, plus vous pouvez augmenter le nombre de tâches affectées.  
  • Key pair (Paire de clés) : Une paire de clés est requise pour envoyer ensuite des demandes SSH vers vos instances. Pour passer à l'étape suivante, vous pouvez choisir None – unable to SSH (Aucune, SSH impossible). Vous pouvez également sélectionner une paire de clés existante ou en créer une via la console Amazon EC2. 
deploy-docker-container-5a

(cliquez pour zoomer)

deploy-docker-container-5a

b. (Facultatif) Security Group (Groupe de sécurité) : La valeur par défaut, Anywhere (Tout), autorise tous les accès Internet. Sinon, vous pouvez sélectionner un bloc d'adresse CIDR qui permettra de restreindre l'accès à vos instances.

deploy-docker-container-5b

(cliquez pour zoomer)

deploy-docker-container-5b

c. Container instance IAM role (Rôle IAM de l'instance de conteneur) :

  • S'il n'existe pas encore de rôle IAM, l'assistant Amazon ECS en créera un.
  • Si un rôle IAM a déjà été défini pour l'instance de conteneur, sélectionnez-le dans la liste déroulante.
deploy-docker-container-5c

(cliquez pour zoomer)

deploy-docker-container-5c

d. Cliquez sur Review and Launch (Vérifier et lancer).

deploy-docker-container-5d

(cliquez pour zoomer)

deploy-docker-container-5d

Les étapes précédentes vous ont permis de configurer la définition des tâches (qui équivaut au plan stratégique d'une application), le service Amazon ECS (qui lance et tient à jour des copies de votre définition des tâches) et votre cluster (qui regroupe les instances de conteneur qui font fonctionner l'agent de conteneur). Au cours de cette étape, vous devez valider les ressources créées, les exécuter et les consulter.


a. Avant de démarrer l'exécution, vous avez la possibilité de vérifier une dernière fois la définition des tâches, ainsi que les paramètres de configuration des tâches et du cluster.

  • Sélectionnez Launch instance & run service (Lancer l'instance et exécuter le service). 
deploy-docker-container-6

(cliquez pour zoomer)

deploy-docker-container-6

b. La page Launch Status (Statut du lancement) indique le statut et détaille chaque étape du processus. 

  • Une fois le lancement effectué, cliquez sur View service (Afficher le service).
deploy-docker-container-7

(cliquez pour zoomer)

deploy-docker-container-7

Au cours de cette étape, vous devez vérifier que l'exemple d'application est opérationnel en indiquant le nom DNS de l'équilibreur de charge dans votre navigateur.


a. Sur la page du service sample-webapp, sélectionnez la valeur du champ Load Balancer Name (Nom de l'équilibreur de charge).

deploy-docker-container-10

(cliquez pour zoomer)

deploy-docker-container-10

b. Vous allez maintenant tester l'exemple d'application :

  • Copiez le nom DNS de l'ELB.
  • Collez-le dans une nouvelle fenêtre de votre navigateur.
  • Appuyez sur Entrée pour afficher l'exemple d'application. (Dans le cas présent, il s'agit d'une page Web statique.)
deploy-docker-container-12a

(cliquez pour zoomer)

deploy-docker-container-12a

Au cours de ce tutoriel, vous avez lancé trois ressources : un cluster Amazon ECS, une instance Amazon EC2 et un équilibreur de charge. Lors de cette étape, vous allez supprimer toutes ces ressources pour éviter de payer des frais inutilement.


a. Revenez à la page de la console Amazon ECS. 

  • Cliquez sur le nom du cluster (sample-cluster).
deploy-docker-container-13

(cliquez pour zoomer)

deploy-docker-container-13

b. Cochez la case en regard du service sample-webapp et cliquez sur Update (Mettre à jour).

deploy-docker-container-15

(cliquez pour zoomer)

deploy-docker-container-15

c. Pour éviter de supprimer accidentellement un service comportant des tâches actives, vous devez commencer par arrêter toutes les tâches afin qu'Amazon ECS puisse supprimer le service. 

  • Affectez la valeur 0 au champ Desired number of tasks (Nombre de tâches souhaité), puis cliquez sur Update service (Mettre à jour le service).
  • Une fois le service mis à jour, cliquez sur Delete (Supprimer).
deploy-docker-container-14

(cliquez pour zoomer)

deploy-docker-container-14

d. Supprimez les instances Amazon EC2 qui ont été lancées avec votre cluster :

  • Ouvrez la console Amazon EC2.
  • Dans le volet de gauche, sélectionnez Instances.
  • Cochez la case en regard de l'instance nommée ECS Instance – EC2ContainerService-default.
  • Sélectionnez Actions > Instance State (État de l'instance) > Terminate (Arrêter).

 

 

deploy-docker-container-17

(cliquez pour zoomer)

deploy-docker-container-17

e. Supprimez les équilibreurs de charge :

  • Dans le volet de gauche, sélectionnez Load Balancers (Equilibreurs de charge).
  • Cochez la case en regard de l'équilibreur de charge créé pour votre service. (Son nom doit normalement débuter par EC2Contai-EcsElast.) 
  • Faites un clic droit et sélectionnez Delete (Supprimer).

 

deploy-docker-container-19a

(cliquez pour zoomer)

deploy-docker-container-19a

Félicitations ! Vous savez désormais configurer, déployer et supprimer une application compatible avec Docker sur Amazon Elastic Container Service (Amazon ECS). Amazon ECS est un service de gestion de conteneurs hautement évolutif et à hautes performances, qui prend en charge les conteneurs Docker et vous permet d'exécuter facilement des applications sur un cluster géré d'instances Amazon EC2.

Maintenant que vous savez déployer une application compatible avec Docker sur Amazon ECS, vous pouvez passer au tutoriel suivant, qui vous expliquera comment créer un registre Docker pour stocker vos images de conteneur. Vous allez créer une image Docker et l'envoyer par push dans un référentiel, puis l'utiliser pour déployer une application sur Amazon ECS.

Création d'un registre Docker

Oui
Non