Migración de la aplicación de Linux de Elastic Beanstalk a Amazon Linux 2
AWS Elastic Beanstalk utiliza Amazon Linux 2
Si la aplicación de Elastic Beanstalk se basa en una ramificación de la plataforma de la AMI de Amazon Linux, utilice esta página para aprender a migrar los entornos de su aplicación a Amazon Linux 2. No está garantizado que, con la aplicación existente, las dos generaciones de plataformas sean compatibles con las versiones anteriores. Además, aunque el código de la aplicación se implemente correctamente en la nueva versión de la plataforma, es posible que se comporte o funcione de forma diferente debido a las diferencias del sistema operativo y del entorno de ejecución. Aunque la AMI de Amazon Linux y Amazon Linux 2 comparten el mismo kernel de Linux, difieren en el sistema de inicialización, las versiones de libc
, la cadena de herramientas del compilador y varios paquetes. También hemos actualizado versiones específicas del entorno de ejecución de la plataforma, algunas herramientas de compilación y otras dependencias. Por tanto, le recomendamos que se tome su tiempo, pruebe la aplicación a fondo en un entorno de desarrollo y realice los ajustes necesarios.
Cuando esté listo para ir a producción, Elastic Beanstalk necesitará una implementación blue/green para realizar la actualización. Para obtener más información sobre las estrategias de actualización de las plataformas, consulte Actualización de la versión de la plataforma del entorno de Elastic Beanstalk.
La consola de Elastic Beanstalk proporciona consejos de migración específicos de la plataforma para muchas ramificaciones de plataformas de la AMI de Amazon Linux obsoletas. Puede ver esta información al visualizar el panel de un entorno que utiliza una de estas ramificaciones de plataforma obsoletas o cuando elige una de estas ramificaciones mientras crea un nuevo entorno. En ambos casos, la consola muestra una advertencia con un enlace de Información. Para ver la información sobre migración de esta plataforma, elija Información. Se abre un panel de ayuda y muestra la información relacionada.
Consideraciones aplicables a todas las plataformas Linux
En la tabla siguiente, se describen algunas consideraciones que debe tener en cuenta al planificar la migración de una aplicación a Amazon Linux 2. Estas consideraciones se aplican a cualquiera de las plataformas Linux de Elastic Beanstalk, sin tener en cuenta los lenguajes de programación o los servidores de aplicaciones específicos.
Area | Cambios e información |
---|---|
Archivos de configuración |
En las plataformas Amazon Linux 2, puede utilizar los mismos archivos de configuración que antes, ya que todas las secciones funcionarán de la misma manera. Sin embargo, es posible que algunas opciones no funcionen igual que lo hacían en las plataformas anteriores de la AMI de Amazon Linux. Por ejemplo:
Es conveniente utilizar enlaces de plataforma para ejecutar código personalizado en las instancias del entorno. Puede seguir utilizando comandos y comandos de contenedor en los archivos de configuración Tendrá que seguir utilizando los archivos de configuración |
Enlaces de la plataforma |
Las plataformas Amazon Linux 2 cuentan con un nuevo mecanismo para ampliar la plataforma del entorno añadiendo ejecutables en los directorios de enlaces de las instancias del entorno. Es posible que, en las versiones anteriores de la plataforma Linux, haya utilizado enlaces de plataforma personalizados. Aunque estos enlaces no estaban diseñados para plataformas administradas y no eran compatibles, podían resultar útiles en algunos casos. En las versiones de la plataforma Amazon Linux 2, los enlaces de plataforma personalizados no funcionan. Debe migrar estos enlaces a los nuevos enlaces de plataforma. Para obtener más información, expanda la sección Enlaces de plataforma de Ampliación de las plataformas Linux de Elastic Beanstalk. |
Servidores proxy compatibles |
Las versiones de la plataforma Amazon Linux 2 admiten los mismos servidores proxy inversos que cada plataforma admitida en sus versiones de plataforma de la AMI de Amazon Linux. Todas las versiones de plataforma de Amazon Linux 2 utilizan nginx como servidor proxy inverso predeterminado. Las plataformas Tomcat, Node.js, PHP y Python también admiten Apache HTTPD como alternativa. Todas las plataformas habilitan la configuración del servidor proxy de manera uniforme, como se describe en esta sección. Sin embargo, la configuración del servidor proxy es ligeramente diferente de lo que era en la AMI de Amazon Linux. Estas son las diferencias para todas las plataformas:
Para obtener información sobre los cambios de configuración de proxy específicos de la plataforma, consulte Consideraciones específicas de la plataforma. Para obtener información sobre la configuración del proxy en plataformas Amazon Linux 2, expanda la sección Reverse Proxy Configuration (Configuración del proxy inverso) en Ampliación de las plataformas Linux de Elastic Beanstalk. |
Perfil de instancia |
En las plataformas Amazon Linux 2, es necesario configurar un perfil de instancia. Si se crea un entorno sin un perfil de instancia, este podría funcionar temporalmente; sin embargo, es posible que pronto se produjeran errores, cuando las acciones que requieren un perfil de instancia no pudieran ejecutarse correctamente. Para obtener más información, consulte Administración de perfiles de instancia de Elastic Beanstalk. |
Estado mejorado |
Las versiones de la plataforma Amazon Linux 2 habilitan el estado mejorado de forma predeterminada. Esto supone un cambio si no utiliza la consola de Elastic Beanstalk para crear sus entornos. De forma predeterminada, siempre que es posible, la consola habilita el estado mejorado, independientemente de la versión de la plataforma. Para obtener más información, consulte Informes y monitorización de estado mejorados. |
AMI personalizada |
Si su entorno utiliza una AMI personalizada, cree una nueva AMI basada en Amazon Linux 2 para el nuevo entorno que utilice una plataforma Amazon Linux 2 de Elastic Beanstalk. |
Plataformas personalizadas |
Las AMI administradas de las versiones de la plataforma Amazon Linux 2 no son compatibles con las plataformas personalizadas. |
Consideraciones específicas de la plataforma
En esta sección se describen consideraciones de migración específicas de determinadas plataformas Linux de Elastic Beanstalk.
La siguiente tabla muestra información sobre la migración de las versiones de la plataforma Amazon Linux 2 en la plataforma Docker.
Area | Cambios e información |
---|---|
Almacenamiento |
Elastic Beanstalk configura Docker de tal forma que use controladores de almacenamiento Con la AMI de Amazon Linux, si ha utilizado la opción |
Autenticación de repositorio privado |
Cuando proporciona un archivo de autenticación generado por Docker para conectarse a un repositorio privado, ya no es necesario convertirlo al formato anterior que requerían las versiones de la plataforma Docker de la AMI de Amazon Linux. Las versiones de la plataforma Docker de Amazon Linux 2 admiten el nuevo formato. Para obtener más información, consulte Uso de imágenes de un repositorio privado. |
Servidor proxy |
Las versiones de la plataforma Docker de Amazon Linux 2 no admiten contenedores independientes que no se ejecuten detrás de un servidor proxy. En las versiones de la plataforma Docker de la AMI de Amazon Linux, esto solía ser posible a través del valor |
La siguiente tabla muestra información sobre la migración de las versiones de la plataforma Amazon Linux 2 en la plataforma Go.
Area | Cambios e información |
---|---|
Transferencia de puertos |
En las plataformas Amazon Linux 2, Elastic Beanstalk no pasa ningún valor de puerto al proceso de la aplicación a través de la variable de entorno |
La siguiente tabla muestra información sobre la migración de las ramificaciones de la plataforma Corretto en la plataforma Java SE.
Area | Cambios e información |
---|---|
Corretto en comparación con OpenJDK |
Para implementar la plataforma Java, Standard Edition (Java SE), las ramificaciones de la plataforma Amazon Linux 2 utilice Amazon Corretto |
Herramientas de compilación |
Las plataformas Amazon Linux 2 tienen versiones más recientes de las herramientas de compilación: |
Administración de archivos JAR |
En las plataformas Amazon Linux 2, si su paquete de código fuente (archivo ZIP) contiene un único archivo JAR y ningún otro archivo, Elastic Beanstalk ya no cambia el nombre del archivo JAR a |
Transferencia de puertos |
En las plataformas Amazon Linux 2, Elastic Beanstalk no pasa ningún valor de puerto al proceso de la aplicación a través de la variable de entorno |
Java 7 |
Elastic Beanstalk no admite una ramificación de la plataforma Java 7 de Amazon Linux 2. Si tiene una aplicación Java 7, mígrela a Corretto 8 o a Corretto 11. |
La siguiente tabla muestra información sobre la migración de las versiones de la plataforma Amazon Linux 2 en la plataforma Tomcat.
Area | Cambios e información | ||||||
---|---|---|---|---|---|---|---|
Opciones de configuración |
En las versiones de la plataforma Amazon Linux 2, Elastic Beanstalk solo admite un subconjunto de las opciones de configuración y los valores de opción en el espacio de nombres
La opción |
||||||
Ruta de la aplicación |
En las plataformas Amazon Linux 2, la ruta al directorio de la aplicación en las instancias de Amazon EC2 de su entorno es |
La siguiente tabla muestra información sobre la migración de las versiones de la plataforma Amazon Linux 2 en la plataforma Node.js.
Area | Cambios e información | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Versiones de Node.js instaladas |
En las plataformas Amazon Linux 2, Elastic Beanstalk mantiene varias ramificaciones de la plataforma Node.js y solo instala la versión más reciente de la versión principal de Node.js correspondiente a la ramificación de la plataforma de cada versión de la plataforma. Por ejemplo, cada versión de plataforma de la ramificación de la plataforma Node.js 12 solo tiene la versión Node.js 12.x.y instalada de forma predeterminada. En las versiones de la plataforma de la AMI de Amazon Linux, hemos instalado las múltiples versiones de varias versiones de Node.js en cada versión de la plataforma y hemos mantenido únicamente una ramificación de la plataforma. Seleccione la ramificación de la plataforma Node.js que se corresponda con la versión principal de Node.js que necesita su aplicación. |
||||||||||
Nombres de archivos de registro HTTPD de Apache |
En las plataformas Amazon Linux 2, si utiliza el servidor proxy Apache HTTPD, los nombres de archivo de registro HTTPD son Para obtener más información sobre los nombres de archivos de registro y las ubicaciones de todas las plataformas, consulte Cómo Elastic Beanstalk configura CloudWatch Logs. |
||||||||||
Opciones de configuración |
En las plataformas Amazon Linux 2, Elastic Beanstalk no admite las opciones de configuración en el espacio de nombres
|
La siguiente tabla muestra información sobre la migración de las versiones de la plataforma Amazon Linux 2 en la plataforma PHP.
Area | Cambios e información |
---|---|
Procesamiento de archivos PHP |
En las plataformas Amazon Linux 2, los archivos PHP se procesan mediante PHP-FPM (un administrador de procesos CGI). En las plataformas de la AMI de Amazon Linux utilizábamos mod_php (un módulo Apache). |
Servidor proxy |
Las versiones de la plataforma PHP de Amazon Linux 2 admiten los servidores proxy nginx y Apache HTTPD. El valor predeterminado es nginx. Las versiones de la plataforma PHP de la AMI de Amazon Linux solo admiten Apache HTTPD. Si agregó archivos de configuración personalizados de Apache, puede establecer la opción |
La siguiente tabla muestra información sobre la migración de las versiones de la plataforma Amazon Linux 2 en la plataforma Python.
Area | Cambios e información |
---|---|
Servidor WSGI |
En las plataformas Amazon Linux 2, Gunicorn Alternativamente, puede utilizar un |
Ruta de la aplicación |
En las plataformas Amazon Linux 2, la ruta al directorio de la aplicación en las instancias de Amazon EC2 de su entorno es |
Servidor proxy |
Las versiones de la plataforma Python de Amazon Linux 2 admiten los servidores proxy nginx y Apache HTTPD. El valor predeterminado es nginx. Las versiones de la plataforma Python de la AMI de Amazon Linux solo admiten Apache HTTPD. Si agregó archivos de configuración personalizados de Apache, puede establecer la opción |
La siguiente tabla muestra información sobre la migración de las versiones de la plataforma Amazon Linux 2 en la plataforma Ruby.
Area | Cambios e información |
---|---|
Versiones de Ruby instaladas |
En las plataformas Amazon Linux 2, Elastic Beanstalk solo instala la versión más reciente de una sola versión de Ruby, correspondiente a la ramificación de la plataforma, en cada versión de la plataforma. Por ejemplo, cada versión de la plataforma en la ramificación de la plataforma Ruby 2.6 solo tiene Ruby 2.6.x instalado. En las versiones de la plataforma de la AMI de Amazon Linux, instalamos las versiones más recientes de varias versiones de Ruby, por ejemplo, 2.4.x, 2.5.x y 2.6.x. Si su aplicación utiliza una versión de Ruby que no se corresponde con la ramificación de la plataforma que está utilizando, le recomendamos que cambie a una ramificación de la plataforma que tenga la versión correcta de Ruby para su aplicación. |
Servidor de aplicaciones |
En las plataformas Amazon Linux 2, Elastic Beanstalk solo instala el servidor de aplicaciones Puma en todas las versiones de la plataforma Ruby. Puede usar un En la plataforma de la AMI de Amazon Linux, admitíamos dos tipos de ramificaciones de la plataforma para cada versión de Ruby: una con el servidor de aplicaciones Puma y la otra con el servidor de aplicaciones Passenger. Si su aplicación utiliza Passenger, puede configurar su entorno de Ruby para instalar y usar Passenger. Para obtener más información y ejemplos, consulte Uso de la plataforma Elastic Beanstalk Ruby. |