Actualizaciones del entorno inmutables - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Actualizaciones del entorno inmutables

Las actualizaciones inmutables del entorno son una alternativa a las actualizaciones acumulativas. Las actualizaciones inmutables del entorno garantizan que los cambios de configuración que requieren sustituir instancias se apliquen de forma eficiente y segura. Si se produce un error en una actualización inmutable del entorno, el proceso de restauración solamente tiene que terminar un grupo de Auto Scaling. Por el contrario, en las actualizaciones continuas que experimentan errores, es necesario efectuar otra actualización continua para restaurar los cambios.

Para realizar una actualización inmutable del entorno, Elastic Beanstalk crea un segundo grupo temporal de Auto Scaling detrás del balanceador de carga del entorno con las nuevas instancias. En primer lugar, Elastic Beanstalk lanza una única instancia con la nueva configuración del nuevo grupo. Esta instancia administra el tráfico junto con todas las instancias del grupo de Auto Scaling original que ejecutan la configuración anterior.

Cuando la primera instancia supera las comprobaciones de estado, Elastic Beanstalk lanza otras instancias con la nueva configuración hasta alcanzar el mismo número de instancias que se ejecutaban en el grupo de Auto Scaling original. Cuando todas las instancias nuevas superan las comprobaciones de estado, Elastic Beanstalk las transfiere al grupo de Auto Scaling original y termina el grupo de Auto Scaling temporal junto con las instancias antiguas.

nota

En una actualización inmutable del entorno, la capacidad del entorno se duplica durante un corto periodo de tiempo, cuando las instancias del nuevo grupo de Auto Scaling comienzan a emitir solicitudes y aún no se han terminado las instancias del grupo de Auto Scaling original. Si el entorno tiene muchas instancias o si usted tiene una cuota de instancias bajo demanda pequeña, asegúrese de que cuenta con la capacidad suficiente como para realizar una actualización inmutable del entorno. Si está rozando la cuota, considere la posibilidad de utilizar en su lugar una actualización continua.

Las actualizaciones inmutables requieren que los informes de estado avanzados evalúen el estado del entorno durante la actualización. Los informes de estado avanzados combinan las comprobaciones de estado del balanceador de carga estándar con la monitorización de instancias para asegurarse de que las instancias que ejecutan la nueva configuración atienden las solicitudes correctamente.

También puede utilizar las actualizaciones inmutables para implementar nuevas versiones de la aplicación como alternativa a las implementaciones continuas. Cuando configura Elastic Beanstalk para que utilice actualizaciones inmutables para la implementación de aplicaciones, reemplaza todas las instancias del entorno cada vez que se implementa una nueva versión de la aplicación. Si se produce un error en una implementación de aplicaciones inmutable, Elastic Beanstalk revierte los cambios de forma inmediata terminando el nuevo grupo de Auto Scaling. Esto impide que haya implementaciones parciales de flota, que sí pueden darse si las implementaciones continuas experimentan un error cuando algunos lotes ya están completados.

aviso

Algunas políticas reemplazan todas las instancias durante la implementación o actualización. Esto provoca la pérdida de todos los saldos de ráfagas de Amazon EC2 acumulados. Sucede en los siguientes casos:

  • Actualizaciones de plataforma administradas con reemplazo de instancias habilitado

  • Actualizaciones inmutables

  • Implementaciones con actualizaciones inmutables o división de tráfico habilitada

Si se produce un error en una actualización inmutable, las nuevas instancias cargan los registros de paquete en Amazon S3 antes de que Elastic Beanstalk las termine. Elastic Beanstalk deja los registros de las actualizaciones inmutables erróneas en Amazon S3 una hora antes de eliminarlos, en lugar de los 15 minutos estándar de los registros de paquete y los registros de finalización.

nota

Si utiliza actualizaciones inmutables con la implementación de versiones de la aplicación pero no con la configuración, puede producirse un error si intenta implementar una versión de la aplicación que contenga cambios de configuración que normalmente activarían una actualización continua (por ejemplo, configuraciones que cambian el tipo de instancia). Para evitar esto, efectúe el cambio de configuración en una actualización diferente o configure actualizaciones inmutables tanto para las implementaciones como para los cambios de configuración.

No se puede ejecutar una actualización inmutable junto con cambios de configuración de los recursos. Por ejemplo, no puede cambiar una configuración que requiera la sustitución de instancias al mismo tiempo que actualiza otras opciones o que ejecuta una implementación inmutable con archivos de configuración que cambian las opciones de ajuste u otros recursos del código fuente. Si intenta cambiar la configuración de recursos (por ejemplo, la configuración del balanceador de carga) al mismo tiempo que ejecuta una actualización inmutable, Elastic Beanstalk devolverá un error.

Si los cambios de configuración de los recursos no dependen de que se realicen modificaciones en el código fuente o en la configuración de la instancia, realícelos en dos actualizaciones. En caso de que sí dependan de estas modificaciones, realice en su lugar una implementación "blue/green".

Configuración de actualizaciones inmutables

Puede habilitar y configurar las actualizaciones inmutables en la consola de Elastic Beanstalk.

Para habilitar las actualizaciones inmutables (consola)
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su Región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

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

  4. En la categoría de configuración Rolling updates and deployments (Actualizaciones acumulativas e implementaciones), elija Edit (Editar).

  5. En la sección Configuration Updates (Actualizaciones de configuración), establezca Rolling update type (Tipo de actualización acumulativa) en Immutable (Inmutable).

    La sección de actualizaciones de configuración de la página modificar configuración de actualizaciones acumulativas e implementaciones
  6. Para guardar los cambios, elija Aplicar en la parte inferior de la página.

El espacio de nombres aws:autoscaling:updatepolicy:rollingupdate

También puede utilizar las opciones del espacio de nombres aws:autoscaling:updatepolicy:rollingupdate para configurar actualizaciones inmutables. En el siguiente archivo de configuración de ejemplo, se habilitan actualizaciones inmutables para cambios de configuración.

ejemplo .ebextensions/immutable-updates.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable

En el siguiente ejemplo, se habilitan actualizaciones inmutables tanto para cambios de configuración como para implementaciones.

ejemplo .ebextensions/immutable-all.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable aws:elasticbeanstalk:command: DeploymentPolicy: Immutable

La CLI de EB y la consola de Elastic Beanstalk aplican los valores recomendados a las opciones anteriores. Debe eliminar estos ajustes si desea usar archivos de configuración para configurarlos. Para obtener más información, consulte Valores recomendados.