Uso de la plataforma Tomcat de Elastic Beanstalk - AWS Elastic Beanstalk

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 Tomcat de Elastic Beanstalk

En este tema se describe cómo configurar, crear y ejecutar las aplicaciones Java que se ejecutan en la plataforma Tomcat de Elastic Beanstalk.

La plataforma AWS Elastic Beanstalk Tomcat es un conjunto de versiones de plataforma para aplicaciones web Java que se pueden ejecutar en un contenedor web Tomcat. Tomcat se ejecuta detrás de un servidor proxy nginx. Cada rama de la plataforma corresponde a una versión principal de Tomcat.

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.

Las plataforma Tomcat de Elastic Beanstalk incluye un proxy inverso que reenvía las solicitudes a su aplicación. Puede usar opciones de configuración para configurar el servidor proxy para servir recursos estáticos de una carpeta del código fuente con el fin de reducir la carga en su aplicación. Para escenarios avanzados, puede incluir sus propios archivos .conf en el paquete de código fuente para ampliar la configuración del proxy de Elastic Beanstalk o sobrescribirla completamente.

nota

Elastic Beanstalk admite nginx (el predeterminadoHTTP) y Apache Server como servidores proxy en la plataforma Tomcat. Si su entorno Tomcat de Elastic Beanstalk usa una rama de plataforma Amazon AMI Linux (anterior a Amazon Linux 2), también tiene la opción de usar Apache Server versión 2.2. HTTP Apache (el más reciente) es el valor predeterminado en estas ramas de plataforma más antiguas.

El 18 de julio de 2022, Elastic Beanstalk estableció el estado de todas las sucursales de plataforma basadas en Amazon Linux () como retiradas. AMI AL1 Para obtener más información sobre la migración a una ramificación de la plataforma Amazon Linux 2023 actual y totalmente compatible, consulte Migración de su aplicación de Linux de Elastic Beanstalk a Amazon Linux 2023 o Amazon Linux 2.

Debe empaquetar las aplicaciones Java en un archivo de aplicaciones web (WAR) con una estructura específica. Para obtener información sobre la estructura necesaria y su relación con la estructura de directorios de su proyecto, consulte Estructuración de la carpeta de proyectos.

Para ejecutar varias aplicaciones en el mismo servidor web, puede agrupar varios WAR archivos en un único paquete de código fuente. Cada aplicación de un paquete de WAR fuentes múltiples se ejecuta en la ruta raíz (ROOT.warse ejecuta enmyapp.elasticbeanstalk.com/) o en una ruta situada justo debajo de ella (app2.warse ejecuta enmyapp.elasticbeanstalk.com/app2/), según lo determine el nombre deWAR. En un paquete de WAR código fuente único, la aplicación siempre se ejecuta en la ruta raíz.

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 Tomcat

La plataforma Tomcat de Elastic Beanstalk proporciona algunas opciones específicas de la plataforma, además de las opciones estándar que tienen todas las plataformas. Estas opciones le permiten configurar la máquina virtual Java (JVM) que se ejecuta en los servidores web de su entorno y definir las propiedades del sistema que proporcionan cadenas de configuración de información a la aplicación.

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 configurar el entorno Tomcat en la consola de Elastic Beanstalk
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

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

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.

Opciones de contenedor

Puede especificar estas opciones específicas de la plataforma:

  • Proxy server (Servidor proxy): el servidor proxy que utilizar en las instancias del entorno. De forma predeterminada, se utiliza nginx.

JVMopciones de contenedor

El tamaño del montón de la máquina virtual Java (JVM) determina cuántos objetos puede crear la aplicación en la memoria antes de que se produzca la recolección de elementos no utilizados. Puede modificar el tamaño del JVMmontón inicial (-Xms option) y el tamaño máximo del JVM montón (-Xmxopción). Un tamaño de montón inicial mayor permite que se creen más objetos antes de que se recopilen los elementos no utilizados, pero también implica que el recolector de elementos no utilizados tardará más tiempo en compactar el montón. El tamaño máximo del montón especifica la cantidad máxima de memoria que JVM se puede asignar al expandir el montón durante una actividad intensa.

nota

La memoria disponible depende del tipo de EC2 instancia de Amazon. Para obtener más información sobre los tipos de EC2 instancias disponibles para su entorno de Elastic Beanstalk, consulte Tipos de instancias en la Guía del usuario de Amazon Elastic Compute Cloud para instancias de Linux.

La generación permanente es una sección del JVM montón que almacena las definiciones de clases y los metadatos asociados. Para modificar el tamaño de la generación permanente, escriba el nuevo tamaño en la opción JVM PermGen Tamaño máximo (-XX:MaxPermSize). Esta configuración solo se aplica a Java 7 y versiones anteriores. Esta opción quedó obsoleta en la versión JDK 8 y fue reemplazada por la opción MaxMetaspaceSize ()-XX:MaxMetaspaceSize.

