

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.

# Plataformas Elastic Beanstalk
<a name="concepts-all-platforms"></a>

AWS Elastic Beanstalk proporciona una variedad de plataformas en las que puede crear sus aplicaciones. Diseñe su aplicación web con una de estas plataformas y Elastic Beanstalk implementará su código en la versión de la plataforma que seleccione para crear un entorno de aplicación activo.

Elastic Beanstalk proporciona plataformas para distintos lenguajes de programación, servidores de aplicación y contenedores de Docker. Algunas plataformas disponen de varias versiones compatibles a la vez.

**Topics**
+ [Glosario de plataformas Elastic Beanstalk](platforms-glossary.md)
+ [Modelo de responsabilidad compartida para el mantenimiento de plataformas Elastic Beanstalk](platforms-shared-responsibility.md)
+ [Política de compatibilidad con plataformas Elastic Beanstalk](platforms-support-policy.md)
+ [Calendario de lanzamientos de la plataforma Elastic Beanstalk](platforms-schedule.md)
+ [Plataformas compatibles con Elastic Beanstalk](concepts.platforms.md)
+ [Plataformas Linux de Elastic Beanstalk](platforms-linux.md)
+ [Ampliación de las plataformas Linux de Elastic Beanstalk](platforms-linux-extend.md)

# Glosario de plataformas Elastic Beanstalk
<a name="platforms-glossary"></a>

Los siguientes son los términos clave relacionados con AWS Elastic Beanstalk las plataformas y su ciclo de vida.

**Tiempo de ejecución**  
El software de tiempo de ejecución específico a los lenguajes de programación (marco, bibliotecas, intérprete, vm, etc.) necesario para ejecutar el código de la aplicación.

**Componentes Elastic Beanstalk**  
Componentes de software que Elastic Beanstalk agrega a una plataforma para habilitar la funcionalidad de Elastic Beanstalk. Por ejemplo, el agente de estado avanzado es necesario para recopilar información sanitaria y generar informes sobre ella.

**Plataforma**  
Una plataforma es una combinación de un sistema operativo (SO), un tiempo de ejecución, un servidor web, un servidor de aplicaciones y componentes de Elastic Beanstalk. Las plataformas proporcionan componentes que están disponibles para ejecutar su aplicación.

**Versión de la plataforma**  
Una combinación de versiones específicas de un sistema operativo (SO), un tiempo de ejecución, un servidor web, un servidor de aplicaciones y componentes de Elastic Beanstalk. Crea un entorno de Elastic Beanstalk basado en una versión de la plataforma e implementa la aplicación en él.  
Una versión de la plataforma tiene un número de versión semántica con la forma *X.Y.Z*, donde *X* es la versión principal, *Y* es la versión secundaria y *Z* es la versión del parche.  
Una versión de la plataforma puede estar en uno de los siguientes estados:  
+ *Recomendado*: la versión de la plataforma más reciente en una ramificación de la plataforma compatible. Esta versión contiene la mayoría de up-to-date los componentes y se recomienda su uso en entornos de producción. Cuando Elastic Beanstalk publica una nueva versión de la plataforma, la nueva versión reemplaza a la anterior y pasa a ser la versión recomendada de la plataforma para la ramificación de la plataforma correspondiente.
+ *No recomendado*: cualquier versión de la plataforma que no sea la versión más reciente de su ramificación de la plataforma. Si bien estas versiones pueden seguir funcionando, recomendamos encarecidamente que se actualicen a la última versión de la plataforma. Puede utilizar las [actualizaciones de plataforma gestionadas](environment-platform-update-managed.md) para que up-to-date se mantengan automáticamente.
Puede comprobar si se recomienda una versión de la plataforma mediante el comando **[describe-platform-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-platform-version.html)** de la CLI de AWS y marcando el campo `PlatformLifecycleState`.

