Grupos-alvo para seus Application Load Balancers - Elastic Load Balancing

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

Grupos-alvo para seus Application Load Balancers

Cada grupo de destino é usado para rotear solicitações para um ou mais destinos registrados. Ao criar cada regra do listener, especifique um grupo de destino e condições. Quando uma condição da regra é atendida, o tráfego é encaminhado para o grupo de destino correspondente. Você pode criar grupos de destino diferentes para tipos de solicitações diferentes. Por exemplo, você pode criar um grupo de destino para solicitações gerais e outros grupos de destino para solicitações para os microsserviços do aplicativo. Para obter mais informações, consulteComponentes do Application Load Balancer

Você define as configurações de verificação de integridade para seu load balancer por grupo de destino. Cada grupo de destino usa as configurações de verificação de integridade padrão, a menos que você as substitua ao criar o grupo de destino ou as modifique posteriormente. Após especificar um grupo de destino em uma regra para um listener, o load balancer monitora continuamente a integridade de todos os destinos registrados com o grupo de destino que estiverem em uma Zona de disponibilidade habilitada para o load balancer. O load balancer roteia solicitações para os destinos registrados que são íntegros.

Configuração de roteamento

Por padrão, um load balancer roteia solicitações para seus destinos usando o protocolo e o número da porta que você especificou ao criar o grupo de destino. Como alternativa, você pode substituir a porta usada para rotear o tráfego para um destino quando registrá-lo no grupo de destino.

Os grupos de destino são compatíveis com os seguintes protocolos e portas:

  • Protocolos: HTTP, HTTPS

  • Portos: 1-65535

Se um grupo-alvo estiver configurado com o protocolo HTTPS ou usar verificações de integridade HTTPS, as conexões TLS com os alvos usarão as configurações de segurança daELBSecurityPolicy-2016-08 política. O balanceador de carga estabelece conexões TLS com os destinos usando certificados que você instala nos destinos. O load balancer não valida esses certificados. Portanto, é possível usar certificados autoassinados ou certificados que tenham expirado. Como o balanceador de carga está em uma nuvem privada virtual (VPC), o tráfego entre o balanceador de carga e os destinos é autenticado no nível do pacote, portanto, não corre o risco de man-in-the-middle ataques ou falsificação, mesmo que os certificados nos alvos não sejam válidos.

Target type

Durante a criação de um grupo de destino, você especifica seu tipo de destino, que determina o tipo de destino especificado ao registrar destinos com esse grupo de destino. Depois de criar um grupo de destino, você não pode mudar o seu tipo de destino.

Os possíveis tipos de destino são os seguintes:

instance

Os destinos são especificados por ID de instância.

ip

Os destinos são endereços IP.

lambda

O destino é uma função Lambda.

Quando o tipo de destino é ip, você pode especificar os endereços IP de um dos seguintes blocos CIDR:

  • As sub-redes da VPC para o grupo de destino

  • 10.0.0.0.0.0.0.0/8 (RFC 1918)

  • 100.64.0.0/10 (RFC 6598)

  • 172.16.0.0/12 (RFC 1918)

  • 192.168.0.0/16 (RFC 1918)

Esses blocos CIDR compatíveis permitem que você registre o seguinte em um grupo-alvo: ClassicLink instâncias, instâncias em uma VPC vinculada à VPC do balanceador de carga (mesma região ou região diferente),AWS recursos que podem ser endereçados por endereço IP e porta (por exemplo, bancos de dados) e recursos locais vinculados aAWS uma conexão Site-to-Site VPN a site.AWS Direct Connect

Importante

Você não pode especificar publicamente endereços IP roteáveis.

Se você especificar destinos usando um ID de instância, o tráfego é roteado para instâncias usando o endereço IP privado especificado na interface de rede principal para a instância. Se você especificar destinos usando endereços IP, você pode rotear o tráfego para uma instância com qualquer endereço IP privado de uma ou mais interfaces de rede. Isso permite que vários aplicativos em uma instância usem a mesma porta. Cada interface de rede pode ter seu próprio security group.

Se o tipo de destino do seu grupo de destino for lambda, você poderá registrar uma única função Lambda. Quando o load balancer recebe uma solicitação para a função Lambda, ele invoca a função Lambda. Para obter mais informações, consulteO Lambda funciona como alvos

Tipo de endereço IP

Ao criar um novo grupo-alvo, você pode selecionar o tipo de endereço IP do seu grupo-alvo. Isso controla a versão IP usada para se comunicar com os alvos e verificar seu estado de saúde.

Os Application Load Balancers são compatíveis com grupos de destino IPv4 e IPv6. A seleção padrão é IPv4.

