Le processus fastidieux de configuration des ressources requises une par une n’est plus nécessaire pour déployer des applications et des serveurs Web.


Les produits PaaS (Platform-as-a-service) tels que AWS Elastic Beanstalk et Heroku ont été créés pour permettre aux applications d’être déployées et mises à la disposition des utilisateurs avec peu ou pas de code et quelques clics de bouton.

Alors, qu’est-ce que AWS Elastic Beanstalk, et comment pouvez-vous déployer vos applications Web Go dans le nuage avec Elastic Beanstalk ?

Qu’est-ce que AWS Elastic Beanstalk ?

AWS Elastic Beanstalk (AWS EB) est un produit de plate-forme en tant que service offert par Amazon Web Services qui permet de déployer et de gérer rapidement et facilement les applications et les ressources requises.

Avec Elastic Beanstalk, il est facile de déployer une application sans avoir à mettre en place toutes les ressources nécessaires comme un serveur linux sur EC2, ou un service de surveillance dans cloudwatch. Elastic Beanstalk gère tous les processus de configuration des ressources et vous permet de déployer différents types d’applications, notamment Node.js, Golang, PHP, Docker, etc.

Lire  Comment corriger l'erreur "Le PC ne répond pas à la configuration matérielle requise pour les captures" de la barre d'outils sous Windows ?

Création d’un serveur Web Golang simple

Pour les besoins de ce tutoriel, vous devez avoir une application Golang fonctionnelle à déployer sur AWS Elastic Beanstalk, donc dans cette section, un serveur web Go simple est créé.

Vous devez disposer d’un environnement de développement Golang sur votre machine pour suivre cette section.

La première étape consiste à initialiser un nouveau projet Golang, ce qui peut être fait depuis le terminal en exécutant les commandes suivantes :

Sortie du terminal pour les commandes de création d'un nouveau projet Go

Une fois cela fait, vous pouvez ouvrir le répertoire du projet dans votre IDE préféré. Dans le répertoire racine de votre projet, créez un dossier nommé statique et créer un index.html dans le fichier. Copiez et collez le code suivant dans le fichier HTML et enregistrez-le.

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello world!</title>
</head>
<body>
    <h1>Hello World from Elastic Beanstalk</h1>
</body>
</html>

Retournez dans le répertoire racine de votre projet et créez un fichier application.go fichier. Copiez et collez le code ci-dessous dans votre application.go et enregistrez-le. Vous devez nommer le fichier principal application.go car il s’agit du fichier qu’Elastic Beanstalk recherchera pour construire votre application pendant le processus de déploiement.

 package main

import (
        "log"
        "net/http"
)

func main() {
        static := http.FileServer(http.Dir("./static"))
        http.Handle("https://www.makeuseof.com/", static)

        log.Fatal(http.ListenAndServe(":5000", nil))
}

Elastic Beanstalk utilise par défaut une configuration NGINX qui transmet les demandes à votre application sur le port 5000 uniquement. Sauf si vous remplacez les configurations NGINX par défaut, votre application Golang doit toujours écouter les requêtes sur le port 5000.

Si vous sauvegardez le fichier et exécutez le programme dans le terminal avec go run application.govous pourrez visualiser la page Web statique en ouvrant l’adresse localhost:5000 dans votre navigateur.

aperçu du site web en localhost

Votre application type est maintenant construite et prête à être déployée. Dans la section suivante, vous allez déployer l’application sur AWS Elastic Beanstalk.

Déploiement d’une application Go sur AWS Elastic Beanstalk

Pour déployer une application vers n’importe quel service AWS, comme Elastic Beanstalk, vous avez besoin d’un compte cloud AWS. Si vous n’avez pas encore de compte AWS, rendez-vous sur la page d’inscription d’AWS pour en créer un gratuitement.

Il existe de nombreuses façons de déployer des applications sur Elastic Beanstalk, y compris l’AWS CLI, l’interface de ligne de commande Elastic Beanstalk (EB CLI) et la console Web, mais dans ce tutoriel, vous apprendrez à déployer sur Elastic Beanstalk à partir du terminal en utilisant l’outil EB CLI.

