Utilisation de la plateforme Elastic Beanstalk Ruby - 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 Ruby

La plateforme Ruby AWS Elastic Beanstalk est un ensemble de configurations d'environnements pour les applications web Ruby qui peuvent s'exécuter sur un serveur proxy NGNIX sous un serveur d'applications Puma. Chaque branche de la plateforme correspond à une version de Ruby. Si vous utilisez RubyGems, vous pouvez inclure un fichier Gemfile dans votre bundle source pour installer des packages durant le déploiement.

Configuration du serveur de l'application

Elastic Beanstalk installe le serveur d'applications Puma en fonction de la branche de plateforme Ruby que vous choisissez lors de la création de votre environnement. Pour plus d'informations sur les composants fournis avec les versions de la plateforme Ruby, consultez Plateformes prises en charge dans le guide AWS Elastic BeanstalkPlateformes.

Vous pouvez configurer votre application avec le serveur Puma que vous avez fourni. Cela permet d'utiliser une version de Puma autre que celle préinstallée avec la branche de plateforme Ruby. Vous pouvez également configurer votre application pour utiliser un autre serveur d'applications, tel que Passenger. Pour ce faire, vous devez inclure et personnaliser un Gemfile dans votre déploiement. Vous devez également configurer un Procfile pour démarrer le serveur d'applications. Pour plus d'informations, consultez Configuration du processus de l'application avec un Profil.

Autres options de configuration

Elastic Beanstalk fournit des options de configuration que vous pouvez utiliser pour personnaliser le logiciel qui s'exécute sur les instances Amazon Elastic Compute Cloud (Amazon EC2) dans votre environnement Elastic Beanstalk. Vous pouvez configurer des variables d'environnement nécessaires 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. La plateforme prédéfinit également certaines variables d'environnement courantes associées à Rails et Rack pour faciliter la découverte et l'utilisation.

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.

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 Ruby

Vous pouvez utiliser la console Elastic Beanstalk pour activer la rotation de journal sur Amazon S3 et configurer les variables que votre application peut lire depuis l'environnement.

Pour accéder aux paramètres de configuration du logiciel pour votre environnement
  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 journal

La section Log Options (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.

Par défaut, le serveur proxy d'un environnement Ruby est configuré pour servir des fichiers statiques comme suit :

  • Les fichiers du dossier public sont servis à partir du chemin /public et de la racine du domaine (chemin /).

  • Les fichiers du sous-dossier public/assets sont servis à partir du chemin /assets.

Les exemples suivants illustrent le fonctionnement de la configuration par défaut :

  • Si votre code source d'application contient un fichier nommé logo.png dans un dossier nommé public, le serveur proxy le sert aux utilisateurs dans subdomain.elasticbeanstalk.com/public/logo.png et subdomain.elasticbeanstalk.com/logo.png.

  • Si votre code source d'application contient un fichier nommé logo.png dans un dossier nommé assetsdans le dossier public, le serveur proxy le sert aux utilisateurs dans subdomain.elasticbeanstalk.com/assets/logo.png.

Vous pouvez configurer d'autres mappages pour les fichiers statiques. Pour plus d'informations, consultez Espaces de noms de configuration Ruby plus loin dans cette rubrique.

Note

Pour les versions de plateforme antérieures à Ruby 2.7 AL2 version 3.3.7, la configuration par défaut du serveur proxy Elastic Beanstalk nginx ne prend pas en charge la distribution de fichiers statiques à partir de la racine du domaine (subdomain.elasticbeanstalk.com/). Cette version de plateforme a été publiée le 21 octobre 2021. Pour plus d'informations, consultez la section .Nouvelles versions de plateforme - Ruby dans les Notes de mise à jour AWS Elastic Beanstalk.

Propriétés de l'environnement

La section Propriétés de l'environnement vous permet de spécifier des paramètres de configuration de l'environnement sur les instances Amazon EC2 exécutant votre application. Les propriétés de l'environnement sont passées en tant que paires clé-valeur à l'application.

La plateforme Ruby définit les propriétés suivantes pour la configuration de l'environnement :

  • BUNDLE_WITHOUT – Une liste séparée par des deux-points de groupes à ignorer lors de l'installation de dépendances à partir d'un Gemfile.

  • BUNDLER_DEPLOYMENT_MODE – Définissez la valeur sur true (valeur par défaut) pour installer les dépendances en mode de déploiement à l'aide de Bundler. Définissez la valeur sur false pour exécuter bundle install en mode de développement.

    Note

    Cette propriété d'environnement n'est pas définie sur les branches de la plateforme Amazon Linux AMI Ruby (auparavant Amazon Linux 2).

  • RAILS_SKIP_ASSET_COMPILATION – Définissez ce paramètre sur true pour ignorer l'exécution de rake assets:precompile durant le déploiement.

  • RAILS_SKIP_MIGRATIONS – Définissez ce paramètre sur true pour ignorer l'exécution de rake db:migrate durant le déploiement.

  • RACK_ENV – Spécifiez l'étape de l'environnement pour Rack. Par exemple, development, production ou test.

Dans l'environnement Ruby en cours d'exécution dans Elastic Beanstalk, les variables d'environnement sont accessibles à l'aide de l'objet ENV. Par exemple, vous pouvez lire une propriété nommée API_ENDPOINT sur une variable avec le code suivant :

endpoint = ENV['API_ENDPOINT']

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

Espaces de noms de configuration Ruby

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 utiliser l'espace de noms aws:elasticbeanstalk:environment:proxy:staticfiles pour configurer le proxy d'environnement afin de traiter les fichiers statiques. Vous définissez les mappages des chemins virtuels vers les répertoires d'applications.

La plate-forme Ruby ne définit aucun espace de noms spécifique à la plate-forme. Au lieu de cela, elle définit les propriétés d'environnement pour les options Rails et Rack communes.

Le fichier de configuration suivant spécifie une option de fichiers statiques qui mappe un répertoire nommé staticimages au chemin d'accès /images, définit chacune des propriétés d'environnement définies par la plate-forme et définit une propriété d'environnement supplémentaire nommée LOGGING.

Exemple .ebextensions/ruby-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy:staticfiles: /images: staticimages aws:elasticbeanstalk:application:environment: BUNDLE_WITHOUT: test BUNDLER_DEPLOYMENT_MODE: true RACK_ENV: development RAILS_SKIP_ASSET_COMPILATION: true RAILS_SKIP_MIGRATIONS: true LOGGING: debug
Note

La propriété d' environnement BUNDLER_DEPLOYMENT_MODE et l'espace de noms aws:elasticbeanstalk:environment:proxy:staticfiles ne sont pas définis sur les branches de la plateforme Amazon Linux AMI Ruby (anciennement Amazon Linux 2).

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.