Déployer une application web sur AWS Elastic Beanstalk

GUIDE DE DÉMARRAGE

Module 3 : Déployer une application web

Dans ce module, vous déployez votre application sur le cloud.

Introduction

Ce module vous montre comment regrouper en package votre application NodeJS de sorte à le rendre déployable. Vous découvrirez également comment allouer toutes les ressources AWS Elastic Beanstalk que vous avez créées dans le module 2 à l'aide d'AWS CDK.

Qu'allez-vous apprendre ?

  • Regrouper en package votre application NodeJS
  • Créer et déployer votre application CDK
  • Mettre à jour le déploiement de l'application NodeJS

 Durée

10 minutes

 Prérequis du module

  • Compte AWS avec accès administrateur**
  • Dernière version de Chrome ou de Firefox (recommandé)

[**] Il est possible que les comptes créés au cours des dernières 24 heures n'aient pas encore accès aux services nécessaires à ce tutoriel.

Implémentation

Regrouper en package votre application NodeJS

Dans le module 2, vous avez appris que nous téléchargerons l'application sous la forme d'un fichier zip vers S3, et ce à l'aide du module ressource S3 d'AWS CDK.

Pour ce faire, vous devez créer un fichier zip de votre application NodeJS et le placer dans le répertoire racine de votre application AWS CDK.  Nommez le fichier zip « app.zip ». Pour ce faire, exécutez la commande suivante :

zip -r ../app.zip ./*
gsg_build_elb_3

Procéder à l'amorçage u kit CDK dans votre compte

Si c'est la première fous que vous utilisez AWS CDK dans ce compte et cette région, vous devez procéder à son amorçage. Lorsque vous déployez les applications AWS CDK dans un compte et une région AWS, le kit CDK doit allouer les ressources dont il a besoin pour effectuer les déploiements. Ces ressources incluent un compartiment Amazon S3 pour stocker les fichiers de déploiement, ainsi que les rôles IAM qui accordent les autorisations requises pour effectuer les déploiements. L'allocation de ces ressources initiales s'appelle action d'amorçage.

Pour procéder à l'amorçage de votre compte et votre région AWS, exécutez la commande :

cdk bootstrap aws://ACCOUNT-NUMBER-1/REGION-1

Cela devrait ressembler à ce qui suit :

cdk bootstrap aws://123456789012/us-east-1

Vous pouvez obtenir le numéro de compte dans votre console de gestion AWS, et le nom de la région dans cette liste.

Créer et déployer votre application CDK

Une fois que vous avez mis en package votre application NodeJS et l'avez placée dans la racine du répertoire de votre application CDK, puis procédé à l'amorçage de votre compte et votre région AWS, vous êtes prêt à créer et à déployer votre application CDK.

La première étape consiste à créer l'application CDK.

node run build

Si votre application ne comporte aucune erreur, l'opération aboutira. Vous pouvez à présent déployer l'application CDK dans le cloud.

cdk deploy

Vous devrez au préalable confirmer que vous souhaitez apporter quelques modifications au niveau de sécurité de votre compte, car nous avons créé un nouveau rôle.

gsg_build_elb_4

Répondez avec la lettre « y », puis le déploiement démarre. Il dure quelques minutes. À la fin de l'opération, vous recevez un message de l'ARN (Amazon Resource Name) de la pile CloudFormation que ce déploiement à créée pour vous.

Si vous ouvrez la console de gestion CloudFormation, vous verrez qu'elle contient deux nouvelles piles.

gsg_build_elb_5

La pile CdkEbInfraStack est celle qui comporte toutes les ressources que nous avons créées dans le module précédent, à savoir l'application Elastic Beanstalk, la version de l'application, le profil d'instance et l'environnement.

L'autre pile (avec la chaîne aléatoire) a été créée par Elastic Beanstalk, et contient toutes les ressources dont l'application Elastic Beanstalk a besoin pour son exécution, notamment les groupes Auto Scaling, les instances, les alarmes et métriques Amazon CloudWatch, les équilibreurs de charge et les groupes de sécurité.

Affichage de votre application dans le cloud

Si vous souhaitez voir votre application déployée dans le cloud, vous devez avant tout rechercher l'URL de l'application web. Vous pouvez trouver l'URL en accédant au service Elastic Beanstalk dans la console AWS, puis en recherchant l'environnement dénommé MyWebAppEnvironment.

gsg_build_elb_6

Vous y trouverez l'URL. Cliquez dessus pour lancer l'application web.

Mettre à jour le déploiement de l'application NodeJS

Si vous souhaitez apporter une modification à votre application web, puis la redéployer dans le cloud, suivez les étapes ci-dessous :

  • Effectuez les modifications sur l'application web.
  • Mettez-la en package sous la forme d'un fichier app.zip.
  • Placez le fichier app.zip dans le répertoire racine de votre application CDK.
  • Créez le projet CDK (npm run build).
  • Déployez le projet CDK (commande cdk deploy).

Vous pouvez à présent vérifier qu'une nouvelle version de l'application Elastic Beanstalk est déployée. Si vous consultez l'URL de l'application web, vous constaterez que la nouvelle version est déployée. L'opération dure un certain temps. Veuillez donc garder un œil sur la console pour savoir lorsqu'elle est terminée.

gsg_build_elb_7

Erreurs courantes

Compresser l'application

Si vous obtenez cette erreur lors du téléchargement de votre application NodeJS vers Elastic Beanstalk

Failed to find package.json. Node.js may have issues starting. Verify package.json is valid or place code in a file named server.js or app.js.

Le problème peut être lié à la méthode de mise en package de votre application. Supprimez le fichier package-lock.json et le répertoire node_modules, puis exécutez cette commande dans le répertoire de l'application web.

zip -r app.zip .

Cette opération permet de compresser les fichiers comme il se doit pour Elastic Beanstalk.

Node_modules lors de la mise en package de votre application

Vous pouvez mettre en package votre répertoire node_modules avec toutes vos dépendances téléchargées dans le fichier zip de votre application web.

Lorsque vous avez ce répertoire, Elastic Beanstalk suppose qu'aucune dépendance ne doit être téléchargée.

En savoir plus sur la gestion des dépendances NodeJS dans les packages Elastic Beanstalk.

Conclusion

Dans ce guide, vos avez appris comment mettre en package une application web NodeJS et la déployer avec Elastic Beanstalk, ainsi que comment déployer l'ensemble de l'infrastructure sous forme d'application CDK.

À suivre : nettoyage des ressources

Dites-nous si nous avons répondu à vos attentes.

Nous vous remercions pour votre commentaire
Nous sommes ravis que cette page vous ait été utile. Souhaitez-vous partager des détails supplémentaires pour nous aider à continuer à nous améliorer ?
Fermer
Nous vous remercions pour votre commentaire
Nous sommes désolés que cette page ne vous ait pas été utile. Souhaitez-vous partager des détails supplémentaires pour nous aider à continuer à nous améliorer ?
Fermer