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.
Rails App Server AWS OpsWorks Stacks Layer
Important
Le AWS OpsWorks Stacks service a pris fin le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post
Note
Cette couche est disponible uniquement pour les piles Linux.
La couche Rails App Server est une couche AWS OpsWorks Stacks qui fournit un modèle pour les instances qui fonctionnent comme des serveurs d'applications Rails.
Installation : AWS OpsWorks Stacks utilise le programme d'installation des packages de l'instance pour installer les packages du serveur à leur emplacement par défaut. Pour plus d'informations sur l'installation d'Apache/Passenger, consultez Phusion Passenger
La page Add Layer (Ajouter une couche) fournit les options de configuration suivantes, toutes étant facultatives.
- Ruby Version (Version de Ruby)
-
Version de Ruby qui sera utilisée par vos applications. La valeur par défaut est 2.3.
Vous pouvez aussi spécifier votre version Ruby préférée en remplaçant l'attribut [:opsworks][:ruby_version].
Note
AWS OpsWorks Stacks installe un package Ruby distinct à utiliser par les recettes et l'agent d'instance. Pour de plus amples informations, veuillez consulter Versions de Ruby.
- Rails Stack (Pile Rails)
-
La pile Rails par défaut est Apache2
avec Phusion Passenger . Vous pouvez aussi utiliser Nginx avec Unicorn . Note
Si vous utilisez Nginx et Unicorn, vous devez ajouter le GEM Unicorn au fichier Gemfile de votre application, comme dans l'exemple suivant :
source 'https://rubygems.org' gem 'rails', '3.2.15' ... # Use unicorn as the app server gem 'unicorn' ...
- Passenger Version (Version de Passenger)
-
Si vous avez spécifié Apache2/Passenger, vous devez spécifier la version de Passenger. La valeur par défaut est 5.0.28.
- Rubygems Version (Version de Rubygems)
-
La version de Rubygems
par défaut est 2.5.1. - Install and Manage Bundler (Installer et gérer Bundler)
-
Permet de choisir s'il convient d'installer et de gérer Bundler
. La valeur par défaut est Yes (Oui). - Bundler version (Version de Bundler)
-
La version Bundler par défaut est 1.12.5.
- Custom security groups
-
Ce paramètre apparaît si vous avez choisi de ne pas associer automatiquement un groupe de sécurité AWS OpsWorks Stacks intégré à vos couches. Vous devez spécifier le groupe de sécurité à associer à la couche. Pour de plus amples informations, veuillez consulter Créer une pile.
- Elastic Load Balancer
-
Vous pouvez associer un équilibreur de charge Elastic Load Balancing aux instances de la couche.
Vous pouvez modifier certains paramètres de configuration en utilisant JSON personnalisé ou un fichier d'attributs personnalisé. Pour de plus amples informations, veuillez consulter Remplacement des attributs. Pour obtenir la liste des attributs Apache, Nginx, Phusion Passenger et Unicorn qui peuvent être remplacés, consultez Attributs des livres de recettes intégrés.
Important
Si votre application Ruby on Rails utilise le protocole SSL, nous vous recommandons de le désactiver SSLv3 si possible pour corriger les vulnérabilités décrites dans CVE-2014-3566
Rubriques
Désactivation SSLv3 pour les serveurs Rails
Pour le désactiver SSLv3 pour les serveurs Rails, mettez à jour le paramètre de version Ruby de la couche vers 2.1 ou supérieur, ce qui installe Ruby 2.1.4 ou supérieur comme version utilisée par les applications.
-
Mettez à jour le paramètre Ruby Version (Version de Ruby) avec la valeur 2.1 ou supérieure.
-
Mettez à jour le fichier de configuration de votre pile Rails comme suit.
- Apache avec Phusion Passenger
-
Mettez à jour le paramètre
SSLProtocol
du fichierssl.conf
du serveur Apache, comme décrit dans Désactivation SSLv3 pour les serveurs Apache. - Nginx avec Unicorn
-
Ajoutez une directive
ssl_protocols
explicite au fichiernginx.conf
du serveur Nginx. Pour le désactiver SSLv3, remplacez le fichier modèle du livre de recettes nginxintégré, que les recettes nginx.conf.erb
de configuration de la couche Rails App Server utilisent pournginx.conf
créer, et ajoutez la directive suivante :ssl_protocols TLSv1.2;
Pour plus d'informations sur la configuration de
nginx.conf
, consultez Configuration des serveurs HTTPS. Pour plus d'informations sur le remplacement d'un modèle intégré, consultez Utilisation de modèles personnalisés.
Connexion à une base de données
Lorsque vous déployez une application, AWS OpsWorks Stacks crée un nouveau database.yml
fichier en utilisant les informations provenant des deployattributs de l'application. Si vous attachez une instance MySQL ou Amazon RDS à l'application, AWS OpsWorks Stacks ajoute les informations de connexion aux deploy
attributs, afin qu'elles contiennent database.yml
automatiquement les données de connexion correctes.
Si aucune base de données n'est attachée à une application, par défaut, AWS OpsWorks Stacks n'ajoute aucune information de connexion aux deploy
attributs et ne crée database.yml
pas. Si vous souhaitez utiliser une autre base de données, vous pouvez utiliser JSON personnalisé pour ajouter les attributs de base de données aux attributs deploy
de l'application avec les informations de connexion. Les attributs se trouvent tous en dessous["deploy"]["
, où se appshortname
"]["database"]appshortname
trouve le nom abrégé de l'application, que AWS OpsWorks Stacks génère à partir du nom de l'application. Les valeurs que vous spécifiez dans JSON personnalisé remplacent les paramètres par défaut. Pour de plus amples informations, veuillez consulter Ajout d'applications.
AWS OpsWorks Stacks intègre les valeurs [:...][:database]d'attribut suivantes dans. database.yml
Les attributs requis dépendent de la base de données en question, mais vous devez disposer d'un host
attribut, sinon AWS OpsWorks Stacks n'en créera database.yml
pas.
-
[:adapter] (String)
— L'adaptateur de base de données, tel quemysql
. -
[:database]
(String) — Nom de la base de données. -
[:encoding]
(String) — Le codage, qui est généralement défini surutf8
. -
[:host]
(String) — L'URL de l'hôte, telle querailsexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com
. -
[:reconnect]
(Boolean) — Indique si l'application doit se reconnecter si la connexion n'existe plus. -
[:password]
(String) — Le mot de passe de la base de données. -
[:port]
(Numéro). — Le numéro de port de la base de données. Utilisez cet attribut pour remplacer le numéro de port par défaut, qui est défini par l'adaptateur. -
[:username]
(String) — Nom d'utilisateur de la base de données.
L'exemple suivant montre JSON personnalisé pour une application dont le nom court est myapp.
{ "deploy" : { "myapp" : { "database" : { "adapter" : "
adapter
", "database" : "databasename
", "host" : "host
", "password" : "password
", "port" :portnumber
"reconnect" :true/false
, "username" : "username
" } } } }
Pour plus d'informations sur la spécification du JSON personnalisé, consultez Utilisation du JSON personnalisé. Pour voir le modèle utilisé pour créer database.yml
(database.yml.erb
), accédez au référentiel du livre de recettes intégré
Déploiement des applications Ruby on Rails
Vous pouvez déployer les applications Ruby on Rails à partir de n'importe lequel des référentiels pris en charge. Ce qui suit montre comment déployer un exemple d'application Ruby on Rails sur un serveur exécutant une pile Rails Apache/Passenger. L'exemple de code est stocké dans un GitHub référentiel public, mais la procédure de base est la même pour les autres référentiels pris en charge. Pour plus d'informations sur la façon de créer et de déployer des applications, consultez Applications. Pour voir le code de l'exemple, qui inclut de nombreux commentaires, accédez à https://github.com/awslabs/opsworks-demo-rails-photo-share-app
Pour déployer une application Ruby on Rails à partir d'un GitHub référentiel
-
Créez une pile avec une couche Rails App Server avec Apache/Passenger comme pile Rails, ajoutez une instance 24 h/24 et 7 j/7 à la couche et démarrez-la.
-
Une fois que l'instance est en ligne, ajoutez une application à la pile et spécifiez les paramètres suivants :
-
Nom — Le nom que vous préférez ; l'exemple utilise
PhotoPoll
.AWS OpsWorks Stacks utilise ce nom à des fins d'affichage et génère un nom abrégé pour un usage interne et pour identifier l'application dans la configuration de la pile et les attributs de déploiement. Par exemple, le nom PhotoPoll abrégé est photopoll.
-
Type d'application : Ruby on Rails.
-
Environnement Rails — Les environnements disponibles sont déterminés par l'application.
L'exemple d'application en possède trois :
development
,test
etproduction
. Pour cet exemple, définissez l'environnement avec la valeurdevelopment
. Consultez l'exemple de code pour une description de chaque environnement. -
Type de référentiel : tous les types de référentiels pris en charge. Spécifiez
Git
pour cet exemple. -
URL du référentiel : référentiel à partir duquel le code doit être déployé.
Pour cet exemple, définissez l'URL avec la valeur
git://github.com/awslabs/opsworks-demo-rails-photo-share-app
.
Utilisez les valeurs par défaut pour les paramètres restants, puis cliquez sur Ajouter une application pour créer l'application.
-
-
Déployez l'application sur l'instance Rails App Server.
-
Lorsque le déploiement est terminé, accédez à la page Instances et cliquez sur l'adresse IP publique de l'instance Rails App Server. Vous devez voir ce qui suit :
