Editar atributos para o Application Load Balancer - 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á.

Editar atributos para o Application Load Balancer

Depois de criar um Application Load Balancer, você pode editar seus atributos.

Tempo limite de inatividade da conexão

O tempo limite de inatividade da conexão é o período em que uma conexão existente de cliente ou destino pode permanecer inativa, sem que nenhum dado seja enviado ou recebido, antes que o balanceador de carga feche a conexão.

Para garantir que operações demoradas, como uploads de arquivo, tenham tempo para serem concluídas; envie pelo menos 1 byte de dados antes de decorrer cada período de tempo limite de inatividade e aumente a duração do período do tempo limite de inatividade conforme o necessário. Recomendamos também que você configure o tempo limite de inatividade do seu aplicativo como um valor maior do que o tempo limite de inatividade configurado para o load balancer. Caso contrário, se o aplicativo fechar a TCP conexão com o balanceador de carga incorretamente, o balanceador de carga poderá enviar uma solicitação ao aplicativo antes de receber o pacote indicando que a conexão foi fechada. Se for esse o caso, o balanceador de carga enviará um erro HTTP 502 Bad Gateway ao cliente.

Por padrão, o Elastic Load Balancing define como 60 segundos ou 1 minuto o valor do tempo limite de inatividade para o balanceador de carga. Use o procedimento a seguir para definir um valor de tempo limite ocioso diferente.

Para atualizar o valor do tempo limite de inatividade da conexão usando o console
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Balanceador de carga.

  3. Selecione o load balancer.

  4. Na guia Atributos, escolha Editar.

  5. Em Configuração de tráfego, insira um valor para Tempo limite de inatividade da conexão. O intervalo válido é de 1 a 4.000 segundos.

  6. Escolha Salvar alterações.

Para atualizar o valor do tempo limite de inatividade usando o AWS CLI

Use o modify-load-balancer-attributescomando com o idle_timeout.timeout_seconds atributo.

HTTPduração do keepalive do cliente

A duração do keepalive do HTTP cliente é o tempo máximo em que um Application Load Balancer mantém uma conexão HTTP persistente com um cliente. Depois de decorrida a duração HTTP do keepalive do cliente configurado, o Application Load Balancer aceita mais uma solicitação e, em seguida, retorna uma resposta que fecha a conexão normalmente.

O tipo de resposta enviada pelo balanceador de carga depende da HTTP versão usada pela conexão do cliente.

  • Para clientes conectados usando HTTP 1.x, o balanceador de carga envia um HTTP cabeçalho contendo o campo. Connection: close

  • Para clientes conectados usando HTTP /2, o balanceador de carga envia um GOAWAY quadro.

Por padrão, o Application Load Balancer define o valor da duração do keepalive do HTTP cliente para balanceadores de carga como 3.600 segundos ou 1 hora. A duração do keepalive do HTTP cliente não pode ser desativada ou definida abaixo do mínimo de 60 segundos, mas você pode aumentar a duração do keepalive do HTTP cliente até um máximo de 604800 segundos ou 7 dias. Um Application Load Balancer inicia o período de duração HTTP do keepalive do cliente quando uma HTTP conexão com um cliente é estabelecida inicialmente. O período de duração continua quando não há tráfego e não é reiniciado até que uma nova conexão seja estabelecida.

Quando o tráfego do balanceador de carga é deslocado de uma zona de disponibilidade prejudicada usando mudança de zona ou mudança automática de zona, os clientes com conexões abertas existentes podem continuar fazendo solicitações no local danificado até que os clientes se reconectem. Para oferecer suporte a uma recuperação mais rápida, considere definir um valor menor de duração da manutenção de atividade para limitar a quantidade de tempo que os clientes permanecem conectados a um balanceador de carga. Para obter mais informações, consulte Limitar o tempo que os clientes permanecem conectados aos seus endpoints no Guia do desenvolvedor do Amazon Application Recovery Controller (ARC).

nota

Quando o balanceador de carga muda o tipo de endereço IP do Application Load Balancer para dualstack-without-public-ipv4, o balanceador de carga espera que todas as conexões ativas sejam concluídas. Para diminuir o tempo necessário para trocar o tipo de endereço IP do seu Application Load Balancer, considere reduzir a duração do keepalive HTTP do cliente.

