FAQ sur AWS Elastic Beanstalk

Questions d’ordre général

AWS Elastic Beanstalk facilite encore plus la vie des développeurs cherchant à déployer rapidement et à gérer des applications sur le cloud AWS. Les développeurs chargent simplement leur application et Elastic Beanstalk s'occupe automatiquement des détails du déploiement tels que la mise en service des capacités, l'équilibrage de charge, le dimensionnement automatique et la surveillance de l'état de santé de l'application.

À tous ceux qui souhaitent déployer et gérer leurs applications en quelques minutes dans le cloud AWS. Vous n’avez besoin d’aucune expérience préalable en matière de cloud computing pour débuter. AWS Elastic Beanstalk prend en charge les applications web Java, .NET, PHP, Node.js, Python, Ruby, Go et Docker.

Voici la liste des langages et piles de développement qu'AWS Elastic Beanstalk prend en charge :

Apache Tomcat pour applications Java

Apache HTTP Server pour applications PHP

Apache HTTP Server pour applications Python

Nginx ou Apache HTTP Server pour applications Node.js

Passenger ou Puma pour applications Ruby

Microsoft IIS 7.5, 8.0 et 8.5 pour les applications .NET

Java SE

Docker

Go

Consultez la page consacrée aux plates-formes prises en charge pour obtenir la liste complète et à jour des langues et des stacks de développement pris en charge.

Oui. AWS Elastic Beanstalk est conçu de manière à pouvoir être étendu afin de prendre en charge de multiples piles de développement et langages de programmation à l'avenir. En partenariat avec des fournisseurs de solutions, AWS travaille à mettre au point des API et des fonctionnalités en vue d'étoffer l'offre Elastic Beanstalk.

AWS Elastic Beanstalk automatise les différentes étapes du dimensionnement des capacités, de l'équilibrage de la charge, de la scalabilité automatique et du déploiement des applications, créant ainsi un environnement qui exécute une version de votre application. Il vous suffit de charger votre code déployable (ex. : fichier WAR), et AWS Elastic Beanstalk s'occupe du reste. AWS Toolkit for Visual Studio et AWS Toolkit for Eclipse vous permettent de déployer votre application dans AWS Elastic Beanstalk et de la gérer sans quitter votre environnement de développement intégré (IDE). Une fois que votre application s'exécute, Elastic Beanstalk automatise les tâches de gestion telles que la surveillance, le déploiement de versions et les vérifications basiques de l'état de santé, tout en permettant de consulter facilement le fichier journal. En utilisant Elastic Beanstalk, les développeurs peuvent se concentrer sur le développement de leur application et sont libérés des tâches orientées vers le déploiement comme la mise en service de serveurs, la configuration de l'équilibrage de charge ou la gestion de l'évolutivité.

La plupart des conteneurs d'applications existants ou des solutions de plate-forme en tant que service, bien que réduisant les opérations de programmation requises, diminuent aussi la flexibilité et le contrôle pour les développeurs. Les développeurs sont trop souvent forcés de s'adapter à toutes les décisions prédéterminées par leur fournisseur avec une très faible, voire aucune marge leur permettant de reprendre le contrôle sur différentes parties de l'infrastructure de leur application. En revanche, avec AWS Elastic Beanstalk, les développeurs gardent le contrôle total sur les ressources AWS qui alimentent leur application. Si les développeurs décident qu'ils veulent gérer tout ou partie des éléments de leur infrastructure, ils peuvent le faire de façon transparente en utilisant les fonctions de gestion d'Elastic Beanstalk.

Avec AWS Elastic Beanstalk, vous pouvez :

Sélectionner le système d'exploitation correspondant aux besoins de votre application (ex. : Amazon Linux ou Windows Server 2016)

Faites votre choix parmi la palette d'instances Amazon EC2 notamment les instances à la demande, les instances réservées et les instances Spot. 

Choisir entre plusieurs options disponibles de bases de donnée et de stockage

Activer un identifiant d'accès aux instances Amazon EC2 pour une résolution des problèmes immédiate et directe

Améliorer rapidement la fiabilité de votre application en l'exécutant dans plus d'une zone de disponibilité

Augmenter la sécurité de l'application en permettant le protocole HTTPS sur le programme d'équilibrage de charge

Avoir accès à la surveillance intégrée d'Amazon CloudWatch et aux notifications sur l'état de l'application et aux autres évènements importants

Ajuster les paramètres du serveur d'applications (ex. : paramètres JVM) et appliquer les variables d'environnement