Considerações

  • Todos os endereços IP dentro de um grupo-alvo devem ter o mesmo tipo de endereço IP. Por exemplo, você não pode registrar um destino IPv4 com um grupo de destino IPv6.

  • Grupos de destino IPv6 só podem ser usados com balanceadores dedualstack carga.

  • Os grupos de destino IPv6 só oferecem suporte a destinos do tipo IP.

Versão do protocolo

Por padrão, os Application Load Balancers enviam solicitações aos destinos usando HTTP/1.1. Você pode usar a versão do protocolo para enviar solicitações aos destinos usando HTTP/2 ou gRPC.

A tabela a seguir resume o resultado das combinações do protocolo de solicitação e da versão do protocolo do grupo de destino.

Protocolo de solicitação Versão do protocolo Result
HTTP/1.1 HTTP/1.1 Bem-sucedida
HTTP/2 HTTP/1.1 Bem-sucedida
gRPC HTTP/1.1 Erro
HTTP/1.1 HTTP/2 Erro
HTTP/2 HTTP/2 Bem-sucedida
gRPC HTTP/2 Sucesso se as metas apoiarem o gRPC
HTTP/1.1 gRPC Erro
HTTP/2 gRPC Sucesso de uma solicitação POST
gRPC gRPC Bem-sucedida

Considerações sobre a versão do protocolo gRPC

  • O único protocolo de ouvinte compatível é o HTTPS.

  • O único tipo de ação compatível com as regras do ouvinte éforward.

  • Os únicos tipos de alvo suportados sãoinstanceip e.

  • O balanceador de carga analisa as solicitações gRPC e as encaminha para os grupos-alvo apropriados com base no pacote, no serviço e no método.

  • O balanceador de carga suporta streaming unário do lado do cliente, streaming do lado do servidor e streaming bidirecional.

  • Forneça um método de verificação de integridade personalizado com o formato/package.service/method.

  • Você deve especificar os códigos de status do gRPC a serem usados ao verificar uma resposta bem-sucedida de um destino.

  • Você não pode usar funções do Lambda como alvos.

Considerações sobre a versão do protocolo HTTP/2

  • O único protocolo de ouvinte compatível é o HTTPS.

  • O único tipo de ação compatível com as regras do ouvinte éforward.

  • Os únicos tipos de alvo suportados sãoinstanceip e.

  • O balanceador de carga oferece suporte ao streaming de clientes. O balanceador de carga não oferece suporte ao streaming para os destinos.

Destinos registrados

O seu load balancer serve como um ponto único de contato para clientes e distribui o tráfego de entrada nos destinos íntegros registrados. Você pode registrar cada destino com um ou mais grupos de destino.

Se a demanda da seu aplicativo aumentar, você pode registrar destinos adicionais com um ou mais grupos de destino, a fim de dar conta da demanda. O load balancer inicia as solicitações de roteamento para um destino recém-registrado assim que o processo de registro é concluído e o destino passa pelas verificações de integridade iniciais.

Se a demanda na seu aplicativo diminuir, ou se você precisar fazer manutenção nos seus destinos, você pode cancelar o registro dos destinos dos seus grupos de destino. Cancelar o registro de um destino o remove do seu grupo de destino, mas não afeta o destino de outra forma. O load balancer interrompe as solicitações de roteamento ao destino assim que o registro dele for cancelado. O destino entra no estado draining até que as solicitações em andamento tenham sido concluídas. Você pode registrar o destino com o grupo de destino novamente quando estiver pronto para retomar o recebimento de solicitações.

Se você estiver registrando alvos por ID de instância, poderá usar seu balanceador de carga com um grupo de Auto Scaling. Depois de anexar um grupo-alvo a um grupo de Auto Scaling, o Auto Scaling registra seus alvos com o grupo-alvo para você quando os inicia. Para obter mais informações, consulte Anexação de um balanceador de carga ao seu grupo do Auto Scaling no Guia do usuário do Amazon EC2 Auto Scaling.

Limites

  • Não é possível registrar os endereços IP de outro Application Load Balancer na mesma VPC. Se o outro Application Load Balancer estiver em uma VPC emparelhada com a VPC do balanceador de carga, você poderá registrar seus endereços IP.

Atributos do grupo de destino

Os seguintes atributos do grupo de destino são compatíveis se o tipo de grupo de destino for instance ou ip:

deregistration_delay.timeout_seconds

A quantidade de tempo que o Elastic Load Balancing deve aguardar antes de cancelar o registro de um destino. O intervalo é de 0 a 3600 segundos. O valor de padrão é de 300 segundos.

