sur Amazon Elastic Container Service (Amazon ECS)

Amazon Elastic Container Service (Amazon ECS) est la solution Amazon Web Service à utiliser pour exécuter des applications Docker dans un cluster évolutif. Dans ce didacticiel, vous apprendrez à exécuter un exemple d'application compatible avec Docker sur un cluster Amazon ECS placé derrière un équilibreur de charge. 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 à une offre gratuite.

Gérer vos ressources AWS

Connectez-vous à 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 Déployer un exemple d'application dans un cluster Amazon ECS et cliquez sur Continuer.
deploy-docker-container-1

(Cliquez pour zoomer.)

deploy-docker-container-1

La 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 Étape suivante.

Pour modifier ces configurations ou en savoir plus, consultez la section 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 :

  • 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.
  • 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 une 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 équilibreur de charge avec votre service. Amazon ECS peut créer un équilibreur de charge 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.

  • Nom du conteneur : hôte port : sélectionnez Simple-app:80.
  • Pour les champs Protocole d'écoute ELB, Port d'écoute ELB et 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 section É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 Amazon ECS service, 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 É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 :

  • Nom du cluster : saisissez sample-cluster.
  • 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 section Types d'instances Amazon EC2.
  • 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.  
  • Paire de clés : une paire de clés est requise pour vous connecter à vos instances en utilisant le protocole SSH. Pour passer à l'étape suivante, vous pouvez sélectionner 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) Groupe de sécurité : la valeur par défaut, (Anywhere), 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. 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. Sélectionnez 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), Amazon ECS service (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 Lancer l'instance et exécuter le service
deploy-docker-container-6

(Cliquez pour zoomer.)

deploy-docker-container-6

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

  • Une fois le lancement effectué, cliquez sur 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 sample-webapp, sélectionnez la valeur du champ 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 didacticiel, vous avez lancé trois ressources : un cluster Amazon ECS, une instance Amazon EC2 et un équilibreur de charge. Lors de cette étape, vous supprimerez toutes ces ressources pour éviter de payer des frais inutilement.


a. Revenir à 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 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 Nombre de tâches souhaité, puis cliquez sur Mettre à jour le service.
  • Une fois le service mis à jour, cliquez sur 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 :

  • Ouvrir 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 > État de l'instance > Résilier.

 

 

deploy-docker-container-17

(Cliquez pour zoomer.)

deploy-docker-container-17

e. Supprimez les équilibreurs de charge :

  • Dans le volet de gauche, sélectionnez Équilibreurs 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.) 
  • Effectuez un clic droit et sélectionnez 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 didacticiel suivant, qui vous expliquera comment créer un registre Docker pour stocker vos images de conteneur. Vous créerez une image Docker et l'enverrez par push dans un référentiel, puis l'utiliserez pour déployer une application sur Amazon ECS.

Créer un registre Docker

Oui
Non