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.
Serveur d'applications Rails AWS OpsWorks Couche Stacks
Important
Le AWS OpsWorks Stacks le 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 le AWS Support L'équipe sur AWS Re:post ou via
Note
Cette couche est disponible uniquement pour les piles Linux.
La couche Rails App Server est une AWS OpsWorks Couche Stacks qui fournit un plan 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 AWS OpsWorks Empile le groupe de sécurité avec 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 à l'aide d'un fichier personnalisé JSON ou d'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 l'utiliseSSL, 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ésactiverSSLv3, 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
nginx.conf
, consultez la section Configuration des HTTPS serveurs. 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 des deployattributs de l'application. Si vous attachez une RDS instance My SQL ou Amazon à l'application, AWS OpsWorks Stacks ajoute les informations de connexion aux deploy
attributs, de sorte qu'ils 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 l'option personnalisée JSON pour ajouter des attributs de base de données aux deploy
attributs de l'application avec les informations de connexion. Les attributs se trouvent tous en dessous["deploy"]["
, où appshortname
"]["database"]appshortname
est le nom abrégé de l'application, qui AWS OpsWorks Stacks est généré à partir du nom de l'application. Les valeurs que vous spécifiez dans le mode personnalisé JSON 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 ou AWS OpsWorks Les piles ne seront pas crééesdatabase.yml
.
-
[: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'hôteURL, tel 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). — 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 la personnalisation JSON 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 manière de définir une option personnaliséeJSON, consultezUtilisation de Custom JSON. 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. -
Référentiel URL : référentiel à partir duquel le code doit être déployé.
Pour cet exemple, définissez la valeur URL sur
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 :