Déploiement de conteneurs Docker sur AWS ECS Fargate
Cette documentation fournit un guide étape par étape sur la façon de créer une définition de tâche, un service, de l'attacher à un Application Load Balancer (ALB) afin de le publier sur Internet.
Table des matières
- Prérequis
- Créer une définition de tâche
- Créer un service ECS
- Réparez vos contrôles de santé
- Vérifiez votre application
Aperçu
Voici un schéma expliquant l'architecture que nous allons suivre :
Vous pouvez voir que nos conteneurs Docker sont extraits dans AWS via la définition de tâche et transformés en service. Pour que les utilisateurs puissent accéder à nos services, nous devons simplement ajouter un nouveau groupe cible à notre équilibreur de charge existant.
## Prérequis Avant de procéder à ces étapes, assurez-vous d'avoir les éléments suivants :
- Un compte AWS avec les autorisations nécessaires pour créer des ressources ECS, ajouter des groupes cibles et modifier les équilibreurs de charge.
- Avoir créé un conteneur Docker à partir de notre guide précédent et le publier sur DockerHub.
Créer une définition de tâche
- Dans AWS, accédez à Amazon Elastic Container Service > Définition de tâche > Créer une nouvelle définition de tâche
- Nom de la tâche : choisissez quelque chose de descriptif comme :
metadata-api-task
oupopulation-dash-task
- Conteneur : créez une définition de conteneur
- Nom du conteneur : ex.
conteneur-api-métadonnées
- URI de l'image : votre URI d'image DockerHub ex.
gbadsinformatics/meta-api :dernière
- Mappage des ports : ajoutez vos ports exposés ici, ex. TCP sur le port 80 (http)\ Assurez-vous d'utiliser http ; notre équilibreur de charge ajoutera https plus tard pour vous.
- Variables d'environnement : ce sont les variables référencées dans les conteneurs Docker. Pour les tableaux de bord, nous utilisons
DASH_BASE_URL
pour définir le chemin URL du tableau de bord comme/dashboards/population
. Ces variables doivent être référencées dans votre code. Cela ne fonctionnera pas automatiquement. D'autres applications que nous utilisons utilisent des variables d'environnement pour transmettre des informations d'identification secrètes. - Configurer l'environnement : ressources
- Modifiez les ressources : généralement, chaque conteneur est défini sur 1 vCPU et 2 Gio de mémoire.
- Rôle de tâche : défini sur
ecsTaskExecutionRole
- Conserver le stockage et la journalisation par défaut
- Enfin, examinez et créez votre définition de tâche.
Créer un service ECS
- Revenez au cluster et cliquez sur créer un nouveau service.
- Configuration du déploiement :
- Assurez-vous d'avoir sélectionné un service.
- Sélectionnez Famille et choisissez votre nouvelle définition de tâche.
- Nom du service : ex
metadata-api-service
- Réseautage :
- Assurez-vous que le VPC par défaut est sélectionné et que les 3 sous-réseaux sont sélectionnés.
- Choisissez le groupe de sécurité
- supprimer "par défaut"
- ajoutez
GBADs-Dashboard-LB-SecurityGroup
(Malgré son nom, ceci est utilisé pour tous les conteneurs, pas seulement pour les tableaux de bord)
- Équilibrage de charge :
- Sélectionnez « Utiliser un équilibreur de charge existant »
- Choisissez « Dashboards-ALB » (ceci est utilisé pour tous les conteneurs, pas seulement pour les tableaux de bord)
- Sélectionnez « Utiliser un écouteur existant »
- Choisissez « 443 : HTTPS » – C'est ici que https est ajouté pour vous
- Sélectionnez « Créer un nouveau groupe cible »
- Nom du groupe cible : quelque chose comme « metadata-api-target-group »
- Modèle de chemin : remplacez-le par l'URL de base de vos applications mais ajoutez un '*'. \
Ex
/dashboards/population*
, cela transmet tout le trafic avec ce modèle vers notre nouveau conteneur. - Ordre d'évaluation : faites défiler les règles existantes et sélectionnez le numéro suivant dans l'ordre.\
Parfois, nous avons des applications avec des modèles qui se chevauchent comme
/dashboards/population
et/dashboards/population-v2
. Il est important ici que l'URL la plus longue soit prioritaire dans l'ordre d'évaluation (une URL plus longue nécessite un numéro inférieur). Vous devrez peut-être modifier certaines règles pour libérer de l'espace. - Chemin de vérification de l'état de santé : ce chemin est utilisé pour vérifier l'état de votre candidature. Il s'agit généralement de l'URL de base de votre application ou du site de documentation d'une API. Comme
/dashboards/population
ou/api/docs
- Cliquez sur créer.
Corrigez vos contrôles d'état
Avant de vérifier votre service, nous devons modifier notre nouveau groupe cible afin d'accepter davantage de codes de retour HTTP.
- Accédez à EC2 > Groupes cibles > votre nouveau groupe cible > Bilans de santé > Modifier
- Ouvrez les paramètres avancés de vérification de l'état
- Remplacez les codes de réussite par « 200-399 »
- Enregistrez les modifications
Vérifiez votre application
Vous pouvez maintenant aller sur « www.gbadske.org/[votre URL de base ici] » comme « www.gbadske.org/dashboards/population » pour vérifier l'état de votre candidature.