O Application Load Balancer atribui ao HTTP cliente o valor de duração do keepalive durante a conexão inicial. Quando você atualiza a duração do keepalive do HTTP cliente, isso pode resultar em conexões simultâneas com diferentes valores de duração HTTP do keepalive do cliente. As conexões existentes mantêm o valor de duração HTTP do keepalive do cliente aplicado durante sua conexão inicial. Novas conexões recebem o valor atualizado da duração HTTP do keepalive do cliente.

Para atualizar o valor de duração da manutenção de atividade do cliente usando o console
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Balanceador de carga.

  3. Selecione o load balancer.

  4. Na guia Atributos, escolha Editar.

  5. Em Configuração de tráfego, insira um valor para a duração HTTPdo keepalive do cliente. O intervalo válido é de 60 a 604.800 segundos.

  6. Escolha Salvar alterações.

Para atualizar o valor da duração do keepalive do cliente usando o AWS CLI

Use o modify-load-balancer-attributescomando com o client_keep_alive.seconds atributo.

Proteção contra exclusão

Para evitar que seu load balancer seja excluído acidentalmente, é possível ativar a proteção contra exclusão. Por padrão, a proteção contra exclusão está desativada para seu load balancer.

Se você ativar a proteção contra exclusão para o load balancer, deverá desativá-la antes de excluir o load balancer.

Para habilitar a proteção contra exclusão usando o console
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Balanceador de carga.

  3. Selecione o load balancer.

  4. Na guia Atributos, escolha Editar.

  5. Em Configuração, ative a Proteção contra exclusão..

  6. Escolha Salvar alterações.

Para desabilitar a proteção contra exclusão usando o console
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Balanceador de carga.

  3. Selecione o load balancer.

  4. Na guia Atributos, escolha Editar.

  5. Na página Configuração, ative a Proteção contra exclusão.

  6. Escolha Salvar alterações.

Para ativar ou desativar a proteção contra exclusão usando o AWS CLI

Use o modify-load-balancer-attributescomando com o deletion_protection.enabled atributo.

Modo de mitigação de dessincronização

O modo de mitigação de dessincronização protege seu aplicativo contra problemas causados pela dessincronização. HTTP O balanceador de carga classifica cada solicitação com base em seu nível de ameaça, permite solicitações seguras e, em seguida, reduz o risco, conforme instruído pelo modo de mitigação especificado. Os modos de mitigação de dessincronização são: monitor (monitorado), defensive (defensivo) e strictest (mais rigoroso). O padrão é o modo defensivo, que fornece mitigação duradoura contra a HTTP dessincronização, mantendo a disponibilidade do seu aplicativo. Você pode alternar para o modo mais restrito para garantir que seu aplicativo receba somente solicitações que estejam em conformidade com o RFC7230.

A biblioteca http_desync_guardian analisa HTTP as solicitações para evitar ataques de dessincronização. HTTP Para obter mais informações, consulte HTTPDesync Guardian em. GitHub

Classificações

As classificações são as seguintes:

  • Compatível — A solicitação está em conformidade com o RFC 7230 e não apresenta ameaças de segurança conhecidas.

  • Aceitável — A solicitação não está em conformidade com o RFC 7230, mas não representa ameaças de segurança conhecidas.

  • Ambígua — A solicitação não está em conformidade com o RFC 7230, mas representa um risco, pois vários servidores e proxies da Web podem lidar com ela de forma diferente.

  • Grave: a solicitação representa um alto risco de segurança. O balanceador de carga bloqueia a solicitação, atende uma resposta 400 ao cliente e fecha a conexão do cliente.

Se uma solicitação não estiver em conformidade com RFC 7230, o balanceador de carga incrementa a métrica. DesyncMitigationMode_NonCompliant_Request_Count Para obter mais informações, consulte Métricas do Application Load Balancer.

A classificação de cada solicitação está incluída nos logs de acesso do balanceador de carga. Se a solicitação não estiver em conformidade, os logs de acesso incluirão um código de motivo de classificação. Para obter mais informações, consulte Motivos de classificação.

Modos

A tabela a seguir descreve como os Application Load Balancers processam solicitações com base no modo e na classificação.

Classificação Modo monitorado Modo defensivo Modo mais restrito
Compatível Permitido Permitido Permitido
Aceitável Permitido Permitido Bloqueado
Ambíguo Permitido Permitido¹ Bloqueado
Grave Permitido Bloqueado Bloqueado