importante

JDKEn la versión 17 se eliminó la compatibilidad con la opción Java. -XX:MaxPermSize El uso de esta opción con un entorno que se ejecuta en una ramificación de la plataforma de Elastic Beanstalk con Corretto 17 generará un error. Elastic Beanstalk publicó su primera ramificación de la plataforma que ejecuta Tomcat con Corretto 17 el 13 de julio de 2023.

Para obtener más información, consulte los recursos siguientes.

Para obtener más información sobre las plataformas de Elastic Beanstalk y sus componentes, consulte Plataformas compatibles en la guía de Plataformas de AWS Elastic Beanstalk .

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.

Propiedades del entorno

En la sección Propiedades del entorno, puede 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 Tomcat define una propiedad comodín denominada JDBC_CONNECTION_STRING para los entornos Tomcat para pasar una cadena de conexión a una base de datos externa.

nota

Si adjunta una RDS instancia de base de datos a su entorno, cree la cadena de JDBC conexión de forma dinámica a partir de las propiedades del entorno Amazon Relational Database Service (RDSAmazon) proporcionadas por Elastic Beanstalk. Utilice JDBC _ CONNECTION _ STRING solo para las instancias de bases de datos que no se aprovisionen con Elastic Beanstalk.

Para obtener más información sobre el uso de Amazon RDS con la aplicación Java, consulteAñadir una instancia de Amazon RDS DB a su entorno de Java Elastic Beanstalk.

Dentro del entorno Tomcat que se ejecuta en Elastic Beanstalk, las variables de entorno están accesibles mediante System.getProperty(). Por ejemplo, podría leer una propiedad denominada API_ENDPOINT en una variable con el siguiente código.

String endpoint = System.getProperty("API_ENDPOINT");

Para obtener más información, consulte Propiedades del entorno y otras opciones del software.

Espacios de nombres de configuración de Tomcat

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 se pueden definir a través del servicio de Elastic Beanstalk o la plataforma que utilice y están organizadas por espacios de nombres.

La plataforma Tomcat admite las opciones de los siguientes espacios de nombres, además de las opciones admitidas para todos los entornos de Elastic Beanstalk:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— Modificar JVM la configuración. Las opciones de este espacio de nombres se corresponden con las opciones de la consola de administración de la siguiente manera:

    • Xmsopciones JVM de línea de comandos

    • JVM Optionsopciones JVM de línea de comandos

  • aws:elasticbeanstalk:environment:proxy: elija el servidor proxy del entorno.

El siguiente archivo de configuración de ejemplo muestra el uso de las opciones de configuración específicas de Tomcat.

ejemplo .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:container:tomcat:jvmoptions: Xms: 512m JVM Options: '-Xmn128m' aws:elasticbeanstalk:application:environment: API_ENDPOINT: mywebapi.zkpexsjtmd.us-west-2.elasticbeanstalk.com aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

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. Para obtener más información, consulte Opciones de configuración.

Si su entorno Tomcat de Elastic Beanstalk usa una versión de la plataforma Amazon AMI Linux (anterior a Amazon Linux 2), lea la información adicional de esta sección.

Notas
  • La información de este tema solo se aplica a las sucursales de plataforma basadas en Amazon Linux AMI (AL1). AL2Las ramas de la AL2 plataforma 023/ no son compatibles con las versiones anteriores de la plataforma Amazon Linux AMI (AL1) y requieren ajustes de configuración diferentes.

  • El 18 de julio de 2022, Elastic Beanstalk estableció el estado de todas las sucursales de plataforma basadas en Amazon Linux () como retiradas. AMI AL1 Para obtener más información sobre la migración a una ramificación de la plataforma Amazon Linux 2023 actual y totalmente compatible, consulte Migración de su aplicación de Linux de Elastic Beanstalk a Amazon Linux 2023 o Amazon Linux 2.

La AMI plataforma Amazon Linux de Tomcat admite opciones adicionales en los siguientes espacios de nombres:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— Además de las opciones mencionadas anteriormente en esta página para este espacio de nombres, las versiones anteriores de la AMI plataforma Amazon Linux también admiten:

    • XX:MaxPermSize— Tamaño máximo de JVM generación permanente

  • aws:elasticbeanstalk:environment:proxy: además de elegir el servidor proxy, configure también la compresión de respuesta.

El siguiente archivo de configuración de ejemplo muestra el uso de las opciones de configuración de los espacios de nombre del proxy.

ejemplo .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: GzipCompression: 'true' ProxyServer: nginx

Para implementar los archivos de configuración de .ebextensions, incluirlos en código fuente de la aplicación. Para una sola aplicación, agréguelos .ebextensions a un WAR archivo comprimido ejecutando el siguiente comando:

zip -ur your_application.war .ebextensions

Para una aplicación que requiera varios WAR archivos, consulte Agrupación de varios archivos WAR en entornos Tomcat para obtener más instrucciones.