Uso de um Network Load Balancer no Amazon ECS - Amazon Elastic Container Service

Uso de um Network Load Balancer no Amazon ECS

Um Network Load Balancer toma decisões de roteamento na camada de transporte (TCP/SSL). Ele pode processar milhões de solicitações por segundo. Após o load balancer receber uma conexão, ele seleciona um destino do grupo de destino para a regra padrão usando um algoritmo de roteamento de hash de fluxo. Ele tenta abrir uma conexão TCP para o destino selecionado na porta especificada na configuração do listener. Ele encaminha a solicitação sem modificar os cabeçalhos. Os network load balancers oferecem suporte ao mapeamento de porta de host dinâmico. 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 é inicializada, o contêiner NGINX é registrado no Network Load Balancer como uma combinação de ID e porta da instância, e o tráfego é distribuído para o ID e para a porta da instância correspondentes a este 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 o Guia do usuário de network 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 Network 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 ter mais informações, consulte Uso de perfis vinculados ao serviço para o Amazon ECS.

  • Não é possível anexar mais de cinco grupos de destino a um serviço.

  • 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.

  • 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 e a Preservação do IP do Cliente desativada, 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.

  • As tarefas e o balanceador de carga devem estar na mesma VPC.

  • A preservação do endereço IP do cliente do Network Load Balancer é compatível com os destinos do Fargate.

  • 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 Network Load Balancer, consulte Create a Network Load Balancer em Network 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.