Serveur d'applications Rails AWS OpsWorks Couche Stacks - AWS OpsWorks

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 AWS Support haut de gamme.

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. Pour plus d'informations sur la journalisation, consultez Fichiers journaux. Pour plus d'informations sur l'installation de Nginx/Licorne, consultez Unicorn.

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. Pour de plus amples informations, veuillez consulter Désactivation SSLv3 pour les serveurs Rails.

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 fichier ssl.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 fichier nginx.conf du serveur Nginx. Pour le désactiverSSLv3, remplacez le fichier modèle du livre de recettes nginx intégré, que les recettes nginx.conf.erb de configuration de la couche Rails App Server utilisent pour nginx.conf créer, et ajoutez la directive suivante :

ssl_protocols TLSv1.2;

Pour plus d'informations sur la configurationnginx.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"]["appshortname"]["database"], où 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
  1. 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.

  2. 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 utilisePhotoPoll.

      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 et production. Pour cet exemple, définissez l'environnement avec la valeur development. 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 surgit://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.

  3. Déployez l'application sur l'instance Rails App Server.

  4. 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 :

Congratulatory message for deploying first app with AWS OpsWorks, with stylized logo.