Uso de um Gateway Load Balancer para o Amazon ECS - Amazon Elastic Container Service

Uso de um Gateway Load Balancer para o Amazon ECS

Um balanceador de carga de gateway opera na terceira camada do modelo Open Systems Interconnection (OSI), a camada de rede. Ele escuta todos os pacotes IP em todas as portas e encaminha o tráfego para o grupo de destino especificado na regra do listener. Ele mantém a perdurabilidade dos fluxos para um dispositivo de destino específico usando 5 tuplas (para fluxos TCP/UDP) ou 3 tuplas (para fluxos não TCP/UDP). Por exemplo, se a definição de contêiner da tarefa especifica a porta 80 para uma porta de contêiner NGINX e a porta 0 para a porta do host, a porta do host é escolhida dinamicamente com base no intervalo de portas temporário da instância de contêiner (como entre 32768 e 61000 na AMI otimizado para Amazon ECS mais recente). Quando a tarefa é iniciada, o contêiner NGINX é registrado no Gateway Load Balancer como uma combinação entre o ID da instância e a porta, e o tráfego é distribuído para o ID da instância e para a porta correspondente a esse contêiner. Esse mapeamento dinâmico permite várias tarefas de um único serviço na mesma instância de contêiner. Para obter mais informações, consulte What is a Gateway Load Balancer? em Gateway Load Balancers.

Para obter informações sobre as práticas recomendadas para a definição de parâmetros a fim de acelerar as implantações, consulte:

Considere o seguinte ao usar Gateway Load Balancers com o Amazon ECS:

  • O Amazon ECS exige a função do IAM vinculada ao serviço, que fornece as permissões necessárias para registrar e cancelar o registro de destinos com o balanceador de carga quando as tarefas são criadas e interrompidas. Para obter mais informações, consulte Uso de perfis vinculados ao serviço para o Amazon ECS.

  • Para serviços com tarefas que usam o modo de rede awsvpc, ao criar um grupo de destino para o serviço, é necessário escolher ip como o tipo de destino, e não instance. Isso ocorre porque as tarefas que usam o modo de rede awsvpc estão associadas a uma interface de rede elástica, e não a uma instância do Amazon EC2.

  • Balanceadores de carga de gateway não são compatíveis com serviços com tarefas que não usam awsvpc, mas outro modo de rede.

  • A configuração de sub-rede do load balancer deve incluir todas as zonas de disponibilidade nas quais as instâncias de contêiner residem.

  • Após você criar um serviço, a configuração do balanceador de carga não poderá ser alterada no AWS Management Console. É possível usar o AWS Copilot, o AWS CloudFormation, a AWS CLI ou o SDK para modificar a configuração do balanceador de carga somente para o controlador de implantação rolling do ECS, e não o AWS CodeDeploy azul/verde ou externo. Quando você adiciona, atualiza ou remove uma configuração de balanceador de carga, o Amazon ECS inicia uma nova implantação com a configuração atualizada do Elastic Load Balancing. Isso faz com que as tarefas se registrem e cancelem o registro dos balanceadores de carga. Recomendamos verificar isso em um ambiente de teste antes de atualizar a configuração do Elastic Load Balancing. Para obter informações sobre como modificar a configuração, consulte UpdateService na Referência da API do Amazon Elastic Container Service.

  • Caso a tarefa de um serviço não passe nos critérios de verificação de integridade do balanceador de carga, a tarefa é interrompida e reiniciada. Esse processo continuará até que o serviço alcance o número de tarefas em execução desejadas.

  • Ao usar um Gateway Load Balancer configurado com endereços IP como destinos, as solicitações parecem se originar do endereço IP privado do Gateway Load Balancers. Isso significa que, ao permitir solicitações de entrada e verificações de integridade no grupo de segurança de destino, os serviços protegidos por um Gateway Load Balancer ficam efetivamente expostos.

  • Para tarefas do Fargate, você deve usar a versão da plataforma 1.4.0 (Linux) ou 1.0.0 (Windows).

  • Caso você esteja enfrentando problemas com os serviços habilitados pelo balanceador de carga, consulte Solução de problemas relacionados aos balanceadores de carga de serviço no Amazon ECS.

  • Ao usar o tipo de destino instance, as tarefas e o balanceador de carga devem estar na mesma VPC. Ao usar o tipo de destino ip, há suporte para conectividade entre VPCs.

  • Use um grupo de destino exclusivo para cada serviço.

    Usar o mesmo grupo de destino para vários serviços pode causar problemas durante a implantação do serviço.

Para obter informações sobre como criar um Gateway Load Balancer, consulte Introdução a Gateway Load Balancers em Gateway Load Balancers

Importante

Se a definição de tarefa do serviço usar o modo de rede awsvpc (exigido para o tipo de inicialização do Fargate), será preciso escolher ip como tipo de destino, e não instance. Isso ocorre porque as tarefas que usam o modo de rede awsvpc estão associadas a uma interface de rede elástica, e não a uma instância do Amazon EC2.

Você não pode registrar instâncias por ID de instância se eles tiverem os seguintes tipos de instância: C1, CC1, CC2, CG1, CG2, CR1, G1, G2, HI1, HS1, M1, M2, M3 e T1. É possível registrar instâncias desses tipos por endereço IP.