Balanceamento de carga - Amazon Elastic Container Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Balanceamento de carga

O serviço do Amazon ECS também pode ser configurado para usar o Elastic Load Balancing a fim de distribuir o tráfego entre as tarefas no serviço por igual.

Amazon ECSserviços hospedados emAmazon EC2As instâncias oferecem suporte aoBalanceador de carga de aplicações,Load balancer de rede, eClassic Load BalancerTipos de load balancer.Amazon ECSserviços hospedados emAWS FargateSuporte doBalanceador de carga de aplicaçõeseLoad balancer de redeSomente .Balanceador de carga de aplicaçõess são usados para rotear o tráfego HTTP/HTTPS (ou Camada 7).Load balancer de redes são usados para rotear o tráfego TCP ou UDP (ou Camada 4).Classic Load Balancers são usados para rotear o tráfego TCP. Para obter mais informações, consulte Tipos de load balancer.

Os Balanceador de carga de aplicaçõess oferecem vários recursos que os tornam atrativos para uso com serviços do Amazon ECS:

  • Cada serviço pode atender a tráfego de vários load balancers e expor várias portas de balanceamento de carga especificando vários grupos de destino.

  • Eles são suportados por tarefas hospedadas emFargateeEC2instâncias.

  • Os Balanceador de carga de aplicaçõess permitem que os contêineres usem mapeamento de porta host dinâmico (de maneira que várias tarefas do mesmo serviço sejam permitidas por instância de contêiner).

  • Os Balanceador de carga de aplicaçõess dão suporte a regras de roteamento com base em caminho e prioridade (de maneira que vários serviços possam usar a mesma porta de escuta em um único Balanceador de carga de aplicações).

Recomendamos que você use Balanceador de carga de aplicaçõess nos seus serviços do Amazon ECS, para que possa aproveitar esses novos recursos, a menos que seu serviço exija um recurso que esteja disponível apenas com Load balancer de redes ou Classic Load Balancers. Para obter mais informações sobre o Elastic Load Balancing e as diferenças entre os dois tipos de load balancer, consulte o Guia do usuário do Elastic Load Balancing.

Considerações sobre balanceamento de carga

Considere o seguinte ao usar o balanceamento de carga do serviço.

Balanceador de carga de aplicaçõeseLoad balancer de redeConsiderações sobre o

As seguintes considerações são específicas para serviços do Amazon ECS que usam Application Load Balancers ou Load balancer de redes:

  • Amazon ECSO requer o serviço vinculadoIAMque fornece as permissões necessárias para registrar e cancelar o registro de destinos com o load balancer quando as tarefas são criadas e interrompidas. Para obter mais informações, consulte Função vinculada ao serviço para Amazon ECS.

  • Para serviços que usam um Balanceador de carga de aplicações ou Load balancer de rede, não é possível associar mais de cinco grupos de destino a um serviço.

  • Para serviços com tarefas usando oawsvpcmodo de rede, wAssim que criar um grupo de destino para o serviço, é necessário escolheripcomo o tipo de destino, nãoinstance. 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 seu serviço utilizar umBalanceador de carga de aplicaçõese requer acesso a várias portas de carga balanceada, como a porta 80 e a porta 443 para um serviço HTTP/HTTPS, você pode configurar dois listeners. 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, consulteCrie um listener para oBalanceador de carga de aplicaçõesnoGuia do usuário para 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.

  • Depois que você cria um serviço, o Nome de região da Amazon (ARN) ou o nome do load balancer, o nome do contêiner e porta do contêiner especificados na definição do serviço não podem mais ser alterados. Você não pode adicionar, remover ou alterar a configuração do load balancer de um serviço já existente. Se você atualizar a definição de tarefa para o serviço, o contêiner e a porta de contêiner especificados quando o serviço foi criado deverão permanecer na definição da tarefa.

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

  • O modo de iniciação lenta do Balanceador de carga de aplicações tem suporte. Para obter mais informações, consulte Balanceador de carga de aplicaçõesConsiderações sobre o modo de iniciar.

  • Ao usar Load balancer de redes configurados com endereços IP como destinos, as solicitações serão vistas como provenientes do endereço IP privado dos Load balancer de redes. Isso significa que serviços por trás de umLoad balancer de redeestão efetivamente abertos ao mundo assim que você permitir solicitações de entrada e verificações de integridade no grupo de segurança do destino.

  • Usando umaLoad balancer de redePara rotear o tráfego UDP para oAmazon ECSTarefas do naFargateexigir que a tarefa use a versão da plataforma1.4.0.

  • Caso você esteja enfrentando problemas com os serviços habilitados pelo balanceador de carga, consulte Como solucionar problemas de load balancers de serviço.

Balanceador de carga de aplicaçõesConsiderações sobre o modo de iniciar

