Le processus fastidieux de configuration des ressources requises une par une n'est plus nécessaire pour déployer des applications Web et des serveurs.
Les produits Platform-as-a-service (PaaS) tels qu'AWS Elastic Beanstalk et Heroku ont été créés pour permettre applications à déployer et à mettre à la disposition des utilisateurs avec peu ou pas de code et quelques boutons clics.
Alors, qu'est-ce qu'AWS Elastic Beanstalk et comment pouvez-vous déployer vos applications Web Go dans le cloud avec Elastic Beanstalk ?
Qu'est-ce qu'AWS Elastic Beanstalk?
AWS Elastic Beanstalk (AWS EB) est un produit de plate-forme en tant que service proposé par Amazon Web Services qui permet un déploiement et une gestion rapides et faciles des applications et des ressources requises.
Avec Elastic Beanstalk, il est facile de déployer une application sans avoir à configurer toutes ses ressources requises 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.Création d'un serveur Web Golang simple
Pour les besoins de ce didacticiel, vous devez disposer d'une application Golang opérationnelle à déployer sur AWS Elastic Beanstalk. Par conséquent, dans cette section, un simple serveur Web Go est créé.
Vous avez besoin d'un environnement de développement Golang configuré 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 :
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 fichier dedans. Copiez et collez le code suivant dans le fichier HTML et enregistrez-le.
html>
<htmllangue="fr">
<diriger>
<métajeu de caractères="UTF-8">
<titre>Bonjour le monde!titre>
diriger>
<corps>
<h1>Hello World d'Elastic Beanstalkh1>
corps>
html>
Retournez dans le répertoire racine de votre projet et créez un application.go déposer. Copiez et collez le code ci-dessous dans votre application.go fichier et enregistrez-le. Vous devez nommer le fichier principal application.go car il s'agit du fichier qu'Elastic Beanstalk recherchera pour créer votre application pendant le processus de déploiement.
emballer principal
importer (
"enregistrer"
"net/http"
)fonctionprincipal() {
statique := http. Serveur de fichiers (http. Réal("./statique"))
http. Gérer("/", statique)
enregistrer. Fatal (http. EcouteEtServe(":5000", néant))
}
Par défaut, Elastic Beanstalk utilise une configuration NGINX qui transfère les demandes à votre application sur le port 5000 uniquement. Sauf que vous remplacerez les configurations NGINX par défaut, votre application Golang doit toujours écouter sur le port 5000 pour les requêtes.
Si vous enregistrez le fichier et exécutez le programme dans le terminal avec allez exécuter application.go, vous pourrez prévisualiser la page Web statique en ouvrant l'adresse hôte local: 5000 dans votre navigateur.
Votre exemple d'application est maintenant créé et prêt à être déployé. 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 sur n'importe quel service AWS, tel qu'Elastic Beanstalk, vous avez besoin d'un compte cloud AWS. Si vous n'avez pas de compte AWS actuellement, accédez à Page d'inscription d'AWS pour en créer un nouveau gratuitement.
Il existe plusieurs 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 à partir de la console Web, mais dans ce didacticiel, vous apprendrez à déployer sur Elastic Beanstalk à partir du terminal à l'aide de l'interface de ligne de commande EB outil.
Vous pouvez consulter le Guide d'installation de l'interface de ligne de commande AWS EB pour un guide détaillé sur l'installation et la configuration de l'interface de ligne de commande EB afin de suivre cette section. Une fois que vous avez terminé l'installation et la configuration de l'interface de ligne de commande EB, vous pouvez maintenant continuer et suivre les étapes ci-dessous pour déployer votre application Golang.
- Ouvrez une nouvelle fenêtre de terminal et accédez au dossier de projet de l'application Go à déployer à l'aide de la CD commande.
- Courir eb init pour initialiser un nouveau référentiel CLI Elastic Beanstalk. Étant la première fois que vous exécutez cette commande après l'installation, EB CLI vous invitera avec les options de configuration initiales comme indiqué dans les étapes qui suivent.
- Après avoir choisi une région préférée, vous devez configurer vos identifiants d'identité de sécurité (ID de 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.
- Ensuite, vous devez définir le nom de l'application que vous déployez. Par défaut, cela utilise le nom de votre dossier de projet actuel.
- L'étape suivante consiste à sélectionner la plate-forme de l'application que vous êtes sur le point de déployer, dans ce cas, vous devez sélectionner la 4ème option puisque vous déployez une application Golang.
- L'invite suivante vous demande si vous souhaitez activer une connexion SSH pour votre application déployée. Ceci est recommandé car il permet un accès à distance et un débogage faciles pour votre application, mais dans ce tutoriel, Non est sélectionné, puisqu'il ne s'agit que d'une simple application.
La ligne qui indique que CodeCommit n'a pas pu être configuré n'a rien d'inquiétant, car elle est due au fait que Git ou tout autre contrôle de code source n'est pas utilisé dans le projet de cet exemple.
- Une fois les étapes ci-dessus terminées, un nouveau référentiel CLI Elastic Beanstalk sera créé et vous pouvez maintenant créer un environnement Elastic Beanstalk pour déployer votre application dans les étapes suivantes.
- Courir eb créer "nom de l'environnement" pour créer un nouvel environnement appelé le 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 compartiment S3, un équilibreur de charge, etc. Ce processus prend environ 5 à 10 minutes selon la vitesse du réseau.
Tout comme quand tu déployer un site Web statique sur AWS, votre application EB se voit également attribuer une URL (marquée dans la case rouge dans la capture d'écran ci-dessus) que vous pouvez utiliser pour accéder à votre application Web.
- Une fois cela fait avec succès, l'application est prête à être prévisualisée, et vous pouvez exécuter eb ouvert pour ouvrir l'application déployée dans votre navigateur. Vous devriez maintenant voir Bonjour le monde affichée dans votre navigateur Web à l'aide de l'URL qui lui est attribuée par Elastic Beanstalk.
Chaque fois que vous apportez une modification à votre application, vous pouvez exécuter déploiement eb pour déployer les dernières mises à jour d'Elastic Beanstalk. Et pour arrêter votre application et toutes ses ressources, vous pouvez exécuter eb terminer.
Vous avez maintenant déployé avec succès une application Web Golang sur AWS Elastic Beanstalk à l'aide de l'outil CLI Elastic Beanstalk. Le processus est très simple et peut être suivi pour déployer n'importe quelle forme d'application Web Golang dans Elastic Beanstalk.
Vous pouvez consulter votre tableau de bord Elastic Beanstalk dans la console AWS pour afficher 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 live en quelques étapes très simples. Vous pouvez facilement déployer et gérer vos applications à petite et grande échelle à l'aide de tous les moyens mis à disposition par AWS, notamment la console Web, l'AWS CLI, l'EB CLI, les API AWS ou le kit SDK AWS.
Pour vous entraîner davantage avec les connaissances acquises dans cet article, vous pouvez envisager de créer une API CRUD avec Go et de la déployer sur Elastic Beanstalk.