Integración CodeDeploy con Elastic Load Balancing - AWS CodeDeploy

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.

Integración CodeDeploy con Elastic Load Balancing

Durante CodeDeploy las implementaciones, un balanceador de carga evita que el tráfico de Internet se dirija a las instancias cuando no están listas, se están implementando actualmente o ya no se necesitan como parte de un entorno. Sin embargo, el rol exacto que desempeña el balanceador de carga depende de si se utiliza en una implementación "blue/green" (azul/verde) o una implementación in situ.

nota

El uso de equilibradores de carga de Elastic Load Balancing es obligatorio en las implementaciones azul/verde y opcional en las implementaciones locales.

Tipos de Elastic Load Balancing

Elastic Load Balancing proporciona tres tipos de balanceadores de carga que se pueden usar en CodeDeploy las implementaciones: balanceadores de carga clásicos, balanceadores de carga de aplicaciones y balanceadores de carga de red.

Equilibrador de carga clásico

Enruta y equilibra la carga en la capa de transporte (TCP/SSL) o la capa de aplicación (HTTP/HTTPS). Es compatible con una VPC.

nota

Los equilibradores de carga clásicos no son compatibles con las implementaciones de Amazon ECS.

Equilibrador de carga de aplicación

Enruta y equilibra la carga en la capa de la aplicación (HTTP/HTTPS) y admite el enrutamiento basado en rutas. Puede dirigir las solicitudes a puertos de cada instancia EC2 o instancia de contenedor de su nube privada virtual (VPC).

nota

Los grupos objetivo del Equilibrador de carga de aplicación deben tener un tipo de destino instance para las implementaciones en instancias EC2 y IP para las implementaciones de Fargate. Para obtener más información, consulte Tipo de destino.

Equilibrador de carga de red

Enruta y equilibra la carga en la capa de transporte (capa 4 de TCP/UDP) basándose en la información de las direcciones que extrae del encabezado del paquete TCP y no de su contenido. Los balanceadores de carga de red pueden gestionar ráfagas de tráfico, conservar la IP de origen del cliente y utilizar una IP fija mientras dura la vida útil del balanceador de carga.

Para obtener más información sobre los equilibradores de carga de Elastic Load Balancing, consulte los temas siguientes:

Implementaciones azul/verde

Redireccionar el tráfico de instancias detrás de un balanceador de cargas de Elastic Load Balancing es fundamental para las implementaciones CodeDeploy azules y ecológicas.

Durante una implementación "blue/green" (azul/verde), el balanceador de carga permite dirigir el tráfico a las nuevas instancias de un grupo de implementaciones en el que se haya implementado la última revisión de la aplicación (el entorno de sustitución) de acuerdo con las reglas que especifique y, a continuación, bloquear el tráfico de las instancias antiguas en las que se ejecutaba la revisión de la aplicación previa (entorno original).

Una vez que las instancias de un entorno de sustitución se hayan registrado en uno o varios equilibradores de carga, se cancela el registro de las instancias del entorno original y, si así lo decide, se terminan las instancias.

Para una implementación azul/verde, puede especificar uno o más equilibradores de carga clásicos, grupos de destino de equilibrador de carga de aplicación o grupos de destino de equilibrador de carga de red en su grupo de implementación. Utiliza la CodeDeploy consola o AWS CLI para añadir los balanceadores de carga a un grupo de implementaciones.

Para obtener más información sobre los equilibradores de carga en las implementaciones "blue/green" (azul/verde), consulte los siguientes temas:

Implementaciones in situ

Durante una implementación local, el balanceador de carga impide que el tráfico de Internet se dirija a la instancia en la está ocurriendo, y la vuelve a poner a disposición una vez finalizada dicha implementación.

Si no se utiliza un balanceador de carga durante una implementación local, es posible que el tráfico de Internet aún se dirija a una instancia durante el proceso de implementación. Como resultado, los clientes podrían encontrarse con aplicaciones web dañadas, incompletas o anticuadas. Cuando utilizas un balanceador de cargas de Elastic Load Balancing con una implementación local, las instancias de un grupo de implementación se cancelan del balanceador de cargas, se actualizan con la última revisión de la aplicación y, a continuación, se vuelven a registrar en el balanceador de cargas como parte del mismo grupo de implementación una vez que la implementación se ha realizado correctamente. CodeDeploy esperará hasta 1 hora para que la instancia se recupere correctamente tras el balanceador de carga. Si el balanceador de cargas no marca la instancia como en buen estado durante el período de espera, CodeDeploy pasa a la siguiente instancia o no se realiza la implementación, según la configuración de la implementación.