Exécuter d'autres composants applicatifs, tels qu'un service de mise en mémoire cache, côte à côte dans Amazon EC2

Accéder aux fichiers journaux sans avoir besoin de se connecter aux serveurs d'applications

AWS Elastic Beanstalk utilise des fonctions et des services AWS éprouvés, tels qu'Amazon EC2, Amazon RDS, Elastic Load Balancing, Auto Scaling, Amazon S3 et Amazon SNS, pour créer un environnement qui exécute votre application. La version actuelle d'AWS Elastic Beanstalk utilise l'AMI Amazon Linux ou Windows Server 2019.

AWS Elastic Beanstalk prend en charge les langages Java, .NET, PHP, Node.js, Python, Ruby, Go et Docker, et convient parfaitement aux applications web. Cependant, grâce à son architecture ouverte, Elastic Beanstalk autorise également le déploiement d'applications non web. Nous devrions, par la suite, prendre en charge d'autres types d'applications et de langages de programmation. Consultez la page consacrée aux plates-formes prises en charge pour en savoir plus.

AWS Elastic Beanstalk s'exécute sur les AMI Amazon Linux et AMI Windows Server. Ces deux AMI sont prises en charge et tenues à jour par Amazon Web Services. Elles sont conçues pour fournir un environnement d'exécution stable, sécurisé et très performant pour le cloud computing dans Amazon EC2.

Mise en route

Pour vous inscrire à AWS Elastic Beanstalk, cliquez sur le bouton « Inscrivez-vous maintenant » sur la page de présentation d'Elastic Beanstalk. Vous devez disposer d'un compte Amazon Web Services pour accéder à ce service. Si vous n'en avez pas, vous serez invité à en créer un au début du processus d'inscription à Elastic Beanstalk. Une fois inscrit, consultez le guide de démarrage AWS Elastic Beanstalk.

L'inscription à AWS Elastic Beanstalk nécessite que vous ayez un numéro de téléphone ainsi qu'une adresse e-mail valides enregistrés dans nos fichiers AWS, au cas où nous aurions besoin d'entrer en contact avec vous. La vérification de votre numéro de téléphone ne prend que quelques minutes. Vous recevrez un appel automatique pendant le processus d'inscription et vous devrez entrer un code d'identification PIN à l'aide des touches de votre téléphone.

La meilleure façon de commencer avec AWS Elastic Beanstalk consiste à lire le guide de démarrage AWS Elastic Beanstalk, qui fait partie de notre documentation technique. En quelques minutes, vous serez capable de déployer et d'utiliser un exemple d'application ou de charger votre propre application.

Oui. Oui, AWS Elastic Beanstalk inclut un exemple d'application que vous pouvez utiliser pour essayer l'offre et explorer ses fonctionnalités.

Bases de données et stockage

Oui. AWS Elastic Beanstalk stocke vos fichiers d'application et, éventuellement, les fichiers journaux des serveurs dans Amazon S3. Si vous utilisez AWS Management Console, AWS Toolkit for Visual Studio ou AWS Toolkit for Eclipse, un compartiment Amazon S3 sera ajouté à votre compte, et les fichiers que vous chargerez seront automatiquement copiés depuis votre client local vers Amazon S3. Si vous le souhaitez, vous pouvez également configurer Elastic Beanstalk pour copier vos fichiers de journaux de serveur sur Amazon S3 toutes les heures. Vous le ferez en modifiant les paramètres de configuration d'environnement.

Oui. Vous pouvez utiliser Amazon S3 pour le stockage d'application. Pour ce faire, le plus simple est d'inclure le kit SDK AWS pour Java dans le fichier de déploiement de votre application. Par exemple, vous pouvez inclure le SDK AWS pour Java dans le fichier WAR de votre application.

AWS Elastic Beanstalk vous permet d'utiliser la technologie de persistance de données de votre choix. Vous pouvez utiliser Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB ou encore Microsoft SQL Server, Oracle ou d'autres bases de données relationnelles s'exécutant sur Amazon EC2.

Elastic Beanstalk peut automatiquement mettre en service une instance DB Amazon RDS. Les informations de connectivité à l'instance DB sont transmises à votre application par des variables d'environnement. Pour en savoir plus sur la configuration des instances DB RDS pour votre environnement, consultez le manuel Elastic Beanstalk Developer Guide.

Ce n'est pas le cas avec AWS Elastic Beanstalk. Avec Elastic Beanstalk, vous pouvez spécifier les informations de connexion au niveau de la configuration de l'environnement. En extrayant la chaîne de connexion du code de l'application, vous pouvez facilement configurer différents environnement Elastic Beanstalk pour utiliser différentes bases de données.