**Ramificación de la plataforma**  
Una línea de versiones de la plataforma que comparten versiones específicas (normalmente principales) de algunos de sus componentes, como el sistema operativo (SO), el tiempo de ejecución o los componentes de Elastic Beanstalk. Por ejemplo: *Python 3.13 en ejecución en Amazon Linux 2023 de 64 bits*; *IIS 10.0 en ejecución en Windows Server 2025 de 64 bits*. Las ramificaciones de la plataforma reciben actualizaciones en forma de nuevas versiones de la plataforma. Cada versión sucesiva de la plataforma en una ramificación es una actualización de la anterior.  
La versión recomendada de la plataforma en cada ramificación de la plataforma está disponible sin condiciones para la creación de un entorno. Las versiones anteriores de la plataforma siguen siendo accesibles para las cuentas con entornos activos o terminados que las utilizaban en el momento en que fueron sustituidas por una nueva versión. Las versiones anteriores de la plataforma carecen de la mayoría de up-to-date los componentes y no se recomienda su uso.  
Si necesita acceder a versiones anteriores de la plataforma más allá de la disponibilidad estándar descrita anteriormente, puede ponerse en contacto con el [Centro de soporte de AWS](https://console.aws.amazon.com/support/home#/) para obtener ayuda.
Una ramificación de la plataforma puede estar en uno de los siguientes estados:  
+ *Compatible*: una ramificación actual de la plataforma. Consta únicamente de *componentes compatibles*. Los componentes compatibles no han llegado al final de su vida útil (EOL) como lo indican sus proveedores. Recibe continuas actualizaciones de la plataforma y se recomienda su uso en entornos de producción. Para obtener una lista de las ramificaciones compatibles de la plataforma, consulte [Plataformas compatibles con Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) en la guía *AWS Elastic Beanstalk Platforms*.
+ *Beta*: una versión preliminar de la ramificación de la plataforma. Es de naturaleza experimental. Puede recibir continuas actualizaciones de la plataforma durante un tiempo, pero no tiene soporte a largo plazo. No se recomienda utilizar una ramificación beta de la plataforma en entornos de producción. Úsela solo para evaluación. Para obtener una lista de las ramificaciones beta de la plataforma, consulte [Versiones beta públicas de la plataforma Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-beta.html) en la guía *AWS Elastic Beanstalk Platforms*.
+ *Obsoleta*: una ramificación de la plataforma en la que uno o más componentes (como el tiempo de ejecución o el sistema operativo) se están acercando al final de su vida útil (EOL) o han llegado al final de su EOL, tal y como indican sus proveedores. Si bien una ramificación obsoleta de la plataforma sigue recibiendo nuevas versiones de la plataforma hasta su fecha de retirada, los componentes que han alcanzado el EOL no reciben actualizaciones. Por ejemplo, si una versión en tiempo de ejecución alcanza el EOL, la ramificación de la plataforma se marcará como obsoleta, pero seguirá recibiendo actualizaciones del sistema operativo hasta la fecha de retirada de la ramificación de la plataforma. La ramificación de la plataforma no seguirá recibiendo actualizaciones de la versión de tiempo de ejecución marcada como EOL. No se recomienda utilizar una ramificación obsoleta de la plataforma.
+ *Retirada*: una ramificación de la plataforma que ya no recibe actualizaciones. Las ramificaciones retiradas de la plataforma no están disponibles para crear nuevos entornos de Elastic Beanstalk mediante la consola de Elastic Beanstalk. Si su entorno utiliza una ramificación retirada de la plataforma, debe actualizar a una ramificación compatible de la plataforma para seguir recibiendo las actualizaciones. No se recomienda utilizar una ramificación retirada de la plataforma. Para obtener más información sobre las ramificaciones retiradas de la plataforma, consulte [Política de compatibilidad con plataformas Elastic Beanstalk](platforms-support-policy.md). Para obtener una lista de las ramificaciones de la plataforma programadas para su retiro, consulte el [cronograma de retiro de ramificaciones de la plataforma](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-schedule.html#platforms-support-policy.depracation). Para ver las ramificaciones retiradas de la plataforma anteriormente, consulte el [historial de ramificaciones retiradas de la plataforma](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-schedule.html#platforms-support-policy.retired).
Si su entorno utiliza una ramificación obsoleta o retirada de la plataforma, le recomendamos que la actualice a una versión de la plataforma de una ramificación de la plataforma compatible. Para obtener más información, consulte [Actualización de la versión de la plataforma del entorno de Elastic Beanstalk](using-features.platform.upgrade.md).  
Puede comprobar el estado de una ramificación de la plataforma mediante el comando **[describe-platform-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-platform-version.html)** de la CLI de AWS y comprobando el campo `PlatformBranchLifecycleState`.

**Actualización de plataforma**  
La publicación de una nueva versión de la plataforma que contiene actualizaciones de algunos componentes de la plataforma: SO, tiempo de ejecución, servidor web, servidor de aplicaciones y componentes de Elastic Beanstalk. Cuando Elastic Beanstalk publica una nueva versión de la plataforma, la nueva versión reemplaza a la anterior y pasa a ser la versión recomendada de la plataforma para la ramificación de la plataforma correspondiente. Las actualizaciones de la plataforma siguen una taxonomía de versión semántica y pueden tener tres niveles:  
+ *Actualización principal*: una actualización que contiene cambios incompatibles con las versiones de la plataforma existentes. Es posible que tenga que modificar su aplicación para que se ejecute correctamente en una nueva versión principal. Una actualización principal tiene un nuevo número de versión principal de la plataforma.
+ *Actualización secundaria*: una actualización que contiene cambios compatibles con versiones anteriores y con las versiones existentes de la plataforma en la mayoría de los casos. Según su aplicación, es posible que deba modificar su aplicación para que se ejecute correctamente en una nueva versión secundaria. Una actualización secundaria tiene un nuevo número de versión secundaria de la plataforma.
+ *Actualización de parche*: una actualización que consta de versiones de mantenimiento (solución de errores, actualizaciones de seguridad y mejoras de rendimiento) compatibles con versiones anteriores de la plataforma. Una actualización de parche tiene un nuevo número de versión de parche de la plataforma.

**Managed Updates**  
Una característica de Elastic Beanstalk que aplica automáticamente actualizaciones secundarias y parches a los componentes del sistema operativo (SO), el tiempo de ejecución, el servidor web, el servidor de aplicaciones y los componentes de Elastic Beanstalk para una versión de plataforma compatible con Elastic Beanstalk. Una actualización administrada aplica una versión de la plataforma más reciente de la misma ramificación de la plataforma a su entorno. Puede configurar las actualizaciones de plataforma administradas para aplicar solo las actualizaciones de parches o para las actualizaciones secundarias y de parches. También puede deshabilitar las actualizaciones administradas por completo.  
Para obtener más información, consulte [Actualizaciones de plataforma administradas](environment-platform-update-managed.md).

# Modelo de responsabilidad compartida para el mantenimiento de plataformas Elastic Beanstalk
<a name="platforms-shared-responsibility"></a>

AWS y nuestros clientes comparten la responsabilidad de lograr un alto nivel de seguridad y conformidad de los componentes de software. Este modelo compartido reduce su carga operativa.

Para obtener más información, consulte el [modelo de responsabilidad AWS compartida](https://aws.amazon.com/compliance/shared-responsibility-model/).

AWS Elastic Beanstalk le ayuda a cumplir su parte del modelo de responsabilidad compartida al proporcionar una función de *actualizaciones gestionadas*. Esta característica aplica automáticamente actualizaciones secundarias y de parche para una versión de plataforma compatible de Elastic Beanstalk. Si se produce un error en una actualización administrada, Elastic Beanstalk le notifica el error para garantizar que sea consciente del mismo y pueda emprender acciones inmediatas.

Para obtener más información, consulte [Actualizaciones de plataforma administradas](environment-platform-update-managed.md).

Además, Elastic Beanstalk hace lo siguiente:
+ Publica su [política de compatibilidad con plataformas](platforms-support-policy.md) y la programación de retiradas para los siguientes 12 meses.
+ Publica actualizaciones principales, secundarias y de parches para componentes de sistema operativo (SO), tiempo de ejecución, servidor de aplicaciones y servidor web, normalmente en el plazo de 30 días tras estar disponibles. Elastic Beanstalk se encarga de crear actualizaciones para componentes de Elastic Beanstalk que estén presentes en sus versiones de plataforma compatibles. Todas las demás actualizaciones vienen directamente de sus proveedores (los propietarios o la comunidad).

Anunciamos todas las actualizaciones de las plataformas compatibles en nuestras [notas de la versión](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/relnotes.html) en la guía *Notas de la versión de AWS Elastic Beanstalk *. También proporcionamos una lista de todas las plataformas compatibles y sus componentes, junto con un historial de la plataforma, en la guía *Plataformas de AWS Elastic Beanstalk *. Para obtener más información, consulte [Historial de componentes y plataformas compatibles](concepts.platforms.md#concepts.platforms.list).

Usted será responsable de lo siguiente:
+ Actualice todos los componentes que controla (identificados como **Cliente** en el [modelo de responsabilidad AWS compartida](https://aws.amazon.com/compliance/shared-responsibility-model/)). Esto incluye garantizar la seguridad de la aplicación, los datos y los componentes que necesite la aplicación y que haya descargado.
+ Asegurarse de que sus entornos de Elastic Beanstalk se ejecuten en una versión de plataforma compatible, y migrar cualquier entorno que se ejecute en una versión de la plataforma retirada a una versión compatible.
+ Si utiliza una imagen de máquina de Amazon (AMI) personalizada para su entorno de Elastic Beanstalk, aplique parches, mantenga y pruebe la AMI personalizada para que siga siendo actualizada y compatible con una versión de la plataforma de Elastic Beanstalk compatible. Para obtener más información la administración de entornos con una AMI personalizada, consulte [Uso de una imagen de máquina de Amazon (AMI) personalizada en el entorno de Elastic Beanstalk](using-features.customenv.md).
+ Resolver todos los problemas que surgen en intentos fallidos de actualización administrada y volver a intentar la actualización.
+ Aplicar usted mismo parches al SO, el tiempo de ejecución, el servidor de aplicaciones y el servidor web si ha decidido no optar por las actualizaciones administradas de Elastic Beanstalk. Puede hacer esto [aplicando manualmente actualizaciones de plataforma](using-features.platform.upgrade.md) o aplicando parches directamente a los componentes en todos los recursos del entorno pertinentes.
+ [Gestione la seguridad y el cumplimiento de todos AWS los servicios que utilice fuera de Elastic Beanstalk de acuerdo con AWS el modelo de responsabilidad compartida.](https://aws.amazon.com/compliance/shared-responsibility-model/)

# Política de compatibilidad con plataformas Elastic Beanstalk
<a name="platforms-support-policy"></a>

Elastic Beanstalk admite las ramificaciones de la plataforma que siguen recibiendo actualizaciones secundarias y de parches continuas por parte de sus proveedores (propietarios o comunidad). Para obtener una definición completa de los términos relacionados, consulte [Glosario de plataformas Elastic Beanstalk](platforms-glossary.md).

## Ramificaciones de la plataforma retiradas
<a name="platforms-support-policy.retired-platforms"></a>

Cuando el proveedor indica que un componente de una ramificación compatible de la plataforma ha llegado al final de su vida útil (EOL), Elastic Beanstalk marca la ramificación de la plataforma como retirada. Los componentes de una ramificación de la plataforma son los siguientes: el sistema operativo (SO), la versión del lenguaje de tiempo de ejecución, el servidor de aplicaciones o el servidor web.

Una vez que una ramificación de la plataforma se marca como retirada, se aplican las siguientes políticas:
+ Elastic Beanstalk deja de proporcionar actualizaciones de mantenimiento, incluidas las actualizaciones de seguridad.
+ Elastic Beanstalk deja de proporcionar soporte técnico para las ramificaciones de la plataforma retiradas.
+ Elastic Beanstalk ya no pone a disposición de los nuevos clientes de Elastic Beanstalk la ramificación de la plataforma para las implementaciones en nuevos entornos. Hay un período de gracia de 90 días a partir de la fecha de retirada publicada para los clientes existentes con entornos activos que se ejecutan en ramificaciones de las plataformas retiradas.

**nota**  
Una ramificación de la plataforma retirada no estará disponible en la consola de Elastic Beanstalk. Sin embargo, estará disponible a través de la AWS CLI CLI de EB y la API de EB para los clientes que tengan entornos existentes basados en la rama de plataforma retirada. Los clientes existentes también pueden utilizar las consolas para [Clonar un entorno](using-features.managing.clone.md) y [Volver a crear un entorno](environment-management-rebuild.md).

Para ver una lista de las ramificaciones de la plataforma cuya retirada está programada, consulte [Programación de sucursales de plataforma de retirada](platforms-schedule.md#platforms-support-policy.depracation) en el tema *Programación de la plataforma de Elastic Beanstalk* que aparece a continuación.

Para obtener más información sobre qué esperar cuando la ramificación de la plataforma de su entorno se retire, consulte. [Preguntas frecuentes sobre la retirada de plataformas](using-features.migration-al.FAQ.md)

## Después del período de gracia de 90 días
<a name="platforms-support-policy.beyond-grace"></a>

Nuestra política para las ramificaciones de la plataforma retiradas no elimina el acceso a los entornos ni los recursos. Sin embargo, los clientes existentes que ejecuten un entorno de Elastic Beanstalk en una ramificación de la plataforma retirada deben ser conscientes de los riesgos de hacerlo. Estos entornos pueden acabar en una situación imprevisible, ya que Elastic Beanstalk no puede proporcionar actualizaciones de seguridad, soporte técnico o revisiones para las ramificaciones de la plataforma retirada debido a que el proveedor marca su componente como EOL. 

Por ejemplo, puede surgir una vulnerabilidad de seguridad perjudicial y crítica en un entorno que se ejecuta en una ramificación de la plataforma retirada. O una acción de la API de EB puede dejar de funcionar para el entorno si con el tiempo se vuelve incompatible con el servicio de Elastic Beanstalk. La posibilidad de que se produzcan este tipo de riesgos aumenta cuanto más tiempo permanezca activo un entorno en una ramificación de la plataforma retirada. Para que pueda seguir beneficiándose de las mejoras importantes de seguridad, rendimiento y funcionalidad ofrecidas por los proveedores de componentes en las versiones más recientes, le recomendamos encarecidamente que actualice todos los entornos de Elastic Beanstalk a una versión compatible de la plataforma. 

Si su aplicación tiene problemas mientras se ejecuta en una ramificación de la plataforma retirada y no puede migrarla a una plataforma compatible, debe considerar otras alternativas. Las soluciones alternativas incluyen encapsular la aplicación en una imagen de Docker para ejecutarla como contenedor de Docker. Esto permitiría a un cliente utilizar cualquiera de nuestras soluciones de Docker, como nuestras plataformas AL2 Elastic AL2 Beanstalk 023/Docker u otros servicios basados en Docker, como Amazon ECS o Amazon EKS. Las alternativas que no son de Docker incluyen nuestro AWS CodeDeploy servicio, que permite una personalización completa de los tiempos de ejecución que desee. 

# Calendario de lanzamientos de la plataforma Elastic Beanstalk
<a name="platforms-schedule"></a>

Además del lanzamiento mensual de las nuevas versiones de las ramificaciones de la plataforma, el mantenimiento de nuestras versiones también incluye los siguientes procesos:
+  *Lanzamiento de nuevas ramificaciones de la plataforma*: por lo general, introducen una nueva versión principal de un lenguaje, sistema operativo o servidor de aplicaciones en tiempo de ejecución.
+  *Retirada de las ramificaciones de la plataforma*: debemos retirar una ramificación de la plataforma cuando uno de sus componentes llegue al final de su vida útil (EOL). Para obtener más información sobre las políticas y ramificaciones, consulte [Política de compatibilidad con plataformas Elastic Beanstalk](platforms-support-policy.md).

**Topics**
+ [Recursos de planificación](#platforms-support-policy.resources)
+ [Próximos lanzamientos de la ramificación de la plataforma](#platforms-support-policy.upcoming-releases)
+ [Programación de sucursales de plataforma de retirada](#platforms-support-policy.depracation)
+ [Historial de la ramificación de la plataforma retirada](#platforms-support-policy.retired)
+ [Historial de servidores y sistemas operativos retirados](#platforms-support-policy.retired.components)

## Recursos de planificación
<a name="platforms-support-policy.resources"></a>

Los siguientes recursos pueden ayudarle a planificar el mantenimiento y el soporte de la aplicación que se ejecuta en una plataforma de Elastic Beanstalk.
+ [AWS Elastic Beanstalk Guía de plataformas](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/welcome.html): esta guía proporciona una lista detallada de los componentes de cada una de las ramas de nuestra plataforma. También muestra un historial de plataformas por fecha de lanzamiento con los mismos detalles. Esta guía puede informarle cuando se modifiquen componentes específicos de la ramificación de la plataforma. Si su aplicación comienza a comportarse de forma diferente, también puede hacer una referencia cruzada de la fecha en la que ocurrió en la guía de plataformas para ver si hubo algún cambio en la plataforma que pudiera haber afectado a su aplicación.
+ [AWS Elastic Beanstalk Notas de](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/relnotes.html) la versión: nuestras notas de la versión anuncian todas las versiones de nuestra plataforma, tanto las principales como las secundarias. Esto incluye las actualizaciones mensuales de la plataforma, las versiones de seguridad, las correcciones y los anuncios de retirada. Puede suscribirse a nuestros canales RSS desde la documentación de las notas de la versión.

## Próximos lanzamientos de la ramificación de la plataforma
<a name="platforms-support-policy.upcoming-releases"></a>

La siguiente tabla muestra las próximas ramificaciones de la plataforma Elastic Beanstalk y su fecha de lanzamiento prevista. Estas fechas son provisionales y están sujetas a cambios.


|  Versión del tiempo de ejecución/ramificación de la plataforma  |  Sistema operativo  |  Fecha de lanzamiento prevista  | 
| --- | --- | --- | 
|   Python 3.15   |  Amazon Linux 2023  |  Noviembre de 2026  | 
|   Node.js 26   |  Amazon Linux 2023  |  Noviembre de 2026  | 
|   .NET 11   |  Amazon Linux 2023  |  Diciembre de 2026  | 
|   PHP 8.6   |  Amazon Linux 2023  |  Enero de 2027  | 
|   Ruby 4.1   |  Amazon Linux 2023  |  Febrero de 2027  | 

## Programación de sucursales de plataforma de retirada
<a name="platforms-support-policy.depracation"></a>

En la tabla siguiente se enumeran las ramificaciones de la plataforma de Elastic Beanstalk programadas para retirarse, ya que algunos de sus componentes están llegando al fin de su vida útil (EOL). Todas las sucursales de plataformas AL2 basadas en Internet tienen una fecha de retirada que no es posterior al 30 de junio de 2026, fecha en la que Amazon Linux 2 alcanza su fin de vida. Para obtener más información sobre Amazon Linux 2, consulte [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).

Para ver una lista más detallada de las sucursales de la plataforma que se retiran, que incluye sus componentes específicos, consulte las [versiones de plataforma que se van a retirar](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-retiring.html) en la *Guía de plataformas de AWS Elastic Beanstalk *.


|  Versión del tiempo de ejecución/ramificación de la plataforma  |  Fecha de retirada prevista  | 
| --- | --- | 
| PHP 8.1 AL2023 | 31 de marzo de 2026 | 
| PHP 8.1 AL2 | 31 de marzo de 2026 | 
| Docker AL2 | 30 de junio de 2026 | 
| ECS AL2 | 30 de junio de 2026 | 
| Go 1 AL2 | 30 de junio de 2026 | 
| Corretto 8 AL2 | 30 de junio de 2026 | 
| Corretto 11 AL2 | 30 de junio de 2026 | 
| Corretto 17 AL2 | 30 de junio de 2026 | 
| Corretto 8 with Tomcat 9 AL2 | 30 de junio de 2026 | 
| Corretto 11 with Tomcat 9 AL2 | 30 de junio de 2026 | 
| .NET Core AL2 | 30 de junio de 2026 | 
| Python 3.9 AL2023 | 31 de julio de 2026 | 
| Ruby 3.2 AL2023 | 31 de julio de 2026 | 
| Node.js 20 AL2023 | 31 de julio de 2026 | 
| IIS 10.0 on Windows Server 2016 (& Core) | 30 de septiembre de 2026 | 
| PHP 8.2 AL2023 | 31 de marzo de 2027 | 
| .NET 9 AL2023 | 31 de marzo de 2027 | 
| .NET 8 AL2023 | 31 de marzo de 2027 | 

## Historial de la ramificación de la plataforma retirada
<a name="platforms-support-policy.retired"></a>

En las siguientes tablas se enumeran las ramificaciones de la plataforma Elastic Beanstalk que ya están retiradas. Puede ver un historial detallado de estas ramificaciones de la plataforma y sus componentes en el [historial de la plataforma](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history.html) de la *Guía de plataformas de AWS Elastic Beanstalk *.


**Amazon Linux 2023 (AL2023)**  

|  Versión del tiempo de ejecución/ramificación de la plataforma  |  Fecha de retirada  | 
| --- | --- | 
|   .NET 6 AL2023  |  8 de abril de 2025  | 
|   Node.js 18 AL2023  |  11 de agosto de 2025  | 


**Amazon Linux (2AL2)**  

|  Versión del tiempo de ejecución/ramificación de la plataforma  |  Fecha de retirada  | 
| --- | --- | 
|   Corretto 11 with Tomcat 8.5 AL2  |  10 de octubre de 2024  | 
|   Corretto 8 with Tomcat 8.5 AL2   |  10 de octubre de 2024  | 
|   Corretto 11 with Tomcat 7 AL2  |  29 de junio de 2022  | 
|   Corretto 8 with Tomcat 7 AL2   |  29 de junio de 2022  | 
|   Node.js 18 AL2   | 11 de agosto de 2025 | 
|   Node.js 16 AL2   | 10 de octubre de 2024 | 
|   Node.js 14 AL2   |  10 de octubre de 2024  | 
|   Node.js 12 AL2   |  23 de diciembre de 2022  | 
|   Node.js 10 AL2   |  29 de junio de 2022  | 
|   PHP 8.0 AL2  |  10 de octubre de 2024  | 
|   PHP 7.4 AL2  |  9 de junio de 2023  | 
|   PHP 7.3 AL2  |  29 de junio de 2022  | 
|   PHP 7.2 AL2  |  29 de junio de 2022  | 
|   Python 3.8 AL2  |  8 de abril de 2025  | 
|   Python 3.7 AL2  |  10 de octubre de 2024  | 
|   Ruby 3.0 AL2  |  10 de octubre de 2024  | 
|   Ruby 2.7 AL2  |  10 de octubre de 2024  | 
|   Ruby 2.6 AL2  |  23 de diciembre de 2022  | 
|   Ruby 2.5 AL2  |  29 de junio de 2022  | 


**AMI de Amazon Linux (AL1)**  

|  Versión del tiempo de ejecución/ramificación de la plataforma  |  Fecha de retirada  | 
| --- | --- | 
|   Single Container Docker   |  18 de julio de 2022  | 
|   Multicontainer Docker   |   18 de julio de 2022   | 
|   Preconfigured Docker - GlassFish 5.0 with Java 8   |   18 de julio de 2022   | 
|   Go 1   |   18 de julio de 2022   | 
|   Java 8   |   18 de julio de 2022   | 
|   Java 7   |   18 de julio de 2022   | 
|   Java 8 with Tomcat 8.5   |   18 de julio de 2022   | 
|   Java 7 with Tomcat 7   |   18 de julio de 2022   | 
|   Node.js   |   18 de julio de 2022   | 
|   PHP 7.2 - 7.3   |   18 de julio de 2022   | 
|   Python 3.6   |   18 de julio de 2022   | 
|  Ruby 2,4, 2.5, 2.6 with Passenger   |   18 de julio de 2022   | 
|   Ruby 2.4, 2.5, 2.6 with Puma  |   18 de julio de 2022   | 
| Go 1.3–1.10 | 31 de octubre de 2020 | 
| Java 6 | 31 de octubre de 2020 | 
| Node.js 4.x–8.x | 31 de octubre de 2020 | 
| PHP 5.4–5.6 | 31 de octubre de 2020 | 
| PHP 7.0–7.1 | 31 de octubre de 2020 | 
| Python 2.6, 2.7, 3.4 | 31 de octubre de 2020 | 
| Ruby 1.9.3 | 31 de octubre de 2020 | 
| Ruby 2.0–2.3 | 31 de octubre de 2020 | 

**nota**  
 [El 18 de julio de 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **Elastic Beanstalk estableció el estado de todas las ramas de plataforma basadas en la AMI AL1 de Amazon Linux () como retiradas.** Para obtener más información, consulte [Preguntas frecuentes sobre la retirada de plataformas](using-features.migration-al.FAQ.md). 


**Windows Server**  

| Versión del tiempo de ejecución/ramificación de la plataforma |  Fecha de retirada  | 
| --- | --- | 
| IIS 8.5 en Windows Server (y Core) 2012 R2 de 64 bits | 4 de diciembre de 2023 | 
| IIS 8.5 en Windows Server (y Core) 2012 R2 de 64 bits, versión 0.1.0 |  29 de junio de 2022  | 
| IIS 8.5 en Windows Server (y Core) 2012 R2 de 64 bits, versión 1.2.0 |  29 de junio de 2022 | 
| IIS 10.0 en Windows Server 2016 de 64 bits (y Core), versión 1.2.0 |  29 de junio de 2022 | 
| IIS 8 en la ramificación de la plataforma de Windows Server 2012 R1 de 64 bits | 22 de junio de 2022 | 
| IIS 8 en Windows Server 2012 R1 de 64 bits, versión 0.1.0  | 22 de junio de 2022 | 
| IIS 8 en Windows Server 2012 R1 de 64 bits, versión 1.2.0 | 22 de junio de 2022 | 

**nota**  
Para obtener más información sobre la retirada de las ramificaciones de la plataforma *Windows 2012 R2*, consulte las ramificaciones de la [plataforma Windows Server 2012 R2 retiradas](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2023-12-04-windows-2012-retire.html) en las *notas de la versión AWS Elastic Beanstalk *.

## Historial de servidores y sistemas operativos retirados
<a name="platforms-support-policy.retired.components"></a>

Las siguientes tablas proporcionan un historial de los sistemas operativos, servidores de aplicaciones y servidores web que ya no son compatibles con las plataformas Elastic Beanstalk. Todas las sucursales de la plataforma que utilizaban estos componentes ya están retiradas. Las fechas reflejan la fecha de retirada de la última ramificación de la plataforma Elastic Beanstalk que incluyó el componente.


**Sistemas operativos**  

|  Versión del sistema operativo  |  Fecha de retirada de la plataforma  | 
| --- | --- | 
|   Windows Server 2012 R2 running IIS 8.5  |  4 de diciembre de 2023  | 
|   Windows Server Core 2012 R2 running IIS 8.5  |  4 de diciembre de 2023  | 
|  AMI de Amazon Linux (AL1)  |   18 de julio de 2022   | 
| Windows Server 2012 R1 | 22 de junio de 2022 | 
| Windows Server 2008 R2 | 28 de octubre de 2019 | 


**Servidores de aplicaciones**  

|  Versión del servidor de aplicaciones  |  Fecha de retirada de la plataforma  | 
| --- | --- | 
| Tomcat 7 |  29 de junio de 2022 para plataformas Amazon Linux (2AL2) 18 de julio de 2022 para plataformas AMI (AL1) de Amazon Linux  | 
| Tomcat 8 | 31 de octubre de 2020 | 
| Tomcat 6 | 31 de octubre de 2020 | 


**Servidores web**  

|  Versión del servidor web  |  Fecha de retirada de la plataforma  | 
| --- | --- | 
| IIS 8 en Windows Server de 64 bits | 22 de junio de 2022 | 
| Servidor HTTP de Apache 2.2 | 31 de octubre de 2020 | 
| Nginx 1.12.2 | 31 de octubre de 2020 | 

# Plataformas compatibles con Elastic Beanstalk
<a name="concepts.platforms"></a>

AWS Elastic Beanstalk proporciona una variedad de plataformas en las que puede crear sus aplicaciones. Diseñe su aplicación web con una de estas plataformas y Elastic Beanstalk implementará su código en la versión de la plataforma que seleccione para crear un entorno de aplicación activo.

Elastic Beanstalk aprovisiona los recursos necesarios para ejecutar la aplicación, incluidas una o más instancias de Amazon. EC2 La pila de software que se ejecuta en las EC2 instancias de Amazon depende de la versión de plataforma específica que haya seleccionado para su entorno.

**El nombre de la pila de soluciones de una ramificación de la plataforma**  
Puede usar el *nombre de la pila de soluciones* que se muestra en la versión de la ramificación de la plataforma para lanzar un entorno con la [CLI de EB](eb-cli3.md), la [API de Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/) o la [CLI de AWS](https://aws.amazon.com/cli/). La *Guía de plataformas de AWS Elastic Beanstalk * incluye el *nombre de la pila de soluciones* en la versión de la ramificación de la plataforma que aparece en las secciones [Elastic Beanstalk Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) y [Platform history](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history.html).

Para recuperar todos los nombres de las pilas de soluciones que puede usar para crear un entorno, utilice la [ListAvailableSolutionStacks](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html)API o [https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-available-solution-stacks.html](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-available-solution-stacks.html)la AWS CLI.

Puede personalizar y configurar el software del que depende la aplicación en la plataforma. Puede obtener más información en [Personalización de software en servidores Linux](customize-containers-ec2.md) y [Personalización de software en servidores Windows](customize-containers-windows-ec2.md). Las notas de la versión detalladas de los últimos lanzamientos están disponibles en [Notas de la versión de AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/). 

## Historial de componentes y plataformas compatibles
<a name="concepts.platforms.list"></a>

La *Guía de plataformas de AWS Elastic Beanstalk * enumera todas las versiones de la ramificación de la plataforma actual en la sección [Plataformas compatibles de Elastic beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html). La guía *Plataformas* también incluye un *historial de plataformas* para cada plataforma, donde se muestra una lista de las versiones anteriores de las plataformas de las ramificaciones. Para ver el *historial* de cada plataforma, seleccione uno de los siguientes enlaces.
+ [Docker](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-docker.html)
+ [Go](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-go.html)
+ [Java SE](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-javase.html)
+ [Tomcat (con Java SE)](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-java.html)
+ [.NET Core en Linux](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnetlinux.html)
+ [.NET en Windows Server](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnet.html)
+ [Node.js](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-nodejs.html)
+ [PHP](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-php.html)
+ [Python](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-python.html)
+ [Ruby](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-ruby.html)

# Plataformas Linux de Elastic Beanstalk
<a name="platforms-linux"></a>

Las plataformas de Elastic Beanstalk Linux ofrecen una gran cantidad de funcionalidades para usar. Puede ampliar las plataformas de diferentes maneras para que admitan su aplicación. Para obtener más información, consulte [Ampliación de las plataformas Linux de Elastic Beanstalk](platforms-linux-extend.md).

La mayoría de las plataformas que admite Elastic Beanstalk están basadas en el sistema operativo Linux. En concreto, estas plataformas se basan en Amazon Linux, una distribución de Linux proporcionada por AWS. Las plataformas Linux de Elastic Beanstalk utilizan instancias de Amazon Elastic Compute Cloud EC2 (Amazon) y estas instancias ejecutan Amazon Linux.

**Topics**
+ [Versiones de Amazon Linux compatibles](#platforms-linux.versions)
+ [Lista de plataformas Linux de Elastic Beanstalk](#platforms-linux.list)
+ [Flujo de trabajo de implementación de instancia](platforms-linux-extend.workflow.md)
+ [Flujo de trabajo de implementación de instancias para ECS sobre Amazon Linux 2 y posterior](platforms-linux-extend.workflow.ecs-al2.md)
+ [Herramientas de scripts de plataforma para entornos de Elastic Beanstalk](custom-platforms-scripts.md)

## Versiones de Amazon Linux compatibles
<a name="platforms-linux.versions"></a>

AWS Elastic Beanstalk admite plataformas basadas en Amazon Linux 2 y Amazon Linux 2023.

Para obtener más información acerca de Amazon Linux 2 y Amazon Linux 2023, consulte lo siguiente:
+ **Amazon Linux 2** — [Amazon Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html) en la *Guía del EC2 usuario de Amazon*.
+ **Amazon Linux 2023**: [¿Qué es Amazon Linux 2023?](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html) en la *Guía del usuario de Amazon Linux 2023*.

Para obtener más información sobre las versiones de plataforma admitidas actualmente, consulte [Plataformas compatibles con Elastic Beanstalk](concepts.platforms.md).

**nota**  
Puede migrar la aplicación de una rama de plataforma o de AL1 Elastic AL2 Beanstalk a AL2 la rama de plataforma 023 equivalente. Para obtener más información, consulte [Migración de su aplicación de Linux de Elastic Beanstalk a Amazon Linux 2023 o Amazon Linux 2](using-features.migration-al.md). 

### Amazon Linux 2023
<a name="platforms-linux.versions.al2023"></a>

AWS anunció la [disponibilidad general](https://aws.amazon.com//blogs/aws/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/) de Amazon Linux 2023 en marzo de 2023. La *Guía del usuario de Linux Amazon 2023* ofrece un resumen de las diferencias clave ente Amazon Linux 2 y Amazon Linux 2023. Para obtener más información, consulte [Comparación de Amazon Linux 2 y Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html) en la guía del usuario.

Existe un alto grado de compatibilidad entre las plataformas Amazon Linux 2 y Amazon Linux 2023 de Elastic Beanstalk. Sin embargo, hay algunas diferencias a destacar:
+ **Instance Metadata Service, versión 1 (IMDSv1)**: la IMDSv1 opción de [desactivación](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) está configurada de forma predeterminada `true` en las plataformas AL2 023. El valor predeterminado está `false` en AL2 las plataformas.
+ Herramienta de **instancias pkg-repo: la [pkg-repo](custom-platforms-scripts.md#custom-platforms-scripts.pkg-repo) herramienta** no está disponible para entornos que se ejecutan en AL2 las plataformas 023. Sin embargo, puede seguir aplicando manualmente las actualizaciones del paquete y del sistema operativo a una instancia 023. AL2 Para obtener más información, consulte [Administración de paquetes y actualizaciones del sistema operativo](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) en la *Guía del usuario de Amazon Linux 2023*
+ ** HTTPd Configuración de Apache**: el `httpd.conf` archivo Apache para las plataformas AL2 023 tiene algunos ajustes de configuración diferentes a los de: AL2 
  + Denegar el acceso a todo el sistema de archivos del servidor de forma predeterminada. Esta configuración se describe en *Proteger los archivos del servidor de forma predeterminada* en la página [Consejos de seguridad](https://httpd.apache.org/docs/2.4/misc/security_tips.html) del sitio web de Apache.
  + Denegue el acceso a la configuración de todos `.htaccess` los directorios, excepto a los que estén habilitados específicamente. Esta configuración se describe en *Proteger la configuración del sistema* en la página [Consejos de seguridad](https://httpd.apache.org/docs/2.4/misc/security_tips.html) del sitio web de Apache. La página [Tutorial del servidor HTTP Apache: archivos.htaccess](https://httpd.apache.org/docs/2.4/howto/htaccess.html) indica que esta configuración puede ayudar a mejorar el rendimiento.
  + Denegar el acceso a los archivos con `.ht*` como patrón de nombre. Esta configuración impide que los clientes web visualicen los archivos `.htaccess` y `.htpasswd`.

  Puede cambiar cualquiera de las opciones de configuración de entorno anteriores. Para obtener más información, consulte [Configuración de Apache HTTPD](platforms-linux-extend.proxy.md#platforms-linux-extend.proxy.httpd).
+ **Compatibilidad con variables de entorno multilínea**: las plataformas AL2 023 admiten valores multilínea para las variables de entorno y los secretos en las configuraciones de los servicios de systemd. Las plataformas Amazon Linux 2 no admiten valores de variables de entorno multilínea. Esta mejora le permite utilizar valores de configuración y secretos multilínea en las plataformas AL2 023. Para obtener más información sobre el uso de variables y secretos de entorno, consulte. [Valores multilínea en las variables de entorno de Amazon Linux 2](AWSHowTo.secrets.env-vars.md#AWSHowTo.secrets.multiline)
+ **CloudWatch reenvío de registros personalizado**: el obsoleto agente CloudWatch Logs (`awslogs`paquete) no está disponible en las plataformas AL2 023. Si tiene configuraciones de reenvío de registros personalizadas que instalan y usan el `awslogs` agente obsoleto, debe actualizar los archivos de configuración para usar el CloudWatch agente unificado al migrar de Amazon Linux 2 a 023. AL2 Para obtener más información, consulte [Streaming de archivos de registro personalizados](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.streaming.custom).

**Diferencias específicas de la plataforma**

Además de las diferencias de los sistemas operativos básicos, existen diferencias específicas de plataforma entre las plataformas de ejecución Amazon Linux 2 y AL2 023:
+ **Ramificación de la plataforma.NET**: la estrategia de ramificación de la plataforma.NET difiere entre Amazon Linux 2 y AL2 023. En Amazon Linux 2, la plataforma .NET Core mantiene una ventana rotativa de las principales versiones de.NET dentro de una sola rama de plataforma. En la versión AL2 023, cada rama de la plataforma está anclada a una versión principal específica de .NET (por ejemplo, .NET 9, .NET 10).

  Si implementa aplicaciones que dependen del marco (aplicaciones que dependen del entorno de ejecución de.NET instalado en la plataforma), debe seleccionar una rama de plataforma que coincida con la versión de.NET de destino de la aplicación. Si implementa aplicaciones independientes (aplicaciones que incluyen su propio entorno de ejecución de.NET), puede usar cualquier rama de la plataforma AL2 023.NET independientemente de la versión de.NET de la aplicación, ya que esta no depende del tiempo de ejecución instalado en la plataforma. Para obtener más información, consulte [Agrupación de aplicaciones para la plataforma .NET Core en Linux de Elastic Beanstalk](dotnet-linux-platform-bundle-app.md).
+ **Selección de la versión de Node.js**: la plataforma Node.js de Amazon Linux 2 permite especificar una versión Node.js en el `package.json` archivo de la aplicación. La plataforma Node.js de la AL2 versión 023 no admite esta función. Debe usar la versión predeterminada de Node.js proporcionada por la rama de la plataforma. Para obtener más información sobre la administración de versiones de Node.js, consulte[Configuración de las dependencias de su aplicación en Elastic Beanstalk](nodejs-platform-dependencies.md).
+ **Versión del servidor Ruby Puma**: la plataforma Ruby de Amazon Linux 2 ignora la versión de Puma especificada en el `Gemfile.lock` archivo de la aplicación y utiliza la versión de Puma predeterminada de la plataforma. La plataforma Ruby de la versión AL2 023 utiliza la versión de Puma especificada en, `Gemfile.lock` si está presente. Si no se especifica ninguna versión, la plataforma instala la versión Puma predeterminada de la plataforma.
+ **Disponibilidad de paquetes PHP**: algunos paquetes disponibles en las plataformas PHP de Amazon Linux 2 no están disponibles en las plataformas PHP AL2 023:
  + *Paquetes de cliente MySQL*: los paquetes de cliente `mysql` y `mysql-devel` de línea de comandos no están instalados en las plataformas PHP AL2 023. Si su aplicación requiere conectividad con una base de datos MySQL, utilice PHP `mysqli` o `pdo_mysql` las extensiones, que están disponibles en ambas plataformas.
  + *Herramientas Compass y Ruby*: los `rubygems` paquetes `ruby-devel` y paquetes compatibles con el marco CSS de Compass no están instalados en las plataformas AL2 023 PHP. Compass ha quedado obsoleto. Considere la posibilidad de utilizar herramientas modernas de preprocesamiento de CSS como alternativa.
+ **Herramientas de control de versiones Go**: el sistema de control de versiones Bazaar (`bzr`) no está disponible en las plataformas AL2 023 Go. Bazaar está obsoleto y no se incluye en el AL2 repositorio de paquetes 023. En su lugar, utilice Git, Mercurial o Subversion para el control de versiones, todos los cuales están disponibles en las plataformas AL2 023 Go.

## Lista de plataformas Linux de Elastic Beanstalk
<a name="platforms-linux.list"></a>

La siguiente lista menciona las plataformas de Linux que Elastic Beanstalk admite para diferentes lenguajes de programación y para contenedores de Docker. Elastic Beanstalk ofrece las plataformas basadas en Amazon Linux 2 y Amazon Linux 2023 para todos ellos. Para obtener más información sobre una plataforma, seleccione el enlace correspondiente.
+ [Docker (y Docker basado en ECS)](create_deploy_docker.md) 
+ [Go](create_deploy_go.md)
+ [Tomcat (con Java SE)](create_deploy_Java.md)
+ [Java SE](create_deploy_Java.md)
+ [.NET Core en Linux](create-deploy-dotnet-core-linux.md)
+ [Node.js](create_deploy_nodejs.md)
+ [PHP](create_deploy_PHP_eb.md)
+ [Python](create-deploy-python-apps.md)
+ [Ruby](create_deploy_Ruby.md)

# Flujo de trabajo de implementación de instancia
<a name="platforms-linux-extend.workflow"></a>

**nota**  
La información de esta sección no se aplica a la ramificación de la plataforma *ECS sobre Amazon Linux 2 y Amazon Linux 2023*. Para obtener más información, consulte la siguiente sección, [Flujo de trabajo de implementación de instancias para ECS sobre Amazon Linux 2 y posteriorFlujo de trabajo de despliegue de instancias para ECS en versiones posteriores AL2 ](platforms-linux-extend.workflow.ecs-al2.md). 

Dado que hay muchos mecanismos para ampliar la plataforma el entorno, resulta útil saber qué sucede cuando Elastic Beanstalk aprovisiona una instancia o ejecuta una implementación en una instancia. En el diagrama siguiente, se muestra todo este flujo de trabajo de implementación. En él se representan las diferentes fases de una implementación y los pasos que Elastic Beanstalk realiza en cada fase.

**Notas**  
El diagrama no representa todos los pasos que Elastic Beanstalk lleva a cabo en las instancias del entorno durante la implementación. El objetivo de este diagrama es meramente ilustrativo y pretende proporcionarle el orden y el contexto de la ejecución de las personalizaciones.
Para simplificar, el diagrama menciona solo los subdirectorios de enlace `.platform/hooks/*` (para implementaciones de aplicaciones) y no los subdirectorios de enlace de `.platform/confighooks/*` (para implementaciones de configuración). Los enlaces de estos últimos subdirectorios se ejecutan exactamente en los mismos pasos que los enlaces en los subdirectorios correspondientes que se muestran en el diagrama.

![\[Flujo de trabajo para la orden de ejecución de extensiones en una instancia de entorno que se ejecuta en una plataforma basada en Amazon Linux.\]](http://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/images/platforms-linux-extend-order.png)


En la lista siguiente, se detallan las fases y los pasos de la implementación.

1. **Pasos iniciales**

   Elastic Beanstalk descarga y extrae su aplicación. Después de cada uno de estos pasos, Elastic Beanstalk ejecuta uno de los pasos de extensibilidad.

   1. Ejecuta los comandos que se encuentran en la sección [commands:](customize-containers-ec2.md#linux-commands) de los archivos de configuración.

   1. Ejecuta cualquier archivo ejecutable que se encuentre en el directorio `.platform/confighooks/prebuild` del paquete de origen (`.platform/hooks/prebuild` para una implementación de configuración).

1. **Configuración**

   Elastic Beanstalk configura la aplicación y el servidor proxy.

   1. Ejecuta los comandos que se encuentran en el directorio `Buildfile` del paquete de código fuente.

   1. Copia los archivos de configuración de proxy personalizados, si tiene alguno en el directorio `.platform/nginx` del paquete de código fuente, en la ubicación del entorno de ejecución.

   1. Ejecuta los comandos que se encuentran en la sección [container\$1commands:](customize-containers-ec2.md#linux-container-commands) de los archivos de configuración.

   1. Ejecuta cualquier archivo ejecutable que se encuentre en el directorio `.platform/confighooks/predeploy` del paquete de origen (`.platform/hooks/predeploy` para una implementación de configuración).

1. **implementación**

   Elastic Beanstalk implementa y ejecuta la aplicación y el servidor proxy.

   1. Ejecuta el comando que se encuentra en el archivo `Procfile` del paquete de código fuente.

   1. Ejecuta o vuelve a ejecutar el servidor proxy con los archivos de configuración proxy personalizados, si los hay.

   1. Ejecuta cualquier archivo ejecutable que se encuentre en el directorio `.platform/confighooks/postdeploy` del paquete de origen (`.platform/hooks/postdeploy` para una implementación de configuración).

# Flujo de trabajo de implementación de instancias para ECS sobre Amazon Linux 2 y posterior
<a name="platforms-linux-extend.workflow.ecs-al2"></a>

En la sección anterior se describen las características de extensibilidad que se admiten a lo largo de las fases del flujo de trabajo de la implementación de la aplicación. Existen algunas diferencias para las ramificaciones de la plataforma Docker de [*ECS sobre Amazon Linux 2 y posterior*](create_deploy_docker_ecs.md). En esta sección se explica cómo se aplican esos conceptos a esta ramificación de la plataforma específica. 

Dado que hay muchos mecanismos para ampliar la plataforma el entorno, resulta útil saber qué sucede cuando Elastic Beanstalk aprovisiona una instancia o ejecuta una implementación en una instancia. En el siguiente diagrama, se muestra todo este flujo de trabajo de implementación para un entorno basado en las ramificaciones de la plataforma *ECS sobre Amazon Linux 2* y *ECS sobre Amazon Linux 2023*. En él se representan las diferentes fases de una implementación y los pasos que Elastic Beanstalk realiza en cada fase.

A diferencia del flujo de trabajo descrito en la sección anterior, la fase de configuración de la implementación no admite las siguientes características de extensibilidad: comandos `Buildfile`, comandos `Procfile`, configuración del proxy inverso. 

**Notas**  
El diagrama no representa todos los pasos que Elastic Beanstalk lleva a cabo en las instancias del entorno durante la implementación. El objetivo de este diagrama es meramente ilustrativo y pretende proporcionarle el orden y el contexto de la ejecución de las personalizaciones.
Para simplificar, el diagrama menciona solo los subdirectorios de enlace `.platform/hooks/*` (para implementaciones de aplicaciones) y no los subdirectorios de enlace de `.platform/confighooks/*` (para implementaciones de configuración). Los enlaces de estos últimos subdirectorios se ejecutan exactamente en los mismos pasos que los enlaces en los subdirectorios correspondientes que se muestran en el diagrama.

![\[Flujo de trabajo para la orden de ejecución de extensiones en una instancia de entorno en una plataforma Docker basada en ECS.\]](http://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/images/platform-ecs-al2-extended-order.png)


En la siguiente lista, se detallan los pasos del flujo de trabajo de implementación.

1. Ejecuta los archivos ejecutables que se encuentran en el directorio `appdeploy/pre` en `EBhooksDir`.

1. Ejecuta cualquier archivo ejecutable que se encuentre en el directorio `.platform/confighooks/prebuild` del paquete de origen (`.platform/hooks/prebuild` para una implementación de configuración).

1. Ejecuta cualquier archivo ejecutable que se encuentre en el directorio `.platform/confighooks/predeploy` del paquete de origen (`.platform/hooks/predeploy` para una implementación de configuración).

1. Ejecuta los archivos ejecutables que se encuentran en el directorio `appdeploy/enact` en `EBhooksDir`.

1. Ejecuta los archivos ejecutables que se encuentran en el directorio `appdeploy/post` en `EBhooksDir`.

1. Ejecuta cualquier archivo ejecutable que se encuentre en el directorio `.platform/confighooks/postdeploy` del paquete de origen (`.platform/hooks/postdeploy` para una implementación de configuración).

La referencia a `EBhooksDir` representa la ruta del directorio de enlaces de la plataforma. Para recuperar el nombre de la ruta de directorio, utilice la herramienta de script [get-config](custom-platforms-scripts.md#custom-platforms-scripts.get-config) en la línea de comandos de la instancia del entorno como se muestra a continuación: 

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k EBhooksDir
```

# Herramientas de scripts de plataforma para entornos de Elastic Beanstalk
<a name="custom-platforms-scripts"></a>

En este tema se describen las herramientas que se AWS Elastic Beanstalk proporcionan para los entornos que utilizan las plataformas Amazon Linux. Las herramientas se encuentran en las EC2 instancias de Amazon de los entornos de Elastic Beanstalk.

## get-config
<a name="custom-platforms-scripts.get-config"></a>

Utilice la herramienta `get-config` para recuperar valores de variables de entorno y texto sin formato y otra información de plataformas e instancias. La herramienta está disponible en `/opt/elasticbeanstalk/bin/get-config`.

### comandos get-config
<a name="custom-platforms-scripts.get-config.commands"></a>

Cada comando de herramienta de `get-config` devuelve un tipo específico de información. Utilice la siguiente sintaxis para ejecutar los comandos de cualquiera de las herramientas.

```
$ /opt/elasticbeanstalk/bin/get-config command [ options ]
```

En el siguiente ejemplo se ejecuta el comando `environment`.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k PORT
```

En función del comando y las opciones que elija, la herramienta devuelve un objeto (JSON o YAML) con pares de valor de clave o un valor único.

Puede realizar pruebas `get-config` mediante SSH para conectarse a una EC2 instancia de su entorno de Elastic Beanstalk.

**nota**  
Cuando se ejecuta `get-config` para pruebas, algunos comandos pueden requerir privilegios de usuario raíz para acceder a la información subyacente. Si obtiene un error de permiso de acceso, ejecute el comando de nuevo en `sudo`.  
No es necesario agregar `sudo` cuando utiliza la herramienta en los scripts que implementa en su entorno. Elastic Beanstalk ejecuta todos sus scripts como usuario raíz.

En las siguientes secciones se describen los comandos de las herramientas.

#### optionsettings: opciones de configuración
<a name="custom-platforms-scripts.get-config.commands.optionsettings"></a>

El comando `get-config optionsettings` devuelve un objeto que enumera las opciones de configuración establecidas en el entorno y utilizadas por la plataforma en instancias de entorno. Se organizan por espacio de nombres.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings
{"aws:elasticbeanstalk:application:environment":{"JDBC_CONNECTION_STRING":""},"aws:elasticbeanstalk:container:tomcat:jvmoptions":{"JVM Options":"","Xms":"256m","Xmx":"256m"},"aws:elasticbeanstalk:environment:proxy":{"ProxyServer":"nginx","StaticFiles":[""]},"aws:elasticbeanstalk:healthreporting:system":{"SystemType":"enhanced"},"aws:elasticbeanstalk:hostmanager":{"LogPublicationControl":"false"}}
```

Para devolver un valor de opción de configuración específico, use la opción `--namespace` (`-n`) para especificar un espacio de nombres y la opción `--option-name` (`-o`) para especificar un nombre de opción.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:container:php:phpini -o memory_limit
256M
```

#### environment: propiedades del entorno
<a name="custom-platforms-scripts.get-config.commands.environment"></a>

El comando `get-config environment` devuelve un objeto que contiene una lista de propiedades de entorno, tanto configuradas por el usuario como proporcionadas por Elastic Beanstalk. Las propiedades configuradas por el usuario se definen en la [consola](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console) como *texto sin formato* o con el espacio de nombres de la opción de configuración [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment).

```
$ /opt/elasticbeanstalk/bin/get-config environment
{"JDBC_CONNECTION_STRING":"","RDS_PORT":"3306","RDS_HOSTNAME":"anj9aw1b0tbj6b.cijbpanmxz5u.us-west-2.rds.amazonaws.com","RDS_USERNAME":"testusername","RDS_DB_NAME":"ebdb","RDS_PASSWORD":"testpassword1923851"}
```

Por ejemplo, Elastic Beanstalk proporciona propiedades de entorno para conectarse a una instancia de base de datos de Amazon RDS integrada (como `RDS_HOSTNAME`). Estas propiedades de conexión RDS aparecen en la salida de `get-config environment`. No obstante, no aparecen en la salida de `get-config optionsettings`. El motivo es que no se establecieron en las opciones de configuración.

Para devolver una propiedad específica del entorno, utilice la opción `--key` (`-k`) para especificar la clave de una propiedad.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k TESTPROPERTY
testvalue
```

**nota**  
La herramienta `get-config` no puede recuperar [variables de entorno que almacenan secretos](AWSHowTo.secrets.env-vars.md). Para obtener más información sobre cómo recuperar mediante programación valores de secretos o de almacenes de parámetros, consulte [Uso de Secrets Manager](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.Secrets-Manager) o [Utilización del Parameter Store de Systems Manager](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.SSM-parmameter-store).

#### container: valores de configuración en instancia
<a name="custom-platforms-scripts.get-config.commands.container"></a>

El comando `get-config container` devuelve un objeto que enumera los valores de configuración del entorno y de la plataforma para las instancias de entorno. 

En el siguiente ejemplo se muestra la salida del comando en un entorno Tomcat de Amazon Linux 2.

```
$ /opt/elasticbeanstalk/bin/get-config container
{"common_log_list":["/var/log/eb-engine.log","/var/log/eb-hooks.log"],"default_log_list":["/var/log/nginx/access.log","/var/log/nginx/error.log"],"environment_name":"myenv-1da84946","instance_port":"80","log_group_name_prefix":"/aws/elasticbeanstalk","proxy_server":"nginx","static_files":[""],"xray_enabled":"false"}
```

Para devolver el valor de una clave específica, utilice la opción `--key` (`-k`) para especificar la clave.

```
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name
myenv-1da84946
```

#### addons: valores de configuración de complementos
<a name="custom-platforms-scripts.get-config.commands.addons"></a>

El comando `get-config addons` devuelve un objeto que contiene información de configuración de complementos de entorno. Utilícelo para recuperar la configuración de una base de datos de Amazon RDS asociada al entorno.

```
$ /opt/elasticbeanstalk/bin/get-config addons
{"rds":{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}}
```

Puede restringir el resultado de dos maneras. Para recuperar valores de un complemento específico, utilice la opción `--add-on` (`-a`) para especificar el nombre del complemento.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds
{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}
```

Para devolver el valor de una clave específica dentro de un complemento, agregue la opción `--key` (`-k`) para especificar la clave.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds -k RDS_DB_NAME
ebdb
```

#### platformconfig: valores de configuración constante
<a name="custom-platforms-scripts.get-config.commands.platformconfig"></a>

El comando `get-config platformconfig` devuelve un objeto que contiene información de configuración de plataforma que es constante a la versión de esta última. La salida es la misma en todos los entornos que ejecutan la misma versión de plataforma. El objeto de salida del comando contiene dos objetos incrustados:
+ `GeneralConfig`: contiene información que es constante en las versiones más recientes de todas las ramificaciones de la plataforma Amazon Linux 2 y Amazon Linux 2023.
+ `PlatformSpecificConfig`: contiene información que es constante para la versión de la plataforma y que es específica de ella.

En el siguiente ejemplo se muestra la salida del comando en un entorno que utiliza la ramificación de la plataforma *Tomcat 8.5 que ejecuta Corretto 11*.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig
{"GeneralConfig":{"AppUser":"webapp","AppDeployDir":"/var/app/current/","AppStagingDir":"/var/app/staging/","ProxyServer":"nginx","DefaultInstancePort":"80"},"PlatformSpecificConfig":{"ApplicationPort":"8080","JavaVersion":"11","TomcatVersion":"8.5"}}
```

Para devolver el valor de una clave específica, utilice la opción `--key` (`-k`) para especificar la clave. Estas claves son únicas en los dos objetos incrustados. No es necesario especificar el objeto que contiene la clave.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k AppStagingDir
/var/app/staging/
```

### Opciones de salida de get-config
<a name="custom-platforms-scripts.get-config.global"></a>

Utilice la opción `--output` para especificar el formato del objeto de salida. Los valores válidos son `JSON` (predeterminado) y `YAML`. Se trata de una opción general. Debe especificarla antes del nombre del comando.

En el siguiente ejemplo se devuelven los valores de las opciones de configuración en formato YAML.

```
$ /opt/elasticbeanstalk/bin/get-config --output YAML optionsettings
aws:elasticbeanstalk:application:environment:
  JDBC_CONNECTION_STRING: ""
aws:elasticbeanstalk:container:tomcat:jvmoptions:
  JVM Options: ""
  Xms: 256m
  Xmx: 256m
aws:elasticbeanstalk:environment:proxy:
  ProxyServer: nginx
  StaticFiles:
        - ""
aws:elasticbeanstalk:healthreporting:system:
  SystemType: enhanced
aws:elasticbeanstalk:hostmanager:
  LogPublicationControl: "false"
```

## pkg-repo
<a name="custom-platforms-scripts.pkg-repo"></a>

**nota**  
La herramienta `pkg-repo` no está disponible para entornos basados en las plataformas Amazon Linux 2023. Sin embargo, puede aplicar manualmente las actualizaciones del paquete y del sistema operativo a una instancia 023. AL2 Para obtener más información, consulte [Administración de paquetes y actualizaciones del sistema operativo](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) en la *Guía del usuario de Amazon Linux 2023*

En algunas circunstancias urgentes, es posible que tengas que actualizar tus EC2 instancias de Amazon con un parche de seguridad para Amazon Linux 2 que aún no se haya publicado con las versiones de la plataforma Elastic Beanstalk requeridas. No puede realizar una actualización manual en sus entornos de Elastic Beanstalk de forma predeterminada. Esto se debe a que las versiones de la plataforma se encuentran bloqueadas en una versión específica del repositorio de Amazon Linux 2. Con este bloqueo se garantiza que las instancias ejecuten versiones de software compatibles y coherentes. En casos urgentes, la herramienta `pkg-repo` permite una solución para actualizar manualmente los paquetes yum en Amazon Linux 2 si necesita instalarlo en un entorno antes de que se lance en una nueva versión de la plataforma de Elastic Beanstalk.

La herramienta `pkg-repo` en las plataformas de Amazon Linux 2 proporciona la capacidad de desbloquear los repositorios de paquetes `yum`. A continuación, puede realizar manualmente una **yum update** para aplicar un parche de seguridad. Por el contrario, puede seguir la actualización mediante el uso de la herramienta correspondiente a fin de bloquear los repositorios de paquetes yum y así evitar nuevas actualizaciones. La `pkg-repo` herramienta está disponible en el `/opt/elasticbeanstalk/bin/pkg-repo` directorio de todas las EC2 instancias de sus entornos de Elastic Beanstalk.

Los cambios que se realizan con la `pkg-repo` herramienta se realizan únicamente en el EC2 caso en el que se utiliza la herramienta. No afectan a otras instancias ni impiden futuras actualizaciones del entorno. Los ejemplos que se proporcionan más adelante en este tema explican el modo de aplicar los cambios en todas las instancias mediante la llamada a los comandos `pkg-repo` desde los scripts y los archivos de configuración.

**aviso**  
No se recomienda esta herramienta para la mayoría de los usuarios. Los cambios manuales aplicados a una versión de plataforma desbloqueada se consideran fuera de banda. Esta opción solo es posible para aquellos usuarios en circunstancias excepcionales que puedan asumir los siguientes riesgos:  
No se puede garantizar que las versiones de los paquetes sean coherentes en todas las instancias en los entornos.
No se garantiza que los entornos modificados mediante la herramienta `pkg-repo` funcionen correctamente. No se han probado ni verificado en las plataformas compatibles con Elastic Beanstalk.
Se recomienda aplicar las prácticas recomendadas, que incluyen pruebas y planes de retroceso. Para facilitar las prácticas recomendadas, puede utilizar la consola de Elastic Beanstalk y la CLI de EB para clonar un entorno e intercambiarlo. URLs Para obtener más información sobre cómo usar estas operaciones, consulte [Implementaciones azul/verde](using-features.CNAMESwap.md) en el capítulo relativo a la *Administración de entornos* de esta guía.

Si planea editar manualmente los archivos de configuración del repositorio yum, ejecute la herramienta `pkg-repo` primero. Es posible que la herramienta `pkg-repo` no funcione como se esperaba en un entorno de Amazon Linux 2 con archivos de configuración de repositorios yum editados manualmente. Esto se debe a que la herramienta podría no reconocer los cambios de configuración.

Para obtener más información sobre el repositorio de paquetes de Amazon Linux, consulte el tema sobre el [repositorio de paquetes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#package-repository) en la *Guía del EC2 usuario de Amazon*.

### comandos pkg-repo
<a name="custom-platforms-scripts.pkg-repo.commands"></a>

Utilice la siguiente sintaxis para ejecutar los comandos de la herramienta `pkg-repo`.

```
$ /opt/elasticbeanstalk/bin/pkg-repo command [options]
```

Los comandos `pkg-repo` son los siguientes:
+ **lock**: bloquea los repositorios de paquetes `yum` a una versión específica
+ **unlock**: desbloquea los repositorios de paquetes `yum` desde una versión específica
+ **status**: enumera todos los repositorios de paquetes `yum` y su estado de bloqueo actual
+ **help**: muestra ayuda general o ayuda para un comando

Las opciones se aplican a los comandos de la siguiente manera:
+ `lock`, `unlock` y `status ` – opciones: `-h`, `--help` o ninguno (predeterminado).
+ `help` – opciones: `lock`, `unlock`, `status` o ninguno (predeterminado).



En el siguiente ejemplo se ejecuta el comando **unlock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo unlock
Amazon Linux 2 core package repo successfully unlocked
Amazon Linux 2 extras package repo successfully unlocked
```

En el siguiente ejemplo se ejecuta el comando **lock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo lock
Amazon Linux 2 core package repo successfully locked
Amazon Linux 2 extras package repo successfully locked
```

En el siguiente ejemplo se ejecuta el comando **status**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo status
Amazon Linux 2 core package repo is currently UNLOCKED
Amazon Linux 2 extras package repo is currently UNLOCKED
```

En el siguiente ejemplo se ejecuta el comando **help** para el comando **lock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help lock
```

En el siguiente ejemplo se ejecuta el comando **help** para la herramienta `pkg-repo`.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help
```

Puede probar `pkg-repo` mediante SSH para conectarse a una instancia de su entorno de Elastic Beanstalk. Una opción SSH es el comando [**eb ssh**](eb3-ssh.md) de la CLI de EB.

**nota**  
La herramienta `pkg-repo` requiere privilegios de usuario raíz para ejecutarse. Si obtiene un error de permiso de acceso, ejecute el comando de nuevo en `sudo`.  
No es necesario agregar `sudo` cuando utiliza la herramienta en los archivos de configuración o scripts que implementa en su entorno. Elastic Beanstalk ejecuta todos sus scripts como usuario raíz.

### ejemplos pkg-repo
<a name="custom-platforms-scripts.pkg-repo.examples"></a>

La sección anterior proporciona ejemplos de línea de comandos para realizar pruebas en una EC2 instancia individual de un entorno de Elastic Beanstalk. Este enfoque puede resultar práctico para las pruebas. Sin embargo, actualiza solo una instancia a la vez, por lo que no resulta práctico aplicar cambios en todas las instancias de un entorno.

Un enfoque más pragmático es utilizar scripts de [enlaces de plataforma](platforms-linux-extend.hooks.md) o un archivo de configuración [`.ebextensions`](ebextensions.md) que permita aplicar los cambios en todas las instancias de forma coherente.

En el siguiente ejemplo se llama a `pkg-repo` desde un archivo de configuración en la carpeta [`.ebextensions`](ebextensions.md). Elastic Beanstalk ejecuta los comandos en el archivo `update_package.config` cuando se implementa el paquete de código fuente de la aplicación.

```
.ebextensions
└── update_package.config
```

Para recibir la última versión del paquete *docker*, esta configuración especifica el paquete *docker* en el comando **yum update**.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update docker -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

En esta configuración no se especifica ningún paquete en el comando **yum update**. En consecuencia, se aplican todas las actualizaciones disponibles.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

En el siguiente ejemplo se llama a `pkg-repo` desde un script bash como [enlace de la plataforma](platforms-linux-extend.hooks.md). Elastic Beanstalk ejecuta el archivo de script `update_package.sh` que se encuentra en el subdirectorio `prebuild`.

```
.platform
└── hooks
    └── prebuild
        └── update_package.sh
```

Para recibir la última versión del paquete *docker*, este script especifica el paquete *docker* en el comando **yum update**. Si se omite el nombre del paquete, se aplican todas las actualizaciones disponibles. En el ejemplo del archivo de configuración anterior se demuestra esto.

```
### update_package.sh ###

#!/bin/bash

/opt/elasticbeanstalk/bin/pkg-repo unlock
yum update docker -y
/opt/elasticbeanstalk/bin/pkg-repo lock
yum clean all -y
rm -rf /var/cache/yum
```

## download-source-bundle (Solo AMI de Amazon Linux)
<a name="custom-platforms-scripts.download"></a>

En las ramificaciones de la plataforma AMI de Amazon Linux (antes de Amazon Linux 2), Elastic Beanstalk proporciona una herramienta adicional, que es `download-source-bundle`. Utilice esta herramienta para descargar el código fuente de su aplicación cuando implemente su plataforma. La herramienta está disponible en `/opt/elasticbeanstalk/bin/download-source-bundle`.

El script de ejemplo `00-unzip.sh` se encuentra en la carpeta `appdeploy/pre` de las instancias de entorno. Se demuestra cómo utilizar `download-source-bundle` para descargar el código fuente de la aplicación en la carpeta `/opt/elasticbeanstalk/deploy/appsource` durante la implementación.

# Ampliación de las plataformas Linux de Elastic Beanstalk
<a name="platforms-linux-extend"></a>

En este tema se describe cómo ampliar las plataformas Linux con sus propios comandos, scripts, software y configuraciones. Es posible que necesite ampliar la plataforma para cambiar la configuración y el servidor proxy predeterminados. También puede que deba personalizar la forma en que la plataforma crea o inicia su aplicación.

**Topics**
+ [Buildfile y Procfile](platforms-linux-extend.build-proc.md)
+ [Enlaces de la plataforma](platforms-linux-extend.hooks.md)
+ [Archivos de configuración](platforms-linux-extend.config-files.md)
+ [Configuración del proxy inverso](platforms-linux-extend.proxy.md)
+ [Ejemplo de aplicación con extensiones](platforms-linux-extend.example.md)

# Buildfile y Procfile
<a name="platforms-linux-extend.build-proc"></a>

Algunas plataformas permiten personalizar el modo en que se crea o prepara la aplicación y permiten especificar los procesos que ejecutan la aplicación. Cada tema de la plataforma individual menciona específicamente a *Buildfile and/or *Procfile** si la plataforma los admite. Busque su plataforma específica en [Plataformas Elastic Beanstalk](concepts-all-platforms.md).

Para todas las plataformas de soporte, la sintaxis y la semántica son idénticas, y son como se describe en esta página. Los temas individuales de la plataforma mencionan el uso específico de estos archivos para crear y ejecutar aplicaciones en sus respectivos idiomas.

## Buildfile
<a name="platforms-linux-extend.build"></a>

Si desea especificar un comando de compilación y configuración personalizado para la aplicación, coloque un archivo llamado `Buildfile` en el directorio raíz del origen de la aplicación. El nombre de archivo distingue entre mayúsculas y minúsculas. Utilice la siguiente sintaxis con el archivo `Buildfile`.

```
<process_name>: <command>
```

El comando del archivo `Buildfile` debe ajustarse a la siguiente expresión regular: `^[A-Za-z0-9_-]+:\s*[^\s].*$`.

Elastic Beanstalk no supervisa la aplicación que se ejecuta con un `Buildfile`. Utilice un archivo `Buildfile` con comandos que se ejecuten durante cortos periodos de tiempo y terminen después de completar las tareas. En el caso de los procesos de larga duración de la aplicación que no deben terminar, utilice en su lugar el archivo [Procfile](#platforms-linux-extend.proc).

Todas las rutas de `Buildfile` son rutas relativas que hacen referencia a la raíz del paquete de código fuente. En el siguiente ejemplo de `Buildfile`, `build.sh` es un script de shell que se encuentra en la raíz del paquete de código fuente.

**Example Buildfile**  

```
make: ./build.sh
```

Si desea incluir pasos de compilación personalizados, le recomendamos que, en lugar de `Buildfile`, utilice enlaces de plataforma `predeploy` para todo excepto para los comandos más simples. Los enlaces de plataforma admiten secuencias de comandos más elaboradas y posibilitan una mejor administración de los errores. Los enlaces de plataforma se describen en la siguiente sección.

## Procfile
<a name="platforms-linux-extend.proc"></a>

Si desea especificar comandos personalizados para iniciar y ejecutar la aplicación, coloque un archivo llamado `Procfile` en el directorio raíz del código fuente de la aplicación. El nombre de archivo distingue entre mayúsculas y minúsculas. Utilice la siguiente sintaxis con el archivo `Procfile`. Puede especificar uno o varios comandos.

```
<process_name1>: <command1>
<process_name2>: <command2>
...
```

Cada línea del archivo `Procfile` debe ajustarse a la siguiente expresión regular: `^[A-Za-z0-9_-]+:\s*[^\s].*$`.

Utilice un archivo `Procfile` para procesos de aplicación de larga ejecución que no deberían salir. Elastic Beanstalk espera que los procesos del archivo `Procfile` se ejecuten de forma continua. Elastic Beanstalk supervisa estos procesos y reinicia cualquier proceso que finalice. Para los procesos de corta ejecución, utilice [Buildfile.](#platforms-linux-extend.build).

Todas las rutas de `Procfile` son rutas relativas que hacen referencia a la raíz del paquete de código fuente. En el siguiente ejemplo, `Procfile` define tres procesos. El primero, llamado `web` en el ejemplo, es la *aplicación web principal*.

**Example Procfile**  

```
web: bin/myserver
cache: bin/mycache
foo: bin/fooapp
```

Elastic Beanstalk configura el servidor proxy para reenviar solicitudes a su aplicación web principal en el puerto 5000 y puede configurar este número de puerto. Un uso habitual de `Procfile` es pasar este número de puerto a su aplicación como un argumento de la línea de comandos. Para obtener información detallada sobre la configuración del proxy, consulte [Configuración del proxy inverso](platforms-linux-extend.proxy.md).

Elastic Beanstalk captura flujos de error y salida estándar de procesos del archivo `Procfile` en archivos de registro. Elastic Beanstalk nombra los archivos de registro después del proceso y los almacena en `/var/log`. Por ejemplo, el proceso `web` del ejemplo anterior genera los logs llamados `web-1.log` y `web-1.error.log` para `stdout` y `stderr`, respectivamente.

# Enlaces de la plataforma
<a name="platforms-linux-extend.hooks"></a>

Los enlaces de la plataforma están diseñados específicamente para ampliar la plataforma del entorno. Se trata de scripts personalizados y otros archivos ejecutables que se implementan como parte del código fuente de la aplicación y que Elastic Beanstalk ejecuta durante diversas etapas de aprovisionamiento de instancias.

**nota**  
Los enlaces de la plataforma no son compatibles con las versiones de la plataforma de la AMI de Amazon Linux (anteriores a Amazon Linux 2).

## Enlaces de la plataforma de implementación de aplicaciones
<a name="platforms-linux-extend.hooks.appdeploy"></a>

Una *implementación de aplicación* se produce cuando se proporciona un nuevo paquete de origen para la implementación o cuando se realiza un cambio de configuración que requiere la terminación y recreación de todas las instancias del entorno.

Para proporcionar enlaces de la plataforma que se ejecutan durante una implementación de aplicaciones, coloque los archivos en el directorio `.platform/hooks` del paquete de origen, en uno de los subdirectorios siguientes.
+ `prebuild`: los archivos de este subdirectorio se ejecutan después de que el motor de la plataforma Elastic Beanstalk se descarga y extrae el paquete de código fuente de la aplicación y antes de que configure la aplicación y el servidor web.

  Los archivos de `prebuild` se ejecutan después de los comandos que se encuentran en la sección [commands](customize-containers-ec2.md#linux-commands) de un archivo de configuración y antes de los comandos de `Buildfile`.
+ `predeploy`: los archivos de este subdirectorio se ejecutan después de que el motor de la plataforma Elastic Beanstalk se configura y prepara la aplicación y el servidor web, y antes de que los implemente en la ubicación del entorno de ejecución final.

  Los archivos de `predeploy` se ejecutan después de los comandos que se encuentran en la sección [container\$1commands](customize-containers-ec2.md#linux-container-commands) de un archivo de configuración y antes de que se ejecuten los comandos de `Procfile`.
+ `postdeploy`: los archivos de este subdirectorio se ejecutan después de que el motor de la plataforma Elastic Beanstalk implementa la aplicación y el servidor proxy.

  Este es el último paso del flujo de trabajo de implementación.

## Enlaces de la plataforma de implementación de configuración
<a name="platforms-linux-extend.hooks.configdeploy"></a>

Una *implementación de configuración* se produce cuando se realizan cambios de configuración que solo actualizan las instancias del entorno sin volver a crearlas. Las siguientes actualizaciones de opciones provocan una actualización de configuración.
+ [Propiedades del entorno y configuración específica de la plataforma](environments-cfg-softwaresettings.md)
+ [Archivos estáticos](environment-cfg-staticfiles.md)
+ [AWS X-Ray daemon](environment-configuration-debugging.md)
+ [Almacenamiento y streaming de registros](environments-cfg-logging.md)
+ Puerto de la aplicación (para obtener más información, consulte [Configuración del proxy inverso](platforms-linux-extend.proxy.md))

Para proporcionar enlaces que se ejecutan durante una implementación de configuración, colóquelos en el directorio `.platform/confighooks` del paquete de origen. Se aplican los mismos tres subdirectorios que para los enlaces de implementación de aplicaciones.

## Más información sobre enlaces de plataforma
<a name="platforms-linux-extend.hooks.more"></a>

Los archivos de enlace pueden ser archivos binarios o archivos de script que comienzan con una línea `#!` que contiene la ruta del intérprete; por ejemplo `#!/bin/bash`. Todos los archivos deben tener permiso de ejecución. Utilice `chmod +x` para configurar el permiso de ejecución de los archivos de enlace. En todas las versiones de la plataforma basadas en Amazon Linux 2023 y Amazon Linux 2 que se lanzaron el 29 de abril de 2022 o en fecha posterior, Elastic Beanstalk concede automáticamente permisos de ejecución a todos los scripts de enlace de plataforma. En este caso, no tiene que otorgar permisos de ejecución manualmente. Para obtener una lista de estas versiones de plataforma, consulte las notas de la versión de Linux del [29 de abril de 2022](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-04-29-linux.html#release-2022-04-29-linux.platforms) en la *Guía de notas de la versión de AWS Elastic Beanstalk *.

Elastic Beanstalk ejecuta los archivos de cada uno de estos directorios en orden lexicográfico en función del nombre de archivo. Todos los archivos se ejecutan con el usuario `root`. El directorio de trabajo actual (cwd) de los enlaces de plataforma es el directorio raíz de la aplicación. En los archivos `prebuild` y `predeploy`, es el directorio de almacenamiento provisional de la aplicación, mientras que en los archivos `postdeploy` es el directorio actual de la aplicación. Si se producen errores en uno de los archivos (sale con un código de salida distinto de cero), la implementación se cancela y no se ejecuta correctamente.

El script de texto de enlace de plataforma puede fallar si contiene caracteres de salto de línea *Retorno de carro/Avance de línea* (CRLF, por sus siglas en inglés) de Windows. Si un archivo se guardó en un host de Windows y luego se transfirió a un servidor de Linux, puede contener saltos de línea CRLF de Windows. Para las plataformas lanzadas a partir del [29 de diciembre de 2022](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-12-29-linux.html), Elastic Beanstalk convierte de forma automática los  CRLF de Windows en caracteres de *avance de línea* (LF) de Linux en los archivos de texto de enlace de plataforma. Si la aplicación se ejecuta en cualquier plataforma de Amazon Linux 2 que se haya lanzado antes de esta fecha, tendrá que convertir los caracteres CRLF de Windows en caracteres LF de Linux. Un modo de lograrlo es crear y guardar el archivo de script en un host de Linux. Las herramientas que convierten estos caracteres también están disponibles en Internet.

Los archivos de enlace tienen acceso a todas las propiedades de entorno definidas en las opciones de la aplicación y a las variables de entorno del sistema `HOME`, `PATH` y `PORT`. 

Para obtener valores de variables de entorno y otras opciones de configuración en los scripts de enlace de plataforma, puede utilizar la utilidad `get-config` que Elastic Beanstalk proporciona en las instancias de entorno. Para obtener más información, consulte [Herramientas de scripts de plataforma para entornos de Elastic Beanstalk](custom-platforms-scripts.md).

# Archivos de configuración
<a name="platforms-linux-extend.config-files"></a>

Puede añadir [archivos de configuración](ebextensions.md) al directorio `.ebextensions` del código fuente de la aplicación para configurar diferentes aspectos del entorno de Elastic Beanstalk. Entre otras cosas, los archivos de configuración le permiten personalizar el software y otros archivos de las instancias del entorno, así como ejecutar comandos de inicialización en las instancias. Para obtener más información, consulte [Personalización de software en servidores Linux](customize-containers-ec2.md).

También puede definir [opciones de configuración](command-options.md) utilizando archivos de configuración. Muchas de las opciones controlan el comportamiento de la plataforma y algunas de estas opciones son [específicas de la plataforma](command-options-specific.md).

En las plataformas basadas en Amazon Linux 2 y Amazon Linux 2023, se recomienda utilizar *Buildfile*, *Procfile* y *enlaces de plataforma* para configurar y ejecutar código personalizado en las instancias de su entorno durante el aprovisionamiento de instancias. Estos mecanismos se describen en las secciones anteriores de esta página. Puede seguir utilizando comandos y comandos de contenedor en los archivos de configuración `.ebextensions`, pero no resulta fácil trabajar con ellos. Por ejemplo, puede resultar complicado escribir scripts de comandos en un archivo YAML desde un punto de vista sintáctico. Aún necesita usar los archivos `.ebextensions` de configuración para cualquier script que necesite una referencia a un AWS CloudFormation recurso.

# Configuración del proxy inverso
<a name="platforms-linux-extend.proxy"></a>

Todas las versiones de la plataforma Amazon Linux 2 y Amazon Linux 2023 utilizan nginx como servidor proxy inverso predeterminado. Las plataformas Tomcat, Node.js, PHP y Python también admiten Apache HTTPD como alternativa. Para seleccionar Apache en estas plataformas, establezca la opción `ProxyServer` en el espacio de nombres `aws:elasticbeanstalk:environment:proxy` en `apache`. Todas las plataformas habilitan la configuración del servidor proxy de manera uniforme, como se describe en esta sección.

**nota**  
En las versiones de la plataforma AMI de Amazon Linux (antes de Amazon Linux 2), es posible que tenga que configurar servidores proxy de manera diferente. Puede encontrar estos detalles heredados en los [temas respectivos de la plataforma](concepts-all-platforms.md) en esta guía.

Elastic Beanstalk configura el servidor proxy de las instancias del entorno para que reenvíen el tráfico web a la aplicación web principal de la URL raíz del entorno; por ejemplo, `http://my-env.elasticbeanstalk.com`.

De forma predeterminada, Elastic Beanstalk configura el proxy para que reenvíe las solicitudes entrantes en el puerto 80 a la aplicación web principal en el puerto 5000. Puede configurar este número de puerto con la propiedad de entorno `PORT` utilizando el espacio de nombres [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) en un archivo de configuración, tal y como se muestra en el ejemplo siguiente.

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application:environment
    option_name:  PORT
    value:  <main_port_number>
```

Para obtener más información sobre cómo configurar las variables de la aplicación, consulte [Opciones de configuración](ebextensions-optionsettings.md).

La aplicación debe escuchar el puerto que esté configurado para ella en el proxy. Si cambia el puerto predeterminado utilizando la propiedad de entorno `PORT`, el código podrá acceder a él a través del valor de la variable de entorno `PORT`. Por ejemplo, llame a `os.Getenv("PORT")` en Go o `System.getenv("PORT")` en Java. Si configura el proxy para que envíe tráfico a diferentes procesos de la aplicación, puede configurar varias propiedades de entorno y utilizar sus valores tanto en la configuración del proxy como en el código de la aplicación. Otra opción es pasar el valor del puerto al proceso como un argumento de comando en el archivo `Procfile`. Para obtener más información, consulte [Buildfile y Procfile](platforms-linux-extend.build-proc.md).

## Configuración de nginx
<a name="platforms-linux-extend.proxy.nginx"></a>

Elastic Beanstalk utiliza nginx como proxy inverso predeterminado para asignar la aplicación al equilibrador de carga de Elastic Load Balancing. Elastic Beanstalk proporciona una configuración de nginx predeterminada que puede ampliar o invalidar completamente con su propia configuración.

**nota**  
Cuando agregue o edite un archivo de configuración `.conf` de nginx, asegúrese de codificarlo como UTF-8.

Para ampliar la configuración predeterminada de nginx de Elastic Beanstalk, añada los archivos de configuración `.conf` en una carpeta llamada `.platform/nginx/conf.d/` del paquete de código fuente de su aplicación. La configuración de nginx de Elastic Beanstalk incluye archivos `.conf` en esta carpeta automáticamente.

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- other source files
```

Los archivos de configuración de `.platform/nginx/conf.d/` se incluyen en el bloque `http` de la configuración de nginx. Utilice esta ubicación para las configuraciones que se aplican a nivel mundial.

Para ampliar la configuración predeterminada del bloque del `server` de nginx, añada los archivos de configuración `.conf` en una carpeta llamada `.platform/nginx/conf.d/elasticbeanstalk/` del paquete de código fuente de su aplicación. La configuración de nginx de Elastic Beanstalk incluye archivos `.conf` en esta carpeta dentro del bloque del `server`.

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- elasticbeanstalk
|               `-- server.conf
`-- other source files
```

Utilice esta ubicación para agregar configuraciones específicas del servidor, como bloques de ubicación adicionales, páginas de error personalizadas o directivas a nivel del servidor. En el siguiente ejemplo, se agrega un bloque de ubicación personalizado.

**Example . platform/nginx/conf.d/elasticbeanstalk/server.conf**  

```
location /test {
    return 200 "Hello World!";
    add_header Content-Type text/plain;
}
```

Para anular completamente la configuración predeterminada de nginx de Elastic Beanstalk, incluya una configuración en el paquete de código fuente de `.platform/nginx/nginx.conf`:

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- nginx.conf
`-- other source files
```

Si invalida la configuración de nginx de Elastic Beanstalk, agregue la siguiente línea al archivo `nginx.conf` para extraer las configuraciones de Elastic Beanstalk de [Informes y monitoreo de estado mejorados de Elastic Beanstalk](health-enhanced.md), los mapeos automáticos de la aplicación y los archivos estáticos.

```
 include conf.d/elasticbeanstalk/*.conf;
```

## Configuración de Apache HTTPD
<a name="platforms-linux-extend.proxy.httpd"></a>

Las plataformas Tomcat, Node.js, PHP y Python le permiten elegir el servidor proxy Apache HTTPD como alternativa a nginx. Este no es el valor predeterminado. En el siguiente ejemplo se configura Elastic Beanstalk para que utilice Apache HTTPD.

**Example .ebextensions/httpd-proxy.config**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: apache
```
Puede ampliar la configuración de Apache predeterminada de Elastic Beanstalk con archivos de configuración adicionales. Si lo prefiere, puede anular por completo la configuración de Apache predeterminada de Elastic Beanstalk.  
Para ampliar la configuración de Apache predeterminada de Elastic Beanstalk, añada los archivos de configuración `.conf` a una carpeta con el nombre `.platform/httpd/conf.d` en el paquete de código fuente de su aplicación. La configuración de Apache de Elastic Beanstalk incluye archivos `.conf` en esta carpeta automáticamente.  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   -- httpd
|      -- conf.d
|         -- port5000.conf
|         -- ssl.conf
-- index.jsp
```
Por ejemplo, la siguiente configuración de Apache 2.4 agrega un agente de escucha en el puerto 5000.  

**Example . platform/httpd/conf.d/port5000.conf**  

```
listen 5000
<VirtualHost *:5000>
  <Proxy *>
    Require all granted
  </Proxy>
  ProxyPass / http://localhost:8080/ retry=0
  ProxyPassReverse / http://localhost:8080/
  ProxyPreserveHost on

  ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
```
Para anular por completo la configuración de Apache predeterminada de Elastic Beanstalk, incluya una configuración en el paquete de código fuente en `.platform/httpd/conf/httpd.conf`.  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   `-- httpd
|       `-- conf
|           `-- httpd.conf
`-- index.jsp
```
Si invalida la configuración de Apache de Elastic Beanstalk, agregue la siguiente línea al archivo `httpd.conf` para extraer las configuraciones de Elastic Beanstalk de [Informes y monitoreo de estado mejorados de Elastic Beanstalk](health-enhanced.md), los mapeos automáticos de la aplicación y los archivos estáticos.  

```
IncludeOptional conf.d/elasticbeanstalk/*.conf
```

# Ejemplo de aplicación con extensiones
<a name="platforms-linux-extend.example"></a>

En el siguiente ejemplo, se muestra un paquete de código fuente de aplicaciones con varias características de extensibilidad con las que son compatibles las plataformas Amazon Linux 2 y Amazon Linux 2023 de Elastic Beanstalk: un archivo `Procfile`, archivos de configuración `.ebextensions`, enlaces personalizados y archivos de configuración de proxy.

```
~/my-app/
|-- web.jar
|-- Procfile
|-- readme.md
|-- .ebextensions/
|   |-- options.config        # Option settings
|   `-- cloudwatch.config     # Other .ebextensions sections, for example files and container commands
`-- .platform/
    |-- nginx/                # Proxy configuration
    |   |-- nginx.conf
    |   `-- conf.d/
    |       |-- custom.conf
    |       `-- elasticbeanstalk/
    |           `-- server.conf
    |-- hooks/                # Application deployment hooks
    |   |-- prebuild/
    |   |   |-- 01_set_secrets.sh
    |   |   `-- 12_update_permissions.sh
    |   |-- predeploy/
    |   |   `-- 01_some_service_stop.sh
    |   `-- postdeploy/
    |       |-- 01_set_tmp_file_permissions.sh
    |       |-- 50_run_something_after_app_deployment.sh
    |       `-- 99_some_service_start.sh
    `-- confighooks/          # Configuration deployment hooks
        |-- prebuild/
        |   `-- 01_set_secrets.sh
        |-- predeploy/
        |   `-- 01_some_service_stop.sh
        `-- postdeploy/
            |-- 01_run_something_after_config_deployment.sh
            `-- 99_some_service_start.sh
```

**nota**  
Algunas de estas extensiones no son compatibles con las versiones de la plataforma de la AMI de Amazon Linux (antes de Amazon Linux 2).