Para una implementación local, puede especificar uno o más equilibradores de carga clásicos, grupos de destino de equilibrador de carga de aplicación o grupos de destino de equilibrador de carga de red. Puedes especificar los balanceadores de carga como parte de la configuración del grupo de implementación, o puedes usar un script proporcionado por él CodeDeploy para implementar los balanceadores de carga.

Especificación de un equilibrador de carga de una implementación local mediante un grupo de implementación

Para añadir balanceadores de carga a un grupo de implementación, usa la CodeDeploy consola o. AWS CLI Para obtener información sobre cómo especificar un balanceador de carga en un grupo de implementaciones para implementaciones in situ, consulte los siguientes temas:

Especificación de un equilibrador de carga de una implementación local mediante un script

Utilice los pasos que se indican en el siguiente procedimiento para usar scripts de ciclo de vida para configurar el balanceo de carga para implementaciones locales.

nota

Deberías usar el CodeDeployDefault. OneAtUna configuración de despliegue aTime solo cuando se utiliza un script para configurar un equilibrador de carga para un despliegue in situ. No se admiten las ejecuciones simultáneas y las. CodeDeployDefault OneAtUna configuración de tiempo garantiza la ejecución en serie de los scripts. Para obtener más información acerca de las configuraciones de implementación, consulte Trabajar con configuraciones de implementación en CodeDeploy.

En el repositorio de CodeDeploy muestras GitHub, incluimos instrucciones y ejemplos que puede adaptar para usar los balanceadores de carga de CodeDeploy Elastic Load Balancing. En estos repositorios se incluyen tres scripts de ejemplo (register_with_elb.sh, deregister_from_elb.sh y common_functions.sh) que proporcionan todo el código que necesitará para comenzar. Solo tiene que editar los marcadores de posición de estos tres scripts y después hacer referencia a estos scripts en el archivo appspec.yml.

Para configurar las implementaciones in situ en CodeDeploy instancias de Amazon EC2 que estén registradas en los balanceadores de carga de Elastic Load Balancing, haga lo siguiente:

  1. Descargue los ejemplos del tipo de balanceador de carga que desea utilizar para una implementación in situ:

  2. Asegúrese de que cada una de las instancias de Amazon EC2 de destino la AWS CLI tenga instalada.

  3. Asegúrese de que cada una de sus instancias de Amazon EC2 de destino tenga un perfil de instancia de IAM asociado con los permisos elasticloadbalancing:* y autoscaling:* como mínimo.

  4. En el directorio de código fuente de la aplicación, incluya los scripts de evento de ciclo de vida de implementación (register_with_elb.sh, deregister_from_elb.sh y common_functions.sh).

  5. En la appspec.yml revisión de la aplicación, proporcione instrucciones CodeDeploy para ejecutar el register_with_elb.sh script durante el ApplicationStartevento y el deregister_from_elb.sh script durante el ApplicationStopevento.

  6. Si la instancia forma parte de un grupo de Amazon EC2 Auto Scaling, puede omitir este paso.

    En el script common_functions.sh:

    • Si utiliza el Equilibrador de carga clásico, especifique los nombres de los equilibradores de carga de Elastic Load Balancing en ELB_LIST="" y realice los cambios que necesite en el resto de la configuración de la implementación en el archivo.

    • Si utiliza el Equilibrador de carga de aplicación o el Equilibrador de carga de red, especifique los nombres del grupo de destino de Elastic Load Balancing en TARGET_GROUP_LIST="" y realice los cambios que necesite en el resto de la configuración de la implementación en el archivo.

  7. Empaquete el código fuente de la aplicación, el archivo appspec.yml y los scripts de eventos de ciclo de vida de la implementación en una revisión de la aplicación y después cargue la revisión. Implemente la revisión en las instancias de Amazon EC2. Durante la implementación, los scripts de eventos de ciclo de vida de la implementación cancelarán el registro de la instancia de Amazon EC2 con el equilibrador de carga, esperarán a que se vacíe la conexión y volverán a registrar la instancia de Amazon EC2 con el equilibrador de carga una vez que se complete la implementación.