Sécurité

Par défaut, votre application est disponible publiquement et pour tous sur myapp.elasticbeanstalk.com. Vous pouvez utiliser Amazon VPC afin de dimensionner une section privée et isolée de votre application, dans le réseau virtuel de votre choix. Vous pouvez rendre ce réseau virtuel privé en appliquant des règles de groupes de sécurité spécifiques, des listes de contrôle d'accès (LCA) réseau et des tables de routage personnalisées. Vous pouvez également contrôler facilement les autres types de trafic entrant tels que SSH, qui sont transmis vers vos serveurs d'application en modifiant les paramètres des groupes de sécurité EC2.

Oui, vous pouvez exécuter vos applications dans un VPC. Pour en savoir plus, consultez le manuel AWS Elastic Beanstalk Developer Guide.

Pour plus d'informations concernant la sécurité sur AWS, consultez le document Amazon Web Services: Overview of Security Processes ou visitez notre Centre de sécurité.

Oui. Les utilisateurs IAM disposant des autorisations appropriées peuvent maintenant interagir avec AWS Elastic Beanstalk.

Avec IAM, vous pouvez gérer des utilisateurs et des groupes de manière centralisée. Vous pouvez contrôler quels utilisateurs IAM ont accès à AWS Elastic Beanstalk et octroyer uniquement un accès en lecture seule pour les opérateurs qui ne doivent pas effectuer d'actions sur les ressources Elastic Beanstalk. Toutes les activités utilisateur au sein de votre compte seront regroupées sur une seule facture AWS.

Pour mettre en service des utilisateurs IAM, vous pouvez utiliser la console, l'interface de ligne de commande (CLI) ou l'API IAM. Par défaut, les utilisateurs IAM n'ont pas accès aux services AWS tant que les autorisations ne leur sont pas accordées.

Vous pouvez accorder l'accès aux services en utilisant les politiques. Pour simplifier le processus d'octroi d'accès à AWS Elastic Beanstalk, vous pouvez utiliser un des modèles de politique dans la console IAM pour vous aider à démarrer. Elastic Beanstalk offre deux modèles : un modèle d'accès en lecture seule et un modèle d'accès total. Le modèle en lecture seule accorde un accès en lecture aux ressources Elastic Beanstalk. Le modèle d'accès total accorde un accès total à toutes les opérations Elastic Beanstalk, ainsi que le droit de gérer des ressources dépendantes, telles qu'Elastic Load Balancing, Auto Scaling et Amazon S3. Vous pouvez aussi utiliser le Générateur de politique AWS pour créer des politiques personnalisées. Pour en savoir plus, consultez le manuel AWS Elastic Beanstalk Developer Guide.

Oui. Vous pouvez octroyer l'accès ou l'interdire à des ressources AWS Elastic Beanstalk spécifiques, telles que des applications, des versions d'application et des environnements.

Toutes les ressources crées par des utilisateurs IAM sous un compte racine sont la propriété du et facturées au compte principal.

Le compte principal dispose d'un accès total à tous les environnements AWS Elastic Beanstalk lancés par les utilisateurs IAM sous ce compte. Si vous utilisez le modèle Elastic Beanstalk pour accorder un accès en lecture seule à un utilisateur IAM, celui-ci pourra afficher toutes les applications, les versions des applications, les environnements et les ressources associés à ce compte. Si vous utilisez le modèle Elastic Beanstalk pour accorder un accès total à un utilisateur IAM, celui-ci pourra créer, modifier et supprimer des ressources Elastic Beanstalk sous ce compte.

Oui. Oui, un utilisateur IAM peut accéder à la console AWS Elastic Beanstalk à l'aide de ses identifiants (nom d'utilisateur et mot de passe).

Oui. Un utilisateur IAM peut utiliser sa clé d'accès et sa clé secrète pour effectuer une opération à l'aide de l'API Elastic Beanstalk.

Oui. Un utilisateur IAM peut utiliser sa clé d'accès et sa clé secrète pour effectuer une opération à l'aide de la CLI (interface ligne de commande) AWS Elastic Beanstalk.

Mises à jour gérées de la plateforme

