Uso de um Application Load Balancer do Amazon ECS - Amazon Elastic Container Service

Uso de um Application Load Balancer do Amazon ECS

Um Application Load Balancer toma decisões de roteamento na camada da aplicação (HTTP/HTTPS), oferece suporte ao roteamento com base em caminho e pode encaminhar solicitações para uma ou mais portas em cada instância de contêiner no cluster. Os application 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 é iniciada, o contêiner NGINX é registrado no Application 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 o Guia do usuário para application 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 Application 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.

  • O grupo de destino deve ter o tipo de endereço IP definido como IPv4.

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

  • Se o serviço requerer acesso a diversas portas com balanceamento de carga, como a porta 80 e a porta 443 para um serviço HTTP/HTTPS, será possível configurar dois receptores. Um listener é responsável pelo HTTPS que encaminha a solicitação para o serviço e outro listener que é responsável por redirecionar solicitações HTTP para a porta HTTPS apropriada. Para obter mais informações, consulte Criar um listener no Application Load Balancer no Guia do usuário dos Application Load Balancers.

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

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

  • 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 Application Load Balancer, consulte Create an Application Load Balancer em Application Load Balancers