Maison > Article > développement back-end > Utilisation d'AWS ECS avec Go : un guide complet
Utilisation d'AWS ECS dans Go : un guide complet
AWS Elastic Container Service (ECS) est un service de gestion de conteneurs hautement évolutif qui prend en charge l'exécution et la gestion d'applications de conteneurs sous la forme de Docker. Le langage Go est devenu de plus en plus populaire ces dernières années et de plus en plus de développeurs choisissent Go pour écrire des applications. Cet article explique comment utiliser le langage Go et le service AWS ECS pour créer des applications de conteneur.
1. Configurez AWS ECS
Vous devez d'abord créer un cluster ECS dans AWS. Utilisez la console AWS pour ouvrir le service ECS. Ensuite, choisissez de créer un nouveau cluster ECS. Les configurations réseau, y compris les VPC et les sous-réseaux, peuvent être sélectionnées lors de la création d'un cluster. Ensuite, créez simplement le cluster selon les paramètres par défaut.
2. Créer une image Docker
Nous devons créer une image Docker afin de pouvoir exécuter notre application sur ECS. La première étape de la création et de l'exécution de l'image Docker de cette application Go consiste à créer le binaire Go. Étant donné que notre application Go s'exécute via un conteneur Docker, nous devons exécuter le processus de construction à l'intérieur du conteneur.
Afin d'atteindre cet objectif, nous devons créer un fichier docker. Vous pouvez utiliser la commande suivante pour créer un fichier appelé Dockerfile :
touch Dockerfile
Ouvrez le fichier Dockerfile et ajoutez le contenu suivant :
# 使用golang作为基础镜像 FROM golang:1.14-alpine # 在容器中创建一个目录以存储应用程序文件 RUN mkdir /app # 向容器中添加当前目录中的所有文件 ADD . /app # 将工作目录设置为app目录 WORKDIR /app # 构建出 Go 文件 RUN go build -o main . # 在容器中设置环境变量 ENV PORT=8080 # 声明容器应该监听的端口 EXPOSE 8080 # 定义容器启动时要运行的命令 CMD ["/app/main"]
Ce Dockerfile utilise l'image golang:1.14-alpine comme base puis ajoute tous les fichiers du répertoire actuel, définissez le répertoire de travail sur /app, créez le fichier Go et recherchez Main.go (il convient de mentionner que le nom du fichier Main.go doit être le même que le nom du projet). La variable d'environnement PORT et le port ouvert 8080 sont définis dans le conteneur, et la commande ./main à exécuter au démarrage du conteneur est définie.
Recherchez le fichier Main.go dans le répertoire où se trouve le Dockerfile. Ce fichier représente notre application Go, puis utilisez la Docker CLI pour créer une image Docker :
docker build -t my-go-app .
Cette commande trouvera le fichier Dockerfile et créera un Docker. image en fonction de son contenu, en l'appelant également "my-go-app". Cela créera une image Docker contenant notre application et la préparera pour le téléchargement sur AWS ECR (Amazon Elastic Container Registry).
3. Téléchargez l'image Docker sur ECR
Avant de télécharger l'image Docker sur AWS ECS, nous devons d'abord télécharger l'image sur AWS ECR.
1. Connectez-vous à la console AWS et sélectionnez le service ECR.
2. Dans le menu de gauche, sélectionnez « Entrepôt » et créez un nouvel entrepôt.
3. Sélectionnez « Afficher le référentiel » et cliquez sur le bouton « Téléchargement manuel d'images ».
4. Copiez la commande dans l'image Docker, puis exécutez la commande pour télécharger l'image Docker sur AWS ECR.
4. Créer une définition de tâche
Avant de créer le service ECS, vous devez créer une définition de tâche. La définition de tâche définit l'image Docker à exécuter dans le conteneur et d'autres paramètres.
1. Sélectionnez « Service ECS » et sélectionnez « Définitions de tâches ».
2. Créez une nouvelle définition de tâche.
3. Sélectionnez le type de lancement « FARGATE » ou « EC2 », selon que vous exécutez la tâche dans AWS Fargate ou dans votre propre instance EC2 à l'aide d'AWS ECS.
4. Sélectionnez la configuration réseau définie par la tâche.
5. Sous « Exécuteur de tâches et configuration réseau directe », sélectionnez « Suivant ».
6. Définir les tâches.
7. Sous « Définition du conteneur », cliquez sur le bouton « Ajouter un conteneur » et définissez les détails du conteneur.
8. Spécifiez l'URI de l'image Docker comme adresse URI de l'image Docker précédemment téléchargée dans ECR.
9. Définissez d'autres paramètres pour le conteneur, tels que les exigences en matière de processeur et de mémoire du conteneur.
10. Cliquez sur "Ajouter un conteneur".
11. Cliquez sur "Créer".
5. Créer un service ECS
Créez un service ECS à partir de la définition de tâche.
1. Sélectionnez la définition de tâche qui a été créée, puis cliquez sur « Créer un service ».
2. Sélectionnez le cluster sur lequel vous souhaitez déployer le service.
3. Spécifiez le nom du service.
4. Définissez le nombre de services via "Nombre de tâches".
5.Définissez l'heure de début du démarrage de la tâche (immédiat ou planifié).
6. Sélectionnez le type d'équilibreur de charge que vous souhaitez utiliser, tel que l'équilibreur de charge réseau ou d'application.
7. Définir la configuration du réseau et la configuration de l'équilibrage de charge.
8. Cliquez sur "Suivant" et effectuez d'autres réglages.
9. Sélectionnez le registre de découverte de services à utiliser.
10. Définissez des stratégies de mise à l'échelle pour les services, qui aideront à gérer les fluctuations de charge et la récupération en cas de panne.
11. Cliquez sur "Créer un service".
6. Exécutez l'application
Maintenant que le service ECS est prêt, vous pouvez déployer l'application et commencer à l'utiliser. Accédez à votre application à l'aide de la commande suivante :
curl http://<ECS Service Domain Name>:8080
L'application devrait pouvoir s'exécuter avec succès et vous renvoyer la réponse.
7. Résumé
Cet article explique comment utiliser AWS ECS dans des applications écrites en langage Go. Vous devez utiliser la console AWS pour configurer le cluster ECS, puis créer l'image Docker et la télécharger sur AWS ECR. Ensuite, vous pouvez créer une définition de tâche et créer un service ECS pour celle-ci, et enfin exécuter votre application Go dans le service ECS. Il s'agit d'un guide complet pour implémenter AWS ECS à l'aide du langage Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!