Vous pouvez choisir de mettre à jour automatiquement vos environnements AWS Elastic Beanstalk vers la dernière version de la plate-forme sous-jacente exécutant votre application pendant la fenêtre de maintenance que vous avez définie. Elastic Beanstalk publie régulièrement de nouvelles versions des plates-formes prises en charge (Java, PHP, Ruby, Node.js, Python, .NET, Go et Docker) comprenant des mises à jour du système d'exploitation, du serveur web et d'application, et de la langue et du framework.

Pour permettre à Elastic Beanstalk de gérer automatiquement vos mises à jour de plate-forme, vous devez activer les mises à jour de plate-forme gérées dans l'onglet Configuration de la console Elastic Beanstalk, ou utiliser la CLI ou l'API EB. Une fois la fonctionnalité activée, vous pouvez configurer les types de mises à jour que vous souhaitez autoriser et définir à quel moment elles doivent avoir lieu.

AWS Elastic Beanstalk peut automatiquement exécuter des mises à jour de plate-forme pour les nouvelles versions de plate-forme correctives et mineures. Elastic Beanstalk ne procédera pas automatiquement aux mises à jour de version de plate-forme majeures (par ex., Java 7 Tomcat 7 vers Java 8 Tomcat 8), car celles-ci comprennent des modifications sans rétrocompatibilité et nécessitent des tests supplémentaires. Dans ces cas, vous devez lancer manuellement la mise à jour.

La version des plates-formes AWS Elastic Beanstalk est contrôlée à l'aide de ce modèle : MAJEURE.MINEURE.PATCH (par ex., 2.0.0). Chaque partie est incrémentée comme suit :

Version MAJEURE en cas de modifications incompatibles.

Version MINEURE en cas de fonctionnalité supplémentaire ajoutée de manière rétrocompatible.

Version CORRECTIVE en cas de corrections de bugs rétrocompatibles.

Vous pouvez exécuter des mises à jour de version majeures à tout moment à l'aide de l'API, de la CLI ou de la console de gestion AWS Elastic Beanstalk. Pour procéder à une mise à jour de version majeure, deux possibilités s'offrent à vous :

Appliquez la mise à jour sur place dans un environnement existant. Consultez la page relative à la mise à jour de la version de la plate-forme de votre environnement Elastic Beanstalk.

Clonez un environnement existant avec la nouvelle version de plate-forme. Consultez la page relative au clonage d'un environnement pour en savoir plus.

Les mises à jour sont appliquées à l'aide d'un mécanisme de déploiement inaltérable qui s'assure qu'aucune modification n'est apportée à l'environnement existant jusqu'à ce qu'une flotte parallèle d'instances Amazon EC2, comportant les mises à jour, soit prête à être échangée avec les instances existantes, qui sont ensuite terminées. De plus, si le système de vérification de l'état d'Elastic Beanstalk détecte des problèmes lors de la mise à jour, le trafic est redirigé vers la flotte d'instances existante afin de minimiser l'impact pour les utilisateurs finaux de votre application.

Etant donné que les mises à jour de plate-forme gérées utilisent un mécanisme de déploiement inaltérable pour exécuter les mises à jour, votre application sera disponible pendant la fenêtre de maintenance et la mise à jour n'aura aucun impact sur les utilisateurs de votre application.

Aucuns frais supplémentaires ne sont facturés pour la fonctionnalité des mises à jour de plate-forme gérées. Vous payez simplement les instances EC2 supplémentaires nécessaires à l'exécution de la mise à jour pendant la durée de cette dernière.

Une fenêtre de maintenance est un créneau hebdomadaire de deux heures au cours duquel AWS Elastic Beanstalk lance des mises à jour de plate-forme si la fonctionnalité des mises à jour de plate-forme gérées est activée et si une nouvelle version de la plate-forme est disponible. Par exemple, si vous sélectionnez une fenêtre de maintenance commençant chaque dimanche à 2 h, AWS Elastic Beanstalk lancera la mise à jour de la plate-forme entre 2 h et 4 h chaque dimanche. Il convient de noter qu'en fonction de la configuration de votre application, les mises à jour pourraient se terminer en dehors de la fenêtre de maintenance.

Le fenêtre de maintenance est définie pour chaque environnement et vous permet de définir différentes fenêtres de maintenance pour vos différents composants applicatifs ou applications. Cela permet d'échelonner les mises à jour de l'environnement si vous ne souhaitez pas que plusieurs parties de votre application soient mises à jour en même temps. Si vous activez les mises à jour de plate-forme gérées, mais que vous n'indiquez aucune fenêtre de maintenance, une fenêtre hebdomadaire de 2 heures sera attribuée par défaut à votre environnement. Si vous souhaitez modifier la planification de la maintenance, vous pouvez le faire en modifiant la configuration des mises à jour gérées dans AWS Management Console ou en utilisant l'API UpdateEnvironment.

