← AWS Advanced Networking: redes e produção
14 / 22 · 100 MIN

Appliances, balanceadores e sessões persistentes

Planeia failover, health checks e mudanças de protocolo sem confundir encaminhamento com recuperação aplicacional.

1. Separar fluxo, sessão e transação

Uma aplicação pode manter uma sessão lógica durante horas, enquanto os componentes de rede mantêm estado segundo tuplas e timeouts próprios. GWLB associa fluxos a appliances usando cinco elementos por predefinição. Os modos de dois ou três elementos não são compatíveis com appliance mode TGW. UDP também tem estado no balanceador, mas o timeout de 120 segundos não é configurável. Uma mensagem após silêncio prolongado pode ser tratada como novo fluxo. Para TCP, aumentar o idle timeout do GWLB exige verificar o tracking da ENI da appliance; um limite menor na ENI pode eliminar estado primeiro. Na revisão do desenho, pede exemplos reais de períodos de silêncio e não uses apenas uma sondagem contínua que nunca exercita a expiração.

2. Escolher recuperação com limites explícitos

Por predefinição, no_rebalance mantém fluxos existentes no target anterior quando este falha ou é retirado, enquanto novos fluxos usam targets saudáveis quando disponíveis. Rebalance muda o destino, mas não replica automaticamente o estado da appliance. Os atributos de failover para unhealthy e deregistration têm de ser iguais. Se a estratégia depende de reconexão explícita TCP, avalia as opções de reset com cinco elementos e no_rebalance; não as combines com rebalance nem prometas efeito equivalente em UDP. O tempo de deteção por health check é apenas parte do tempo de recuperação. Propagação, retransmissões, retries e reconciliação podem prolongar o impacto. Define aceitação para sessões antigas e novas e confirma o resultado de negócio após a falha induzida.

3. Validar caminho e tamanho dos pacotes

O suporte de assimetria GWLB tem limites: o balanceador precisa de observar o pacote inicial no caso documentado; um caminho que o contorna na ida e passa por ele só no retorno não é suportado. Mantém a inspeção requerida nos dois sentidos, com tabelas e endpoints identificados. Para MTU, o segmento até à appliance inclui 68 bytes de GENEVE além do pacote original. Um pacote de 8500 bytes exige pelo menos 8568 nesse segmento. GWLB não fragmenta IP nem fornece PMTUD através da mensagem ICMP de fragmentação necessária. Faz testes de tamanho realista e identifica o segmento que limita o fluxo. Se o projeto precisa de remover uma subnet de GWLB existente, inclui novo balanceador e migração no plano.

4. Fazer health checks significativos

Health checks são sondas, com configuração e caminho próprios. No GWLB são distribuídos e usam consenso; vários pedidos no intervalo não provam ataque. No NLB, uma sonda HTTP usa Host com IP do nó e porta do listener, podendo selecionar um virtual host diferente do pedido normal da aplicação. Se o endpoint só suporta TLS 1.3, verifica a limitação documentada dos health checks HTTPS antes de atribuir o erro à aplicação. O SG do NLB controla saída de health checks, enquanto o SG do target deve permitir serviço e sonda. Uma resposta 200 de uma página estática continua a ser evidência limitada. Combina saúde técnica com uma transação sintética representativa, mantendo explícito o custo e efeito dessa transação em produção.

5. Tratar metadata de origem como contrato

Proxy Protocol v2 acrescenta informação binária à ligação. Antes de o habilitar, confirma que o backend e o endpoint de saúde sabem interpretar o cabeçalho; também é enviado nas sondas, sem informação de uma ligação de cliente real. Um HTTP 400 após a mudança pode indicar parser incompatível. Alargar o matcher para aceitar esse erro não corrige o contrato. Com listener TCP, podem existir cabeçalhos anteriores, e um caminho alternativo até ao backend pode apresentar um cabeçalho que não veio do NLB. Delimita proxies de confiança. Se uma instância target chama o próprio NLB interno com IP preservado, considera a limitação de hairpin. Mudar preservação pode exigir Proxy Protocol para manter observabilidade, criando uma dependência que deve ser ensaiada.

6. Distinguir distribuição, isolamento e rollback

Um NLB criado sem SG não pode receber o primeiro SG mais tarde; antecipa esta dependência de migração. Quando existe SG no NLB, podes referenciá-lo nos SGs dos targets mesmo com client IP preservation. Para PrivateLink sujeito a regras inbound, a origem considerada é o IP privado do cliente, não o da interface endpoint. Health checks não são isolamento: quando todos os targets falham, NLB pode fazer fail open e GWLB ainda pode escolher uma appliance unhealthy. Define controlos explícitos para conter um serviço comprometido. Em ALB, pesos entre target groups não fornecem failover automático de um grupo vazio ou unhealthy para outro saudável. Uma release canary precisa de sinais de rollback e de uma alteração de encaminhamento que tenha sido realmente ensaiada.

# Local compatibility illustration, not an AWS API validator or packet capture.
def tcp_reset_compatible(stickiness_enabled, failover):
    return stickiness_enabled is False and failover == "no_rebalance"
def encapsulated_size(original_bytes):
    if not isinstance(original_bytes, int) or not 0 < original_bytes <= 8500:
        raise ValueError("exercise expects an original packet between 1 and 8500 bytes")
    return original_bytes + 68
assert tcp_reset_compatible(False, "no_rebalance")
assert not tcp_reset_compatible(True, "no_rebalance")
assert not tcp_reset_compatible(False, "rebalance")
assert encapsulated_size(1500) == 1568
assert encapsulated_size(8500) == 8568
print("five compatibility and size cases passed; no AWS changes made")
NA PRÁTICA

GWLB conserva estado durante 900 segundos, mas a ENI durante 350. Uma sessão silenciosa durante 500 segundos pode falhar apesar do timeout maior no balanceador.

Armadilhas comuns

Rebalance como replicação de estado; health checks como isolamento; matcher alargado como correção; pesos ALB como failover automático.

Tópicos relacionados: Failover e sessões de middleware · Health checks e observabilidade

Leva esta ideia contigo

Uma mudança só está aceite quando encaminhamento, protocolo, sessão e transação recuperam dentro dos critérios acordados.

Criar conta

Referência: Gateway Load Balancers · ANS-C01

AWS é uma marca comercial da Amazon.com, Inc. ou das suas afiliadas. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por AWS. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.