Utilisation de la plateforme Elastic Beanstalk Node.js - AWS Elastic Beanstalk

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de la plateforme Elastic Beanstalk Node.js

La plateforme AWS Elastic Beanstalk Node.js est un ensemble de versions de plateformes pour les applications Web Node.js qui s'exécutent derrière un serveur proxy NGINX.

Elastic Beanstalk fournit des options de configuration que vous pouvez utiliser pour personnaliser le logiciel qui s'exécute sur des instances EC2 dans votre environnement Elastic Beanstalk. Vous pouvez configurer des variables d'environnement requises pour votre application, activer la rotation des journaux sur Amazon S3 et mapper des dossiers dans la source de votre application contenant des fichiers statiques vers des chemins desservis par le serveur proxy.

Des options de configuration sont disponibles dans la console Elastic Beanstalk pour modifier la configuration d'un environnement en cours d'exécution. Pour éviter de perdre la configuration de votre environnement en le résiliant, vous pouvez utiliser des configurations enregistrées pour enregistrer vos paramètres et les appliquer par la suite à un autre environnement.

Pour enregistrer les paramètres dans votre code source, vous pouvez inclure des fichiers de configuration. Les paramètres des fichiers de configuration sont appliquées chaque fois que vous créez un environnement ou que vous déployez votre application. Vous pouvez également utiliser des fichiers de configuration pour installer des packages, exécuter des scripts ou effectuer d'autres opérations de personnalisation d'instance lors des déploiements.

Vous pouvez inclure un fichier Package.json dans votre offre groupée source pour installer des packages pendant le déploiement, fournir une commande de démarrage et spécifier la version Node.js que vous souhaitez que votre application utilise. Vous pouvez inclure un fichier npm-shrinkwrap.json pour verrouiller les versions de dépendances.

La plateforme Node.js inclut un serveur proxy qui diffuse les ressources statiques, achemine le trafic vers votre application et compresse les réponses. Vous pouvez étendre ou remplacer la configuration du serveur proxy par défaut pour les scénarios avancés.

Il existe plusieurs options pour démarrer votre application. Vous pouvez ajouter un Procfile à votre offre groupée source pour spécifier la commande qui démarre votre application. Lorsque vous ne fournissez pas de Procfile mais un fichier package.json, Elastic Beanstalk exécute npm start. Si vous n'en fournissez pas non plus, Elastic Beanstalk recherche le fichier app.js ou server.js, dans cet ordre, et exécute le script.

Les paramètres appliqués dans la console Elastic Beanstalk remplacent les mêmes paramètres des fichiers de configuration, s'ils existent. Cela vous permet d'utiliser les paramètres par défaut dans les fichiers de configuration et de les remplacer par des paramètres spécifiques à l'environnement dans la console. Pour plus d'informations sur la priorité et les autres méthodes de modification des paramètres, consultez Options de configuration.

Pour plus d'informations sur les différentes manières d'étendre une plateforme Elastic Beanstalk basée sur Linux, consultez Extension des plateformes Linux Elastic Beanstalk.

Configuration de votre environnement Node.js

Vous pouvez utiliser les paramètres de la plateforme Node.js pour affiner le comportement de vos instances Amazon EC2. Vous pouvez modifier la configuration des instances Amazon EC2 de votre environnement Elastic Beanstalk à l'aide de la console Elastic Beanstalk.

Utilisez la console Elastic Beanstalk pour permettre la rotation des journaux sur Amazon S3 et configurer des variables que votre application peut lire à partir de l'environnement.

Pour configurer votre environnement Node.js dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk et, dans la liste Regions (Régions), sélectionnez votre Région AWS.

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Mises à jour, surveillance et journalisation, sélectionnez Modifier.

Options du conteneur

Vous pouvez spécifier ces options spécifiques à la plateforme :

  • Proxy server (Serveur proxy) – Serveur proxy à utiliser sur vos instances d'environnement. Par défaut, NGNIX est utilisé.

Options du journal

