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 ELB
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, la función exacta que desempeña el balanceador de cargas depende de si se usa en una blue/green implementación o en una implementación local.
nota
El uso de los balanceadores de carga de Elastic Load Balancing es obligatorio en blue/green las implementaciones y opcional en las implementaciones locales.
Tipos de ELB
El ELB proporciona tres tipos de balanceadores de carga que se pueden usar en las CodeDeploy implementaciones: los balanceadores de carga clásicos, los balanceadores de carga de aplicaciones y los balanceadores de carga de red.
- Equilibrador de carga clásico
-
Enruta y equilibra la carga en la capa de transporte (). TCP/SSL) or the application layer (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 enrutar las solicitudes a los puertos de cada EC2 instancia o instancia de contenedor de su nube privada virtual (VPC).
nota
Los grupos objetivo de Application Load Balancer deben tener un tipo de destino
instancepara las implementaciones en EC2 instancias y para las implementaciones deIPFargate. 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 balanceadores de carga ELB, consulte los siguientes temas:
Implementaciones azul/verde
Redireccionar el tráfico de instancias detrás de un balanceador de cargas de Elastic Load Balancing es fundamental para CodeDeploy blue/green las implementaciones.
Durante una blue/green implementación, el balanceador de carga permite enrutar el tráfico a las nuevas instancias de un grupo de implementación en el que se implementó la última revisión de la aplicación (el entorno de reemplazo), de acuerdo con las reglas que especifique, y luego bloquea el tráfico de las instancias antiguas en las que se estaba ejecutando la revisión anterior de la aplicación (el 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 blue/green implementación, puede especificar uno o más grupos objetivo de Classic Load Balancers, Application Load Balancer o Network Load Balancer en su grupo de implementación. Usa la CodeDeploy consola o AWS CLI para agregar los balanceadores de carga a un grupo de implementación.
Para obtener más información sobre los equilibradores de carga en blue/green las implementaciones, consulta 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 carga 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. OneAtATime la configuración de despliegue 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. CodeDeployDefault OneAtATime la configuración 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, encontrarás instrucciones y ejemplos que puedes adaptar para usar los balanceadores de carga CodeDeploy ELB. 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 EC2 instancias de CodeDeploy Amazon que estén registradas en los balanceadores de carga ELB, haga lo siguiente:
-
Descargue los ejemplos del tipo de balanceador de carga que desea utilizar para una implementación in situ:
-
Asegúrese de que cada una de sus EC2 instancias de Amazon de destino la tenga AWS CLI instalada.
-
Asegúrese de que cada una de sus EC2 instancias de Amazon de destino tenga un perfil de instancia de IAM adjunto con, como mínimo, los permisos elasticloadbalancing: * y autoscaling: *.
-
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.shycommon_functions.sh). -
En la
appspec.ymlrevisión de la aplicación, proporciona instrucciones CodeDeploy para ejecutar elregister_with_elb.shscript durante el ApplicationStartevento y el script durante el evento.deregister_from_elb.shApplicationStop -
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 Classic Load Balancer
, especifique los nombres de los balanceadores de carga ELB y realice los cambios que necesite en ELB_LIST=""el resto de la configuración de despliegue del archivo. -
Si utiliza Application Load Balancer o Network Load
Balancer, especifique los nombres de los grupos objetivo del ELB y realice los cambios que necesite TARGET_GROUP_LIST=""en el resto de la configuración de despliegue del archivo.
-
-
Empaquete el código fuente de la aplicación, el archivo
appspec.ymly 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 EC2 instancias de Amazon. Durante la implementación, los scripts de eventos del ciclo de vida de la implementación anularán el registro de la EC2 instancia de Amazon en el balanceador de cargas, esperarán a que se agote la conexión y, a continuación, volverán a registrar la instancia de EC2 Amazon en el balanceador de cargas una vez finalizada la implementación.