load_balancing.algorithm.type

O algoritmo de balanceamento de carga determina como o load balancer seleciona os destinos ao rotear as solicitações. O valor é round_robin ou least_outstanding_requests. O padrão é round_robin.

slow_start.duration_seconds

O período, em segundos, durante o qual o load balancer envia a um destino recém-registrado uma parcela de tráfego com aumento linear ao grupo de destino. O intervalo é de 30-900 segundos (15 minutos). O padrão é 0 segundos (desativado).

stickiness.enabled

Indica se sticky sessions estão habilitadas. O valor é true ou false. O padrão é false.

stickiness.app_cookie.cookie_name

O nome do cookie do. O nome do cookie do aplicativo não pode ter os seguintes prefixos:AWSALBAWSALBAPP, ouAWSALBTG; eles são reservados para uso pelo balanceador de carga.

stickiness.app_cookie.duration_seconds

O período de expiração do cookie baseado no aplicativo, em segundos. Após esse período, o cookie será considerado antigo. O valor mínimo é 1 segundo e o valor máximo é 7 dias (604.800 segundos). O valor padrão é de 1 dia (86.400 segundos).

stickiness.lb_cookie.duration_seconds

O período de expiração do cookie com base na duração, em segundos. Após esse período, o cookie será considerado antigo. O valor mínimo é 1 segundo e o valor máximo é 7 dias (604.800 segundos). O valor padrão é de 1 dia (86.400 segundos).

stickiness.type

O tipo de perdurabilidade. Os valores possíveis são lb_cookie e app_cookie.

O seguinte atributo do grupo de destino é compatível se o tipo de grupo de destino for lambda:

lambda.multi_value_headers.enabled

Indica se os cabeçalhos da solicitação e resposta trocados entre o load balancer e a função Lambda incluem matrizes de valores ou strings. Os valores possíveis são true ou false. O valor padrão é false. Para obter mais informações, consulteCabeçalhos de vários valores

Algoritmo de roteamento

Por padrão, o algoritmo de roteamento de ida e volta é usado para rotear solicitações no nível do grupo de destino. Em vez disso, você pode especificar o algoritmo de roteamento de solicitações menos pendentes.

Pense em usar solicitações menos pendentes quando as solicitações ao seu aplicativo variarem em complexidade ou seus destinos variarem em capacidade de processamento. O algoritmo de ida e volta é uma boa opção quando as solicitações e os destinos são semelhantes ou quando você precisa distribuir as solicitações igualmente entre os destinos. Você pode comparar o efeito do round robin com as solicitações menos pendentes usando as seguintes CloudWatch métricas: RequestCountTargetConnectionErrorCount, TargetResponseTimee.

Considerações

  • Não é possível habilitar as solicitações menos pendentes e o modo de início lento.

  • Se você habilitar sessões fixas, o algoritmo de roteamento do grupo-alvo será substituído após a seleção inicial do alvo.

  • Com HTTP/2, o load balancer converte a solicitação em várias solicitações HTTP/1.1; portanto, a solicitação menos pendente trata cada solicitação HTTP/2 como várias solicitações.

  • Quando você usa as solicitações menos pendentes com WebSockets, o alvo é selecionado usando as solicitações menos pendentes. O load balancer cria uma conexão com esse destino e envia todas as mensagens por essa conexão.

New console

Para modificar o algoritmo de roteamento usando o novo console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em LOAD BALANCING, selecione Grupos de destino.

  3. Escolha o nome do grupo de destino para abrir sua página de detalhes.

  4. Na guia Detalhes do grupo, na seção Atributos, escolha Editar.

  5. Na página Editar atributos, para Algoritmo de balanceamento de carga, escolha Round robin ou Solicitações menos pendentes.

  6. Escolha Save changes (Salvar alterações).

Old console

Para modificar o algoritmo de roteamento usando o console antigo

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em LOAD BALANCING, selecione Grupos de destino.

  3. Selecione o grupo de destino.

  4. Na guia Descrição, selecione Editar atributos.

  5. Na página Edit attributes (Editar atributos), em Load balancing algorithm (Algoritmo de balanceamento de carga), escolha Round robin (Ida e volta) ou Least outstanding requests (Solicitações menos pendentes) e, em seguida, Save (Salvar).

Para modificar o algoritmo de roteamento usando a AWS CLI

Use o modify-target-group-attributescomando com oload_balancing.algorithm.type atributo.

Atraso do cancelamento do registro