Balanceador de carga de aplicaçõess habilitados para o modo de iniciação lenta são compatíveis com os serviços do Amazon ECS. Para obter mais informações sobre o modo de inicialização lenta, consulteGrupos de destino para seus Application Load Balancers.

Para garantir que o programador de serviços ignore as verificações de integridade do contêiner não íntegras até que suas tarefas tenham sido preparadas e estejam prontas para receber tráfego, as seguintes configurações são necessárias:

  • É necessário configurar a verificação de integridade do contêiner para retornar um status UNHEALTHY até que o período de iniciação lenta termine.

  • É necessário configurar o valor do período de carência da verificação de integridade para seu serviço do Amazon ECS pela mesma duração do modo de iniciação lenta.

Considere o seguinte ao usar diferentes modos de rede de tarefas com modo de iniciação lenta do Balanceador de carga de aplicações:

  • Ao usar o modo de rede awsvpc, cada tarefa recebe sua própria interface de rede elástica (ENI) e endereço IP, que permite que o Balanceador de carga de aplicações registre cada tarefa como um destino no grupo de destino. Isso permite que cada destino recém-registrado tenha o modo de inicialização lento habilitado.

  • Ao usar o modo de rede host, a tarefa ignora as construções de rede do Docker e mapeia portas de contêiner diretamente para a interface de rede ou interfaces da instância do Amazon EC2. Registre a instância de contêiner como destino do Balanceador de carga de aplicações, em vez de o endereço IP da tarefa. Isso significa que é possível executar somente uma tarefa por instância se quiser que o modo de iniciação lenta funcione efetivamente. Se você atualizar uma tarefa ou serviço existente ou reiniciar a instância de contêiner, isso não registrará novamente a instância de contêiner como um destino do Balanceador de carga de aplicações, o que não causaria o início da duração da iniciação lenta.

  • Ao usar o modo de rede bridge, de maneira semelhante ao modo de rede host, registre a instância de contêiner como destino do Balanceador de carga de aplicações, em vez da tarefa do Amazon ECS, para que as mesmas considerações descritas acima sejam aplicáveis.

Além disso, as seguintes considerações são específicas para usar o modo de iniciação lenta do Balanceador de carga de aplicações e adicionar tarefas do Amazon ECS como destinos:

  • Ao habilitar a iniciação lenta para um grupo de destino, os destinos já registrados no grupo não entram no modo de iniciação lenta.

  • Ao habilitar a iniciação lenta para um grupo de destino vazio e, em seguida, registrar um ou mais destinos usando uma única operação de registro, esses destinos não entram no modo de iniciação rápida. Os destinos recém-registrados entram no modo de iniciação lenta somente quando houver pelo menos um destino registrado que não esteja no modo de iniciação lenta.

  • Se você cancelar o registro de um destino no modo de iniciação lenta, o destino sai do modo. Se registrar o mesmo destino novamente, ele entra no modo de iniciação lenta novamente.

  • Se um destino no modo de iniciação lenta se tornar não íntegro e íntegro novamente antes do fim do período de duração, o destino permanece no modo de iniciação lenta até que o período de duração termine e saia do modo de iniciação lenta. Se um destino que não está no modo de iniciação lenta muda de não íntegro para íntegro, ele não entra no modo de iniciação lenta.

Considerações sobre o Classic Load Balancer

As considerações a seguir são específicas para serviços do Amazon ECS que usam Classic Load Balancers:

  • Os serviços com tarefas que usam o modo de rede awsvpc, como aqueles com o tipo de inicialização Fargate, não são compatíveis com Classic Load Balancers.

  • Todos os contêineres ativados em uma única definição de tarefa são sempre colocados na mesma instância de contêiner. Para Classic Load Balancers, você pode optar por colocar vários contêineres (na mesma definição de tarefa) atrás do mesmo load balancer definindo várias portas host na definição de serviço e adicionando essas portas de escuta ao load balancer. Por exemplo, caso uma definição de tarefa consista em Elasticsearch usando a porta 3030 na instância de contêiner, com Logstash e Kibana usando a porta 4040 na instância de contêiner, o mesmo load balancer pode rotear o tráfego para Elasticsearch e Kibana por meio de duas escutas. Para obter mais informações, consulteListeners para seusClassic Load BalancernoGuia do usuário para Classic Load Balancers.

    Importante

    Não recomendamos a conexão de vários serviços ao mesmo Classic Load Balancer. Como instâncias de contêiner completas são registradas e canceladas com Classic Load Balancers, e não com combinações de host e porta, essa configuração pode causar problemas se uma tarefa de um serviço for interrompida. Nessa situação, uma tarefa de uma interrupção de serviço pode fazer com que o registro de toda a instância de contêiner seja cancelado do Classic Load Balancer enquanto outra tarefa de um serviço diferente na mesma instância de contêiner ainda está usando-a. Se você deseja conectar vários serviços a um único load balancer, recomendamos usar um Balanceador de carga de aplicações.