¹ Encaminha as solicitações, mas fecha as conexões entre cliente e destino. Você poderá incorrer em cobranças adicionais se seu balanceador de carga receber um grande número de solicitações ambíguas no modo Defensivo. Isso ocorre porque o aumento do número de novas conexões por segundo contribui para as unidades de capacidade do Load Balancer (LCU) usadas por hora. Você pode usar a métrica NewConnectionCount para comparar como seu balanceador de carga estabelece novas conexões no modo Monitorar e no modo Defensivo.

Para atualizar o modo de mitigação de dessincronização usando o console
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Balanceador de carga.

  3. Selecione o load balancer.

  4. Na guia Atributos, escolha Editar.

  5. Em Tratamento de pacotes, para o Modo de mitigação de dessincronização, escolha Defensivo, Mais rigoroso ou Monitorar.

  6. Escolha Salvar alterações.

Para atualizar o modo de mitigação de dessincronização usando o AWS CLI

Use o modify-load-balancer-attributescomando com o routing.http.desync_mitigation_mode atributo definido como monitordefensive, oustrictest.

Preservação de cabeçalho do host

Quando você ativa o atributo Preserve host header, o Application Load Balancer preserva o Host cabeçalho na HTTP solicitação e envia o cabeçalho aos destinos sem nenhuma modificação. Se o Application Load Balancer receber vários cabeçalhos Host, ele preservará todos eles. As regras do receptor são aplicadas somente ao primeiro cabeçalho Host recebido.

Por padrão, quando o atributo Preservar cabeçalho do host não estiver habilitado, o Application Load Balancer modificará o cabeçalho Host da seguinte maneira:

Quando a preservação de cabeçalho do host não estiver habilitada e a porta do receptor for uma porta não padrão: quando não estiver usando as portas padrão (portas 80 ou 443), anexaremos o número da porta ao cabeçalho do host, caso ele ainda não tenha sido anexado pelo cliente. Por exemplo, o Host cabeçalho na HTTP solicitação com Host: www.example.com seria modificado paraHost: www.example.com:8080, se a porta do ouvinte fosse uma porta não padrão, como. 8080

Quando a preservação de cabeçalho do host não estiver habilitada e a porta do receptor for uma porta padrão (porta 80 ou 443): para portas padrão do receptor (porta 80 ou 443), não anexamos o número da porta ao cabeçalho do host de saída. Qualquer número de porta que já esteja no cabeçalho do host de entrada será removido.

A tabela a seguir mostra mais exemplos de como os Application Load Balancers tratam os cabeçalhos do host na HTTP solicitação com base na porta do ouvinte.

Porta do receptor Exemplo de solicitação Cabeçalho do host na solicitação Preservação de cabeçalho do host desabilitada (comportamento padrão) Preservação de cabeçalho do host habilitada
A solicitação é enviada no HTTP HTTPS ouvinte padrão. GET /index.html HTTP/1.1 Host: example.com example.com example.com example.com
A solicitação é enviada no HTTP ouvinte padrão e o cabeçalho do host tem uma porta (por exemplo, 80 ou 443). GET /index.html HTTP/1.1 Host: example.com:80 example.com:80 example.com example.com:80
A solicitação tem um caminho absoluto. GET https://dns_name/index.html HTTP/1.1 Host: example.com example.com dns_name example.com
A solicitação é enviada em uma porta de receptor não padrão (por exemplo, 8080) GET /index.html HTTP/1.1 Host: example.com example.com example.com:8080 example.com
A solicitação é enviada em uma porta de receptor não padrão e o cabeçalho do host tem uma porta (por exemplo, 8080). GET /index.html HTTP/1.1 Host: example.com:8080 example.com:8080 example.com:8080 example.com:8080
Para habilitar a preservação de cabeçalho do host usando o console
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Load Balancers.

  3. Selecione o load balancer.

  4. Na guia Atributos, escolha Editar.

  5. Em Tratamento de pacotes, ative Preservar cabeçalho do host.

  6. Escolha Salvar alterações.

Para habilitar a preservação do cabeçalho do host usando o AWS CLI

Use o modify-load-balancer-attributescomando com o routing.http.preserve_host_header.enabled atributo definido comotrue.