O Elastic Load Balancing interrompe o envio de solicitações para alvos que estão cancelando o registro. Por padrão, o Elastic Load Balancing aguarda 300 segundos antes de concluir o processo de cancelamento do registro, o que pode ajudar a solicitações em andamento a solicitações em andamento para o destino. Para alterar a quantidade de tempo que o Elastic Load Balancing espera, atualize o valor do atraso no cancelamento do registro. O

O estado inicial de um destino que terá o registro cancelado é draining. Depois de decorrido o retardo de cancelamento do registro, processo será concluído e o estado do destino será unused. Se o alvo fizer parte de um grupo de Auto Scaling, ele poderá ser encerrado e substituído.

Se um alvo de cancelamento de registro não tiver solicitações em andamento nem conexões ativas, o Elastic Load Balancing concluirá imediatamente o processo de cancelamento de registro, sem esperar que o atraso no cancelamento do registro termine. No entanto, mesmo que o cancelamento do registro da meta esteja concluído, o status do alvo é exibidodraining até que o tempo limite do atraso do cancelamento do registro expire. Depois que o tempo limite expira, o alvo passa para umunused estado.

Se cancelar o registro de um destino encerrar a conexão antes de o retardo de cancelamento do registro passar, o cliente receberá uma resposta de erro de nível 500.

New console

Para atualizar o valor do atraso no cancelamento do registro usando o novo console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em LOAD BALANCING, selecione Grupos de destino.

  3. Escolha o nome do grupo de destino para abrir sua página de detalhes.

  4. Na guia Detalhes do grupo, na seção Atributos, escolha Editar.

  5. Na página Editar atributos, altere o valor do atraso no cancelamento do registro conforme necessário.

  6. Escolha Save changes (Salvar alterações).

Old console

Para atualizar o valor do atraso no cancelamento do registro usando o console antigo

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em LOAD BALANCING, selecione Grupos de destino.

  3. Selecione o grupo de destino.

  4. Na guia Descrição, selecione Editar atributos.

  5. Na página Editar atributos, altere o valor do Atraso no cancelamento do registro conforme o necessário e, em seguida, selecione Salvar.

Para atualizar o valor de atraso de cancelamento do registro usando a AWS CLI

Use o modify-target-group-attributescomando com oderegistration_delay.timeout_seconds atributo.

Modo de iniciação lenta

Por padrão, um destino começa a receber toda sua parte de solicitações assim que for registrado com um grupo de destino e enviar uma verificação de integridade inicial. Usar o modo de iniciação lenta oferece tempo para que os destinos aqueçam antes que o load balancer envie toda a parte de solicitações.

Com a iniciação lenta habilitada para um grupo de destino, os destinos entrarão no modo de iniciação lenta quando forem considerados íntegros pelo grupo de destino. Um destino sai do modo de iniciação lenta quando a duração da iniciação lenta configurada expira ou o destino se torna não íntegro. O load balancer aumenta linearmente o número de solicitações enviadas a um destino no modo de iniciação lenta. Depois que um alvo saudável sair do modo de início lento, o balanceador de carga pode enviar a ele uma parcela completa das solicitações.

Considerações

  • Quando você habilita a iniciação lenta para um grupo de destino, os destinos íntegros que já estão 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 registrar 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 há pelo menos um destino íntegro 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 você registrar o mesmo destino novamente, ele entrará no modo de iniciação lenta quando for considerado íntegro pelo grupo de destino.

  • Se um destino no modo de iniciação lenta se tornar não íntegro, o destino sairá do modo de iniciação lenta. Quando o destino se tornar íntegro, ele entrará novamente no modo de iniciação lenta.

  • Não é possível habilitar o modo de início lento e as solicitações menos pendentes.

New console

Para atualizar o valor da duração do início lento usando o novo console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em LOAD BALANCING, selecione Grupos de destino.

  3. Escolha o nome do grupo de destino para abrir sua página de detalhes.

  4. Na guia Detalhes do grupo, na seção Atributos, escolha Editar.

  5. Na página Editar atributos, altere o valor de Duração de início lento conforme necessário. Para desativar o modo de iniciação lenta, defina a duração para 0.

  6. Escolha Save changes (Salvar alterações).

Old console

Para atualizar o valor da duração do início lento usando o console antigo

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em LOAD BALANCING, selecione Grupos de destino.

  3. Selecione o grupo de destino.

  4. Na guia Descrição, selecione Editar atributos.

  5. Na página Editar atributos, altere o valor da Duração da iniciação lenta conforme o necessário e, em seguida, selecione Salvar. Para desativar o modo de iniciação lenta, defina a duração para 0.

Para atualizar o valor de duração da iniciação lenta usando a AWS CLI

Use o modify-target-group-attributescomando com oslow_start.duration_seconds atributo.