Balanceador de carga de aplicaciones con AWS Elastic Beanstalk: grupo objetivo

Balanceador de carga de aplicaciones con AWS Elastic Beanstalk: grupo objetivo

estoy usando unBalanceador de carga de aplicacionesconAWS Elástico Beanstalk

Después de una actualización automática del servidor de AWS, recibí una página Servicio 503 no disponible temporalmente. (solo esto, con una carga de servidor casi nula - instancia única)

[PHP 7.3 ejecutándose en Amazon Linux/2.9.2 de 64 bits (actualizado desde 2.9.1 automáticamente)]

El Medio Ambiente en sí se mostró saludable.

Estoy usando Application Load Balancer para HTTPS y para escalamiento futuro.

Resulta que AWS EB había creado una nueva instancia EC2 y finalizó la instancia anterior y, por lo tanto, no había ninguna instancia registrada en el grupo objetivo al que se dirigía el balanceador de carga de aplicaciones.

¿Cómo puedo configurar AWS para tener una instancia EC2 de Elastic Beanstalk de reemplazo?registrado automáticamente en un grupo objetivopara un balanceador de carga de aplicaciones?

Respuesta1

Esto fue hace un tiempo, y lo que parece haber funcionado bien para mí es agregar el grupo objetivo correspondiente en la sección Grupo objetivo en Grupos de Auto Scaling.

Entonces vaya a la Consola EC2, luego en la parte inferior del menú de la izquierda (actualmente para mí de todos modos) están los Grupos de Auto Scaling. Haga clic en el grupo de Auto Scaling de la lista y, en la pestaña Detalles, haga clic en Editar y luego agregue el grupo objetivo correspondiente.

Esto parece mantenerlos sincronizados incluso cuando las instancias cambian.

Entonces debería verse así:Captura de pantalla

Respuesta2

Me enfrenté exactamente al mismo problema. Después de un día buscando en Google y probando diferentes enfoques, terminé agregando un script a mi directorio .ebextensions con estas directivas:

container_commands:
   01_register_ALB_target:
    command: "aws elbv2 register-targets --region us-east-1 --target-group-arn arn:aws:elasticloadbalancing:us-east-1:xxxxxxxx:targetgroup/xxxxx/xxxxx
--targets Id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)"

Para ser honesto, no estoy 100% seguro de que funcione perfectamente en una situación real de falla y reinicio. Por ejemplo, no estoy haciendo ningún esfuerzo por eliminar el ID de instancia anterior del grupo objetivo (supongo que se elimina automáticamente, al menos después de un tiempo). Pero el comando definitivamente se ejecuta durante la implementación y parece no causar ningún daño si la instancia ya estaba registrada con el objetivo.

Ver:https://docs.aws.amazon.com/cli/latest/reference/elbv2/register-targets.html

información relacionada