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.
Uso de la plataforma Elastic Beanstalk Ruby
En este tema se describe cómo configurar, compilar y ejecutar las aplicaciones de Ruby en Elastic Beanstalk.
AWS Elastic Beanstalk admite varias ramas de plataforma para diferentes versiones del lenguaje de programación Ruby. Consulte Ruby en AWS Elastic Beanstalk El documento de plataformas contiene una lista completa.
La aplicación web Ruby puede ejecutarse detrás de un servidor NGINX proxy en un servidor de aplicaciones Puma. Si lo usa RubyGems, puede incluir uno Gemfileen su paquete de código fuente para instalar los paquetes durante el despliegue.
Configuración del servidor de aplicaciones
Elastic Beanstalk instala el servidor de aplicaciones Puma en función de la ramificación de la plataforma Ruby que elija al crear su entorno. Para obtener más información sobre los componentes que se proporcionan con las versiones de la plataforma Ruby, consulte Plataformas compatibles en AWS Elastic Beanstalk Guía de plataformas.
Puede configurar la aplicación con su propio servidor Puma proporcionado. Esto proporciona la opción de usar una versión de Puma que no sea la preinstalada con la ramificación de la plataforma Ruby. También puede configurar la aplicación para que utilice un servidor de aplicaciones diferente, como Passenger. Para ello, debe incluir y personalizar un Gemfile
en su implementación. También es necesario configurar un Procfile
para iniciar el servidor de aplicaciones. Para obtener más información, consulte Configuración del proceso de la aplicación con un Procfile.
Otras opciones de configuración
Elastic Beanstalk proporciona opciones de configuración que puede usar para personalizar el software que se ejecuta en las instancias de Amazon Elastic Compute Cloud (EC2Amazon) de su entorno de Elastic Beanstalk. Puede configurar las variables de entorno que necesita la aplicación, habilitar la rotación de logs en Amazon S3 y asignar carpetas del código fuente de la aplicación que contengan archivos estáticos a rutas proporcionadas por el servidor proxy. La plataforma también preestablece algunas variables de entorno comunes relacionadas con Rails y Rack para facilitar la detección y el uso.
En la consola de Elastic Beanstalk hay opciones de configuración disponibles para modificar la configuración de un entorno en ejecución. Para evitar perder la configuración del entorno cuando lo termina, puede usar las configuraciones guardadas para guardar la configuración y aplicarla posteriormente a otro entorno.
Para guardar la configuración en el código fuente, puede incluir archivos de configuración. Los valores de configuración de los archivos de configuración se aplican cada vez que crea un entorno o que implementa la aplicación. También puede usar archivos de configuración para instalar paquetes, ejecutar scripts y llevar a cabo otras operaciones de personalización de instancias durante las implementaciones.
La configuración aplicada en la consola de Elastic Beanstalk anula la misma configuración en los archivos de configuración, si existe. Esto le permite tener la configuración predeterminada en los archivos de configuración y anularla con la configuración específica del entorno en la consola. Para obtener más información acerca de la prioridad y otros métodos para cambiar valores de configuración, consulte Opciones de configuración.
Para obtener más información sobre las diversas formas en las que puede ampliar una plataforma Elastic Beanstalk basada en Linux, consulte Ampliación de las plataformas Linux de Elastic Beanstalk.
Configuración del entorno de Ruby
Puede utilizar la consola de Elastic Beanstalk para habilitar la rotación de registros en Amazon S3 y configurar variables que la aplicación pueda leer desde el entorno.
Para tener acceso a las opciones de configuración de software del entorno
Abra la consola de Elastic Beanstalk
y, en la lista Regiones, seleccione su Región de AWS. -
En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.
nota
Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.
En el panel de navegación, elija Configuration (Configuración).
-
En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.
Log Options (Opciones de registro)
La sección Log Options (Opciones de registro) tiene dos valores:
-
Instance profile (Perfil de instancia): especifica el perfil de instancia que tiene permiso para obtener acceso al bucket de Amazon S3 asociado con la aplicación.
-
Habilite la rotación de archivos de registro a Amazon S3: especifica si los archivos de registro de las EC2 instancias de Amazon de su aplicación se copian en el bucket de Amazon S3 asociado a su aplicación.
Archivos estáticos
Para mejorar el rendimiento, puede usar la sección Archivos estáticos para configurar el servidor proxy para que sirva archivos estáticos (por ejemplo, HTML o imágenes) de un conjunto de directorios dentro de su aplicación web. Para cada directorio, se establece la ruta virtual para la asignación de directorios. Cuando el servidor proxy recibe una solicitud de un archivo en la ruta especificada, proporciona directamente el archivo en lugar de direccionar la solicitud la aplicación.
Para obtener más información sobre la configuración de archivos estáticos mediante archivos de configuración o la consola de Elastic Beanstalk, consulte Distribución de archivos estáticos.
De forma predeterminada, el servidor proxy en un entorno Ruby se configura de modo tal que sirva los archivos estáticos como se indica a continuación:
-
Archivos en la carpeta
public
se sirven desde la ruta/public
y la raíz del dominio (ruta/
). -
Archivos en la subcarpeta
public/assets
se sirven desde la ruta/assets
.
En los siguientes ejemplos se ilustra el funcionamiento de la configuración predeterminada:
-
Por ejemplo, si el código fuente de la aplicación contiene un archivo llamado
logo.png
en una carpeta denominadapublic
, el servidor proxy lo proporciona a los usuarios desde
ysubdomain
.elasticbeanstalk.com/public/logo.png
.subdomain
.elasticbeanstalk.com/logo.png -
Si el código fuente de la aplicación contiene un archivo llamado
logo.png
en una carpeta denominadaassets
dentro de la carpetapublic
, el servidor proxy lo proporciona desde
.subdomain
.elasticbeanstalk.com/assets/logo.png
Puede configurar más asignaciones para los archivos estáticos. Para obtener más información, consulte Espacios de nombres de la configuración de Ruby más adelante en este tema.
nota
Para las versiones de plataforma anteriores a la AL2versión 3.3.7 de Ruby 2.7, la configuración predeterminada del servidor proxy nginx de Elastic Beanstalk no admite el servicio de archivos estáticos desde la raíz del dominio ().
Esta versión de la plataforma se lanzó el 21 de octubre de 2021. Para obtener más información, consulte Nuevas versiones de la plataforma: Ruby en AWS Elastic Beanstalk Notas de la versión.subdomain
.elasticbeanstalk.com/
Propiedades del entorno
La sección Propiedades del entorno le permite especificar los ajustes de configuración del entorno en las EC2 instancias de Amazon que ejecutan su aplicación. Las propiedades del entorno se pasan como pares de clave-valor a la aplicación.
La plataforma Ruby define las siguientes propiedades de configuración del entorno:
-
BUNDLE_ WITHOUT — Una lista de grupos separados por dos puntos que se deben ignorar al instalar dependencias
desde un Gemfile. -
BUNDLER_ DEPLOYMENT _ MODE — Establézcalo en
true
(valor predeterminado) para instalar las dependencias en el modo de despliegue mediante Bundler.Cámbielo a false
para ejecutarbundle install
en modo de desarrollador.nota
Esta propiedad de entorno no está definida en las ramas de la plataforma Amazon Linux AMI Ruby (anteriores a Amazon Linux 2).
-
RAILS_ _ SKIP ASSET _ COMPILATION — Configúrelo
true
para omitir la ejecuciónrake assets:precompile
durante la implementación. -
RAILS_ SKIP _ MIGRATIONS — Configúrelo
true
para omitir la ejecuciónrake db:migrate
durante el despliegue. -
RACK_ ENV — Especifique la etapa del entorno para Rack. Por ejemplo,
development
,production
otest
.
Dentro del entorno de Ruby que se ejecuta en Elastic Beanstalk, es posible acceder a las variables de entorno mediante el objeto ENV
. Por ejemplo, podría leer una propiedad denominada API_ENDPOINT
en una variable con el siguiente código:
endpoint = ENV['API_ENDPOINT']
Para obtener más información, consulte Propiedades del entorno y otras opciones del software.
Espacios de nombres de la configuración de Ruby
Puede usar un archivo de configuración para definir opciones de configuración y realizar otras tareas de configuración en las instancias durante las implementaciones. Las opciones de configuración pueden ser específicas de la plataforma o aplicarse a todas las plataformas del servicio de Elastic Beanstalk en su conjunto. Las opciones de configuración se organizan en espacios de nombres.
Puede usar el espacio de nombres aws:elasticbeanstalk:environment:proxy:staticfiles
para configurar el proxy del entorno para que sirva archivos estáticos. Defina mapeos de rutas virtuales a directorios de aplicaciones.
La plataforma Ruby no define ningún espacio de nombres específico de la plataforma. En su lugar, define propiedades para el entorno para opciones comunes de Rails y Rack.
El siguiente archivo de configuración especifica una opción de archivos estáticos que asigna un directorio denominado staticimages
a la ruta /images
, establece cada una de las propiedades de entorno definidas por la plataforma y establece una propiedad de entorno adicional llamada LOGGING
.
ejemplo .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
nota
La propiedad del BUNDLER_DEPLOYMENT_MODE
entorno y el espacio de aws:elasticbeanstalk:environment:proxy:staticfiles
nombres no están definidos en las ramas de la plataforma Amazon Linux AMI Ruby (anteriores a Amazon Linux 2).
Elastic Beanstalk cuenta con numerosas opciones de configuración para personalizar el entorno. Además de los archivos de configuración, también puede establecer las opciones de configuración mediante la consola, las configuraciones guardadas, el EB CLI o el AWS CLI. Consulte Opciones de configuración para obtener más información.