Vous pouvez consulter le guide d’installation de l’outil EB CLI d’AWS pour obtenir un guide détaillé sur l’installation et la configuration de EB CLI afin de suivre cette section. Une fois que vous avez terminé l’installation et la configuration de EB CLI, vous pouvez maintenant suivre les étapes ci-dessous pour déployer votre application Golang.

  1. Ouvrez une nouvelle fenêtre de terminal et naviguez vers le dossier de projet de l’application Go à déployer à l’aide de l’icône cd commande.
  2. Exécuter eb init pour initialiser un nouveau référentiel Elastic Beanstalk CLI. Comme c’est la première fois que vous exécutez cette commande après l’installation, EB CLI vous demandera des options de configuration initiale, comme indiqué dans les étapes suivantes.
    sortie de la commande eb init

  3. Après avoir choisi une région préférée, vous devez configurer vos informations d’identification de sécurité (ID de la clé d’accès et clé secrète). Il existe un guide complet fourni par AWS sur la génération des informations d’identification de sécurité dans la console AWS.
    étape de configuration des informations d'identification dans eb init

  4. Ensuite, vous devez définir le nom de l’application que vous déployez. Par défaut, le nom du dossier actuel de votre projet est utilisé.
    name eb applicattion

  5. L’étape suivante consiste à sélectionner la plateforme de l’application que vous êtes sur le point de déployer, dans ce cas, vous devriez sélectionner la 4ème option puisque vous déployez une application Golang.
    sélectionner la plateforme de l'application dans EB

  6. L’invite suivante vous demande si vous souhaitez activer une connexion SSH pour votre application déployée. Ceci est recommandé car cela permet un accès à distance facile et le débogage de votre application, mais dans ce tutoriel, Non est sélectionné, puisqu’il s’agit d’une simple application.
    configuration de ssh pour les instances de votre application

    La ligne qui indique que CodeCommit n’a pas pu être configuré n’est pas inquiétante, car elle est due au fait que Git ou tout autre contrôle de source n’est pas utilisé dans le projet dans cet exemple.

  7. Après avoir effectué les étapes ci-dessus, un nouveau référentiel Elastic Beanstalk CLI sera créé et vous pouvez maintenant créer un environnement Elastic Beanstalk pour déployer votre application dans les étapes suivantes.
  8. Exécuter eb create  » nom de l’environnement «  pour créer un nouvel environnement appelé le nom spécifié nom de l’environnement. L’environnement est créé avec toutes les ressources requises, y compris une instance EC2, un groupe de mise à l’échelle automatique, un seau S3, un équilibreur de charge, etc. Ce processus prend environ 5 à 10 minutes en fonction de la vitesse du réseau.
    créer et déployer votre application eb create application

    Tout comme lorsque vous déployez un site web statique sur AWS, votre application EB se voit également attribuer une URL (marquée dans le cadre rouge dans la capture d’écran ci-dessus) que vous pouvez utiliser pour accéder à votre application web.

  9. Une fois l’opération effectuée avec succès, l’application est prête à être prévisualisée, et vous pouvez exécuter eb open pour ouvrir l’application déployée dans votre navigateur. Vous devriez maintenant voir Hello World affichée dans votre navigateur Web en utilisant l’URL qui lui a été attribuée par Elastic Beanstalk.
    L'application Web eb s'affiche dans le navigateur lorsque vous exécutez eb open.

Chaque fois que vous apportez une modification à votre application, vous pouvez exécuter la commande eb deploy pour pousser les dernières mises à jour vers Elastic Beanstalk. Et pour fermer votre application et toutes ses ressources, vous pouvez exécuter eb terminate.

Vous avez maintenant déployé avec succès une application Web Golang dans AWS Elastic Beanstalk à l’aide de l’outil Elastic Beanstalk CLI. Le processus est très facile et peut être suivi pour déployer toute forme d’application web Golang dans Elastic Beanstalk.

Vous pouvez consulter votre tableau de bord Elastic Beanstalk dans la console AWS pour voir l’état ou toute autre information sur votre environnement et votre application.

Déploiement d’applications Web sur Elastic Beanstalk

Elastic Beanstalk est un moyen fiable de faire passer vos applications du local au réel en quelques étapes très simples. Vous pouvez facilement déployer et gérer vos applications à petite et grande échelle en utilisant l’un des moyens mis à disposition par AWS, notamment la console Web, AWS CLI, EB CLI, les API AWS ou le SDK AWS.

Pour une mise en pratique plus poussée des connaissances acquises dans cet article, vous pouvez envisager de construire une API CRUD avec Go et de la déployer sur Elastic Beanstalk.