La section Options du journal a deux paramètres :

  • Instance profile (Profil d'instance) – Spécifie le profil d'instance qui est autorisé à accéder au compartiment Amazon S3 associé à votre application.

  • Enable log file rotation to Amazon S3 (Permettre la rotation du fichier journal sur Amazon S3) – Indique si les fichiers journaux des instances Amazon EC2 de votre application doivent être copiés dans le compartiment Amazon S3 associé à votre application.

Fichiers statiques

Pour améliorer les performances, la section des Fichiers statiques vous permet de configurer le serveur proxy pour proposer des fichiers statiques (HTML ou images, par exemple) à partir d'un ensemble de répertoires dans votre application web. Pour chaque répertoire, vous définissez le chemin virtuel sur le mappage de répertoires. Lorsque le serveur proxy reçoit une demande pour un fichier dans le chemin spécifié, il fournit le fichier directement au lieu d'acheminer la demande vers votre application.

Pour en savoir plus sur la configuration des fichiers statiques à l'aide des fichiers de configuration ou de la console Elastic Beanstalk, consultez Service de fichiers statiques.

Propriétés de l'environnement

Utilisez la section Environment Properties pour spécifier des paramètres de configuration de l'environnement sur les instances Amazon EC2 exécutant votre application. Ces paramètres sont passés en tant que paires clé-valeur à l'application.

Dans l'environnement Node.js en cours d'exécution dans AWS Elastic Beanstalk, vous pouvez accéder aux variables d'environnement en exécutant process.env.ENV_VARIABLE.

var endpoint = process.env.API_ENDPOINT

La plateforme Node.js définit la variable d'environnement PORT sur le port vers lequel le serveur proxy transfère le trafic. Pour de plus amples informations, veuillez consulter Configuration du serveur proxy.

Pour en savoir plus, consultez Propriétés de l'environnement et autres paramètres de logiciel.

Les catégories de configuration logicielles de console suivantes sont prises en charge uniquement sur un environnement Elastic Beanstalk Node.js qui utilise une version de plateforme Amazon Linux AMI (antérieure à Amazon Linux 2).

Remarques
  • Les informations de cette rubrique s'appliquent uniquement aux branches de plateforme basées sur l'AMI Amazon Linux (AL1). Les branches de plateforme AL2023/AL2 sont incompatibles avec les versions de plateforme précédentes de l'AMI Amazon Linux (AL1) et nécessitent des paramètres de configuration différents.

  • Le 18 juillet 2022, Elastic Beanstalk définira les statuts de toutes les branches de plateforme basées sur une AMI Amazon Linux (AL1) sur mise hors service. Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.

Sur la page de configuration, spécifiez les informations suivantes :

  • Proxy serveur (Serveur proxy) – Indique le serveur web à utiliser comme proxy pour se connecter à Node.js. Par défaut, NGINX est utilisé. Si vous sélectionnez none (aucun), les mappages de fichiers statiques ne prendront pas effet et la compression GZIP sera désactivée.

  • version Node.js : spécifie la version de Node.js. Pour obtenir la liste des versions Node.js prises en charge, consultez Node.js dans le guide des plateformes AWS Elastic Beanstalk.

  • GZIP compression (Compression ) : indique si la compression GZIP est activée. La compression GZIP est activée par défaut.

  • Node command (Commande Node) : vous permet de saisir la commande utilisée pour démarrer l'application Node.js. Une chaîne vide (par défaut) signifie qu'Elastic Beanstalk utiliseapp.js, puis server.jset ensuite npm start.

Espaces de noms de la configuration Node.js

Vous pouvez utiliser un fichier de configuration pour définir des options de configuration et exécuter d'autres tâches de configuration d'instance pendant les déploiements. Les options de configuration peuvent être définies par le service Elastic Beanstalk ou la plateforme que vous utilisez et sont organisées en espaces de noms.

Vous pouvez choisir le proxy à utiliser sur les instances de votre environnement à l'aide de l'espace de noms aws:elasticbeanstalk:environment:proxy. L'exemple suivant configure votre environnement pour qu'il utilise le serveur proxy Apache HTTPD.

Exemple .ebextensions/nodejs-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

Vous pouvez configurer le proxy pour qu'il traite les fichiers statiques à l'aide de l'espace de noms aws:elasticbeanstalk:environment:proxy:staticfiles. Pour plus d'informations et pour voir un exemple, consultez Service de fichiers statiques.

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. En plus des fichiers de configuration, vous pouvez également définir des options de configuration à l'aide de la console, de configurations enregistrées, de la CLI EB ou d'AWS CLI. Pour plus d'informations, consultez Options de configuration.

Si votre environnement Elastic Beanstalk Node.js utilise une version de plateforme Amazon Linux AMI (antérieure à Amazon Linux 2), tenez compte des configurations et recommandations spécifiques de cette section.

Remarques
  • Les informations de cette rubrique s'appliquent uniquement aux branches de plateforme basées sur l'AMI Amazon Linux (AL1). Les branches de plateforme AL2023/AL2 sont incompatibles avec les versions de plateforme précédentes de l'AMI Amazon Linux (AL1) et nécessitent des paramètres de configuration différents.

  • Le 18 juillet 2022, Elastic Beanstalk définira les statuts de toutes les branches de plateforme basées sur une AMI Amazon Linux (AL1) sur mise hors service. Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.

Elastic Beanstalk prend en charge certaines options de configuration spécifiques à la plateforme pour les versions de plateforme Node.js d’Amazon Linux AMI. Vous pouvez choisir le serveur proxy à exécuter devant votre application, une version spécifique de Node.js à exécuter et la commande utilisée pour exécuter votre application.

Pour le serveur proxy, vous pouvez utiliser un serveur proxy NGINX ou Apache. Vous pouvez définir la valeur none sur l'option ProxyServer. Dans ce cas, Elastic Beanstalk exécute votre application en mode autonome, pas derrière un serveur proxy. Si votre environnement exécute une application autonome, mettez à jour votre code pour écouter le port vers lequel NGINX transfère le trafic.

var port = process.env.PORT || 8080; app.listen(port, function() { console.log('Server running at http://127.0.0.1:%s', port); });

En termes de version linguistique prise en charge, la plateforme Amazon Linux AMI Node.js est différente des autres plateformes gérées par Elastic Beanstalk. En effet, chaque version de la plateforme Node.js ne prend en charge que quelques versions linguistiques Node.js. Pour obtenir la liste des versions Node.js prises en charge, consultez Node.js dans le guide Plateformes AWS Elastic Beanstalk.

Vous pouvez utiliser une option de configuration spécifique à la plateforme pour définir la version de langage. Pour obtenir des instructions, consultez Configuration de votre environnement Node.js. Vous pouvez également utiliser la console Elastic Beanstalk pour mettre à jour la version Node.js que votre environnement utilise dans le cadre de la mise à jour de la version de votre plateforme .

Note

Lorsque la prise en charge de la version de Node.js que vous utilisez est supprimée de la plateforme, vous devez modifier ou supprimer le paramètre de version avant de procéder à une mise à jour de la plateforme. Cela peut se produire lorsqu'une faille de sécurité est identifiée pour une ou plusieurs versions de Node.js

Lorsque cela se produit, toute tentative de mise à jour vers une nouvelle version de la plateforme qui ne prend pas en charge le paramètre NodeVersion configuré échoue. Pour éviter d'avoir besoin de créer un nouvel environnement, remplacez l'option de configuration NodeVersion par une version de Node.js qui est prise en charge à la fois par l'ancienne version de plateforme et par la nouvelle, ou bien supprimez le paramètre de l'option, puis effectuez la mise à jour de la plateforme.

Pour configurer la version Node.js de votre environnement dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk et, dans la liste Regions (Régions), sélectionnez votre Région AWS.

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans la page de présentation de l'environnement, sous Platform (Plateforme), choisissez Change (Changer).

  4. Dans la boîte de dialogue Update platform version (Mettre à jour la version de la plateforme) sélectionnez une version Node.js.

    Confirmation de la mise à jour de la version de la plateforme Elastic Beanstalk
  5. Choisissez Enregistrer.

La plateforme Amazon Linux AMI Node.js définit des options supplémentaire dans les espaces de noms aws:elasticbeanstalk:container:nodejs:staticfiles et aws:elasticbeanstalk:container:nodejs.

Le fichier de configuration suivant indique à Elastic Beanstalk d'utiliser npm start pour exécuter l'application. Il définit également le type de proxy sur Apache et active la compression. Enfin, il configure le proxy pour qu'il serve des fichiers statiques à partir de deux répertoires sources. Une source est constituée de fichiers HTML situés sur le chemin html sous la racine du site web à partir du répertoire source statichtml. L'autre source est constituée de fichiers image situés sur le chemin images sous la racine du site web à partir du répertoire source staticimages.

Exemple .ebextensions/node-settings.config
option_settings: aws:elasticbeanstalk:container:nodejs: NodeCommand: "npm start" ProxyServer: apache GzipCompression: true aws:elasticbeanstalk:container:nodejs:staticfiles: /html: statichtml /images: staticimages

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. En plus des fichiers de configuration, vous pouvez également définir des options de configuration à l'aide de la console, de configurations enregistrées, de la CLI EB ou d'AWS CLI. Pour plus d'informations, consultez Options de configuration.