Vous serez informé de la disponibilité de nouvelles versions de plate-forme via AWS Management Console, par la publication d'annonces sur le forum et par des notes de mise à jour.

Vous trouverez des informations sur les changements entre les versions de plate-forme sur la page des notes de mise à jour d'AWS Elastic Beanstalk.

Lorsqu'une mise à jour de plate-forme gérée est en cours d'installation, la seule action disponible est l'annulation. Cette action vous permet d'interrompre immédiatement la mise à jour et de revenir à la version précédente.

Votre environnement sera toujours mis à jour avec la dernière version disponible en fonction du niveau (version mineure plus corrective ou version corrective uniquement) que vous avez sélectionné.

Les détails de chaque mise à jour de plate-forme gérée sont disponibles sur la page des événements et sont étiquetés avec un type d'événement « MAINTENANCE ».

Le nombre de nouvelles versions prises en charge dans une année donnée variera en fonction de la fréquence et du contenu des parutions et des correctifs diffusés par le fournisseur de la langue ou du framework ou par l'équipe principale, et en fonction du résultat d'un examen approfondi de ces parutions et correctifs par notre équipe d'ingénierie en plates-formes.

Support AWS Graviton

Pour déployer votre application avec des processeurs arm64 sur la console Elastic Beanstalk, vous pouvez sélectionner l'architecture du processeur et le type d'instance dans l'onglet de capacité dans les paramètres Configure more options settings (Configurer d’autres options).

Pour déployer votre application à l’aide de la CLI Elastic Beanstalk, de l’AWS CLI, de CFN ou de l’AWS CDK, reportez-vous au Guide du développeur Elastic Beanstalk.

Si votre charge de travail repose sur un langage de programmation interprété tel que Node.js, Python, Tomcat, PHP ou Ruby, vous n'avez pas besoin de recompiler votre charge de travail pour utiliser Graviton. Si vous utilisez Go ou .Net Core pour votre charge de travail, vous devez mettre à jour la commande de création du type d'instance arm64. Vous devez également recompiler les dépendances binaires ou utiliser une version compatible arm64 des dépendances binaires. Si vous utilisez Docker, votre image Docker doit être multi-architecture et prendre en charge le déploiement sur x86 et arm64.

Elastic Beanstalk prend en charge Graviton sur Amazon Linux 2 64 bits pour diverses plateformes et de branches. Consultez la documentation pour obtenir la liste complète.

Vous pouvez facilement effectuer la migration de votre charge de travail vers Graviton et bénéficier des avantages de performances et de coûts dans les cas d'utilisation suivants : charges de travail Linux reposant principalement sur des technologies open-source, applications conteneurisées et basées sur des microservices telles que Docker et MC Docker, applications écrites dans des langages de programmation portables tels que Java, Python, .NET Core, node.js et PHP, applications compilées C/C++, Rust ou Go, charges de travail .NET Core (v3.1+) fonctionnant sous Linux, charges de travail multithread, charges de travail à accès mémoire non uniforme (NUMA) et développement et test de logiciels arm64 natifs.

Facturation

Aucuns frais supplémentaires ne sont facturés pour AWS Elastic Beanstalk : vous ne payez que les ressources AWS actuellement utilisées pour stocker et exécuter votre application.

Vous payez uniquement en fonction de votre utilisation, et il n'y a aucun frais minimum pour l'utilisation des ressources AWS. Pour plus de détails concernant les tarifs Amazon EC2, consultez la section relative à la tarification dans la page de présentation d'EC2. Pour plus de détails concernant les tarifs d'Amazon S3, consultez la section relative à la tarification dans la page de présentation de S3. Vous pouvez utiliser le Calculateur mensuel simple AWS pour estimer votre facture pour des applications de différentes tailles.

Vous pouvez consulter vos frais pour la période de facturation actuelle à tout moment sur le site d'Amazon Web Services en vous connectant à votre compte Amazon Web Services et en cliquant sur Activité du compte sous Votre compte de services Web.

Support

Oui. AWS Support couvre les problèmes liés à votre utilisation d'AWS Elastic Beanstalk. Pour plus de détails et pour connaître les tarifs, consultez la page de présentation d'AWS Support.

Pour mener à bien votre déploiement, vous pouvez profiter de l'expérience et des connaissances de la communauté AWS existante grâce au forum de discussion AWS Elastic Beanstalk.