Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Rails App Server AWS OpsWorks Stacks Layer
importante
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post
nota
Esta capa solo está disponible para pilas basadas en Linux.
La capa Rails App Server es una capa de AWS OpsWorks Stacks que proporciona un modelo para las instancias que funcionan como servidores de aplicaciones de Rails.
Instalación: AWS OpsWorks Stacks usa el instalador de paquetes de la instancia para instalar los paquetes del servidor en sus ubicaciones predeterminadas. Para obtener más información acerca de la instalación de Apache/Passenger, consulte Phusion Passenger
La página Add Layer (Añadir capa) contiene las siguientes opciones de configuración, todas ellas opcionales.
- Ruby Version
-
Versión de Ruby que se va a utilizar en las aplicaciones. El valor predeterminado es 2.3.
También puede especificar la versión de Ruby que prefiera anulando el atributo [:opsworks][:ruby_version].
nota
AWS OpsWorks Stacks instala un paquete Ruby independiente para que lo usen las recetas y el agente de instancias. Para obtener más información, consulte Versiones de Ruby.
- Rails Stack
-
La pila de Rails predeterminada es Apache2
con Phusion Passenger . También puede utilizar Nginx con Unicorn . nota
Si utiliza Nginx y Unicorn, debe añadir el gem unicorn al archivo Gemfile de su aplicación, tal y como se muestra en el siguiente ejemplo:
source 'https://rubygems.org' gem 'rails', '3.2.15' ... # Use unicorn as the app server gem 'unicorn' ...
- Passenger Version
-
Si ha especificado Apache2/Passenger, debe especificar la versión de Passenger. El valor predeterminado es 5.0.28.
- Rubygems Version (Versión de Rubygems)
-
La versión predeterminada de Rubygems
es 2.5.1. - Install and Manage Bundler (Instalar y administrar Blundler)
-
Le permite elegir si desea instalar y administrar Bundler
. El valor predeterminado es Yes (Sí). - Bundler version (Versión de Bundler)
-
La versión predeterminada de Bundler es 1.12.5.
- Grupos de seguridad personalizados
-
Esta configuración aparece si eliges no asociar automáticamente un grupo de seguridad integrado de AWS OpsWorks Stacks a tus capas. Tiene que especificar qué grupo de seguridad debe asociarse a la capa. Para obtener más información, consulte Crear una pila nueva.
- Elastic Load Balancer
-
Puede adjuntar un equilibrador de carga Elastic Load Balancing a las instancias de la capa.
Puede modificar algunas opciones de configuración mediante un archivo JSON personalizado o un archivo de atributos personalizado. Para obtener más información, consulte Anulación de atributos. Para obtener una lista de los atributos de Apache, Nginx, Phusion Passenger y Unicorn que pueden anularse, consulte Atributos integrados de los libros de recetas.
importante
Si su aplicación Ruby on Rails utiliza SSL, le recomendamos que desactive SSLv3 si es posible, para abordar las vulnerabilidades descritas en CVE-2014-3566
Temas
Desactivación de SSLv3 para servidores Rails
Si desea desactivar SSLv3 para servidores Rails, actualice el parámetro Ruby Version (Versión de Ruby) de la capa a 2.1 o superior, lo que instalará Ruby 2.1.4 u otra versión superior como la versión que las aplicaciones utilizan.
-
Actualice el parámetro Ruby Version (Versión de Ruby) de la capa a la versión 2.1 o superior.
-
Actualice el archivo de configuración de la pila Rails, tal y como se indica a continuación.
- Apache con Phusion Passenger
-
Actualice el parámetro
SSLProtocol
en el archivossl.conf
del servidor Apache, tal y como se describe en Desactivación de SSLv3 para servidores Apache. - Nginx con Unicorn
-
Añada una directiva
ssl_protocols
explícita al archivonginx.conf
del servidor Nginx. Para desactivar SSLv3, sobrescriba el archivo de plantillas integrado del libro de recetas nginxnginx.conf.erb
, que las recetas Setup de la capa del servidor de aplicaciones de Rails utilizan para crearnginx.conf
, y añada la directiva siguiente:ssl_protocols TLSv1.2;
Para obtener más información acerca de cómo configurar
nginx.conf
, consulte Configuring HTTPS servers. Para obtener más información sobre cómo anular una plantilla integrada, consulte Uso de plantillas personalizadas.
Conexión a una base de datos
Cuando implementas una aplicación, AWS OpsWorks Stacks crea un nuevo database.yml archivo con la información de los atributos de la aplicación. deploy Si adjuntas una instancia de MySQL o Amazon RDS a la aplicación, AWS OpsWorks Stacks añade la información de conexión a los deploy
atributos para que contengan database.yml
automáticamente los datos de conexión correctos.
Si una aplicación no tiene una base de datos adjunta, de forma predeterminada, AWS OpsWorks Stacks no añade ninguna información de conexión a los deploy
atributos ni la crea. database.yml
Si desea utilizar otra base de datos, puede utilizar un JSON personalizado para añadir atributos de base de datos a los atributos deploy
con la información de conexión. Todos los atributos están debajo["deploy"]["
, donde appshortname
"]["database"]appshortname es el nombre
corto de la aplicación, que AWS OpsWorks Stacks genera a partir del nombre de la aplicación. Los valores que especifique en el JSON personalizado anulan los parámetros predeterminados. Para obtener más información, consulte Agregar aplicaciones.
AWS OpsWorks Stacks incorpora los siguientes [:...][:database]valores de atributo. database.yml
Los atributos necesarios dependen de la base de datos concreta, pero debes tener un host
atributo o AWS OpsWorks Stacks no lo creará. database.yml
-
[:adapter] (String)
: el adaptador de la base de datos, por ejemplomysql
. -
[:database]
(cadena): el nombre de la base de datos. -
[:encoding]
(cadena): la codificación, que suele estar establecida enutf8
. -
[:host]
(cadena): la dirección URL del host, por ejemplorailsexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com
. -
[:reconnect]
(booleano): indica si la aplicación debe volver a conectarse si la conexión ya no existe. -
[:password]
(cadena): la contraseña de la base de datos. -
[:port]
(Número). : el número de puerto de la base de datos. Use este atributo para anular el número de puerto predeterminado que establece el adaptador. -
[:username]
(cadena): el nombre de usuario de la base de datos.
En el ejemplo siguiente se muestra un JSON personalizado para una aplicación cuyo nombre abreviado es myapp.
{ "deploy" : { "myapp" : { "database" : { "adapter" : "
adapter
", "database" : "databasename
", "host" : "host
", "password" : "password
", "port" :portnumber
"reconnect" :true/false
, "username" : "username
" } } } }
Para obtener más información sobre cómo especificar un JSON personalizado, consulte Uso de un JSON personalizado. Para ver la plantilla utilizada para crear database.yml
(database.yml.erb
), vaya al repositorio del libro de recetas integrado
Implementación de aplicaciones Ruby on Rails
Puede implementar aplicaciones Ruby on Rails desde cualquiera de los repositorios admitidos. A continuación se muestra cómo implementar una aplicación Ruby on Rails de ejemplo en un servidor que ejecuta una pila Apache/Passenger Rails. El código de ejemplo se almacena en un GitHub repositorio público, pero el procedimiento básico es el mismo para los demás repositorios compatibles. Para obtener más información acerca de cómo crear e implementar aplicaciones, consulte Aplicaciones. Para ver el código del ejemplo, que incluye comentarios extensos, visita https://github.com/awslabs/ opsworks-demo-rails-photo -share-app
Para implementar una aplicación de Ruby on Rails desde un repositorio GitHub
-
Cree una pila con una capa del servidor de aplicaciones de Rails con Apache/Passenger como la pila de Rails, añada una instancia de funcionamiento ininterrumpido a la capa e iníciela.
-
Una vez que la instancia esté online, añada una aplicación a la pila y especifique la configuración siguiente:
-
Name: cualquier nombre que prefiera; el ejemplo utiliza
PhotoPoll
.AWS OpsWorks Stacks usa este nombre para mostrarlo y genera un nombre abreviado para uso interno y para identificar la aplicación en los atributos de configuración y despliegue de la pila. Por ejemplo, el nombre PhotoPoll corto es photopoll.
-
App type: Ruby on Rails.
-
Rails environment: la aplicación determina los entornos disponibles.
La aplicación de ejemplo tiene tres:
development
,test
yproduction
. Para este ejemplo, establezca el entorno endevelopment
. Consulte el código de ejemplo para ver las descripciones de cada entorno. -
Tipo de repositorio: cualquiera de los tipos de repositorio admitidos. Especifique
Git
para este ejemplo. -
Repository URL: el repositorio desde el que debe implementarse el código.
Para este ejemplo, establezca la URL en
git://github.com/awslabs/opsworks-demo-rails-photo-share-app
.
Utilice la configuración predeterminada para el resto de los valores y haga clic en Add App (Añadir aplicación) para crear la aplicación.
-
-
Implemente la aplicación en la instancia del servidor de aplicaciones de Rails.
-
Cuando termine la implementación, vaya a la página Instancias y haga clic en la dirección IP pública de la instancia del servidor de aplicaciones de Rails. Debería ver lo siguiente: