Risoluzione dei problemi relativi al Network Load Balancer - Sistema di bilanciamento del carico elastico

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi al Network Load Balancer

Le informazioni seguenti possono essere utili per risolvere i problemi relativi al Network Load Balancer.

Un target registrato non è in servizio

Se un oggetto richiede più tempo del previsto per inserire lo InService stato, è possibile che i controlli dello stato non siano stati superati. Il target non è in servizio finché non passa un controllo dello stato. Per ulteriori informazioni, consulta Controlli dello stato per i gruppi target.

Verificare che l'istanza non superi i controlli dello stato e quindi verificare le seguenti:

Un gruppo di sicurezza non consente il traffico

I gruppi di sicurezza associati a un'istanza devono consentire il traffico dal sistema di bilanciamento del carico utilizzando la porta di controllo dello stato e il protocollo di controllo dello stato. Per ulteriori informazioni, consulta Gruppi di sicurezza target.

Una lista di controllo accessi di rete (ACL) non consente il traffico

L'ACL di rete associata alle sottoreti delle istanze e alle sottoreti del sistema di bilanciamento del carico deve consentire il traffico e i controlli dell'integrità da parte del sistema di bilanciamento del carico. Per ulteriori informazioni, consulta Liste di controllo accessi (ACL) di rete.

Le richieste vengono instradate ai target.

Verifica quanto segue:

Un gruppo di sicurezza non consente il traffico

I gruppi di sicurezza associati con le istanze devono consentire il traffico sulla porta listener da indirizzi IP client (se i target sono specificati dall'ID istanza) o sui nodi di bilanciamento del carico (se i target sono specificati dall'indirizzo IP). Per ulteriori informazioni, consulta Gruppi di sicurezza target.

Una lista di controllo accessi di rete (ACL) non consente il traffico

Le liste di controllo degli accessi di rete associati con le sottoreti per il VPC devono consentire la comunicazione da parte del sistema di bilanciamento del carico e del target in entrambe le direzioni sulla porta listener. Per ulteriori informazioni, consulta Liste di controllo accessi (ACL) di rete.

l target si trovano in una zona di disponibilità non abilitata

Se si registrano target in una zona di disponibilità, ma non si abilita la zona di disponibilità, questi target registrati non sono in grado di ricevere traffico dal sistema di bilanciamento del carico.

L'istanza si trova in un VPC collegato in peering

Se in un VPC sono presenti istanze collegate in peering al VPC del sistema di bilanciamento del carico, è necessario registrarle con il sistema di bilanciamento del carico in base all'indirizzo IP e non all'ID istanza.

I target ricevono più richieste di controllo dello stato del previsto

I controlli dell'integrità per un Network Load Balancer vengono distribuiti e utilizzano un meccanismo di consenso per determinare lo stato di integrità della destinazione. Pertanto, i target ricevono più del numero di controlli dello stato configurato attraverso l’impostazione HealthCheckIntervalSeconds.

I target ricevono meno richieste di controllo dello stato del previsto

Controlla se net.ipv4.tcp_tw_recycle è abilitato. Questa impostazione è nota per causare problemi con i sistemi di bilanciamento del carico. L'impostazione net.ipv4.tcp_tw_reuse è considerata un'alternativa più sicura.

I target danneggiati ricevono richieste dal sistema di bilanciamento del carico

Ciò si verifica quando tutte le destinazioni registrate non sono integre. Se è presente almeno una destinazione registrata integra, il Network Load Balancer instrada le richieste solo verso tale destinazione.

Quando tutte le destinazioni sono non integre, il Network Load Balancer instrada le richieste verso tutte le destinazioni registrate, con una modalità denominata fail-open. Il Network Load Balancer esegue questa operazione invece di rimuovere tutti gli indirizzi IP dal DNS quando tutte le destinazioni non sono integre e le rispettive zone di disponibilità non dispongono di destinazioni integre a cui inviare le richieste.

Il target non riesce a controllare l'integrità HTTP o HTTPS a causa della mancata corrispondenza dell'intestazione dell’host

L'intestazione dell’host HTTP nella richiesta di controllo dello stato contiene l'indirizzo IP del nodo del sistema di bilanciamento del carico e la porta del listener anziché l'indirizzo IP della destinazione e la porta di controllo dello stato. Se si esegue il mapping delle richieste in ingresso per l’intestazione dell’host, è necessario assicurarsi che i controlli di integrità corrispondano a qualsiasi intestazione dell’host HTTP. Un'altra opzione consiste nell'aggiungere un servizio HTTP separato su una porta diversa e configurare il gruppo di destinazione in modo che utilizzi tale porta per i controlli di integrità. In alternativa, prendere in considerazione l'utilizzo dei controlli di integrità TCP.

Impossibile associare un gruppo di sicurezza a un sistema di bilanciamento del carico

Se il Network Load Balancer è stato creato senza gruppi di sicurezza, non è in grado di supportarli dopo la creazione. Puoi associare un gruppo di sicurezza a un sistema di bilanciamento del carico soltanto durante la creazione. In alternativa, puoi associarlo a un sistema di bilanciamento del carico esistente che è stato originariamente creato con gruppi di sicurezza.

Impossibile rimuovere tutti i gruppi di sicurezza

Se il Network Load Balancer è stato creato con gruppi di sicurezza, deve essere sempre associato almeno un gruppo di sicurezza. Non è possibile rimuovere tutti i gruppi di sicurezza dal sistema di bilanciamento del carico contemporaneamente.

Aumento del parametro TCP_ELB_Reset_Count

Per ogni richiesta TCP eseguita da un client tramite un Network Load Balancer, viene monitorato lo stato della connessione. Se non vengono inviati dati tramite la connessione dal client o dalla destinazione per un periodo superiore al tempo di inattività, la connessione viene chiusa. Se un client o un target invia i dati dopo la scadenza del tempo di inattività, riceve un pacchetto RST TCP che indica che la connessione non è più valida. Inoltre, se una destinazione diventa non integra, il sistema di bilanciamento del carico invia un RST TCP per i pacchetti ricevuti sulle connessioni client associate alla destinazione, a meno che la destinazione non integra non provochi il fail-open da parte del sistema di bilanciamento del carico.

Se noti un picco nel parametro TCP_ELB_Reset_Count poco prima o subito dopo l'incremento del parametro UnhealthyHostCount, è probabile che i pacchetti RST TCP siano stati inviati perché la destinazione presentava degli errori ma non era stata contrassegnata come non integra. Se noti aumenti persistenti nel parametro TCP_ELB_Reset_Count ma le destinazioni vengano contrassegnate ancora come integre, puoi controllare i log di flusso VPC per i client che inviano dati sui flussi scaduti.

Connessioni scadute per le richieste provenienti da un target al sistema di bilanciamento del carico

Verifica se la conservazione dell'IP client è abilitata sul gruppo di destinazione. Il loopback NAT, noto anche come hairpinning, non è supportato quando è abilitata la conservazione dell'IP client. Se un'istanza è un client di un sistema di bilanciamento del carico con cui è registrata e ha la conservazione dell'IP client abilitata, la connessione va a buon fine solo se la richiesta viene instradata a un'istanza diversa. Se la richiesta viene indirizzata alla stessa istanza da cui è stata inviata, la connessione scade perché gli indirizzi IP di origine e di destinazione sono gli stessi.

Se un'istanza deve inviare le richieste a un sistema di bilanciamento del carico registrato, procedere in uno dei seguenti modi:

  • Disabilitare la conservazione dell'IP client.

  • Verificare che i container che devono comunicare siano su diverse istanze di container.

Diminuzione delle prestazioni durante lo spostamento delle destinazioni verso un Network Load Balancer

Sia i Classic Load Balancer che gli Application Load Balancer utilizzano il multiplexing delle connessioni, al contrario dei Network Load Balancer. Pertanto, le destinazioni possono ricevere più connessioni TCP dietro un Network Load Balancer. Assicurati che i target siano preparati a gestire il volume di richieste di connessione che potrebbero ricevere.

Se il Network Load Balancer è associato a un servizio endpoint VPC, il sistema supporta 55.000 connessioni simultanee o circa 55.000 connessioni al minuto per ogni destinazione univoca (indirizzo IP e porta). Se si superano queste connessioni, aumenta il rischio di errori di allocazione delle porte. Gli errori di allocazione delle porte possono essere tracciati utilizzando il parametro PortAllocationErrorCount. Per risolvere gli errori di allocazione delle porte, aggiungi altre destinazioni al gruppo di destinazione. Per ulteriori informazioni, consulta CloudWatch metriche per il tuo Network Load Balancer.

Errore di connessione intermittente quando è abilitata la conservazione dell'IP client

Quando la conservazione dell'IP client è abilitata, potrebbero verificarsi limitazioni delle connessioni TCP/IP legate al riutilizzo dei socket osservati sulle destinazioni. Queste limitazioni di connessione possono verificarsi quando un client, o un dispositivo NAT davanti al client, utilizza lo stesso indirizzo IP di origine e la stessa porta di origine quando si connette a più nodi del sistema di bilanciamento del carico contemporaneamente. Se il sistema di bilanciamento del carico indirizza queste connessioni alla stessa destinazione, le connessioni vengono visualizzate come se provenissero dallo stesso socket di origine, con conseguenti errori di connessione. In tal caso, i client possono tentare nuovamente l'operazione (se la connessione ha esito negativo) o riconnettersi (se la connessione viene interrotta). È possibile ridurre questo tipo di errore di connessione aumentando il numero di porte temporanee di origine o aumentando il numero di destinazioni per il sistema di bilanciamento del carico. È possibile prevenire questo tipo di errore di connessione disabilitando la conservazione dell'IP client o disabilitando il sistema di bilanciamento del carico tra zone.

Inoltre, quando la conservazione dell'IP client è abilitata, la connettività potrebbe fallire se i client che si connettono al Network Load Balancer sono collegati anche a destinazioni dietro il sistema di bilanciamento del carico. Per risolvere questo problema, è possibile disabilitare la conservazione dell'IP client sui gruppi di destinazione interessati. In alternativa, i client possono connettersi solo al Network Load Balancer o solo alle destinazioni, ma non a entrambi.

Ritardi nella connessione TCP

Quando sono abilitati sia il bilanciamento del carico tra zone che la conservazione dell'IP client, un client che si connette a IP diversi sullo stesso sistema di bilanciamento del carico può essere indirizzato alla stessa destinazione. Se il client utilizza la stessa porta di origine per entrambe le connessioni, la destinazione riceverà quella che sembra essere una connessione duplicata, il che può causare errori di connessione e ritardi TCP nello stabilire nuove connessioni. È possibile prevenire questo tipo di errore di connessione disabilitando il sistema di bilanciamento del carico tra zone. Per ulteriori informazioni, consulta Bilanciamento del carico su più zone.

Potenziale errore durante il provisioning del sistema di bilanciamento del carico

L'utilizzo di un indirizzo IP già assegnato o allocato altrove (ad esempio, assegnato come indirizzo IP secondario per un'istanza EC2) potrebbe comportare la presenza di errori in un Network Load Balancer in fase di provisioning. Questo indirizzo IP impedisce la configurazione del sistema di bilanciamento del carico, con conseguente visualizzazione dello stato failed. Per risolvere questo problema, è possibile rimuovere l'allocazione dell'indirizzo IP associato e tentare nuovamente il processo di creazione.

La risoluzione dei nomi DNS contiene meno indirizzi IP rispetto alle zone di disponibilità abilitate

Idealmente, il Network Load Balancer fornisce un indirizzo IP per ogni zona di disponibilità abilitata quando è presente almeno un host integro. Quando non sono presenti host integri in una determinata zona di disponibilità e il bilanciamento del carico tra zone è disabilitato, l'indirizzo IP del Network Load Balancer corrispondente a quella zona di disponibilità verrà rimosso dal DNS.

Ad esempio, supponiamo che il Network Load Balancer abbia tre zone di disponibilità abilitate, tutte con almeno un'istanza di destinazione registrata integra.

  • Se le istanze di destinazione registrate nella zona di disponibilità A non sono integre, l'indirizzo IP corrispondente a tale zona per il Network Load Balancer viene rimosso dal DNS.

  • Se in due zone di disponibilità qualsiasi abilitate non sono presenti istanze di destinazione registrate integre, i rispettivi due indirizzi IP del Network Load Balancer verranno rimossi dal DNS.

  • Se non sono presenti istanze di destinazione registrate integre in tutte le zone di disponibilità abilitate, verrà attivata la modalità fail-open e il DNS fornirà tutti gli indirizzi IP delle tre zone di disponibilità abilitate nel risultato.

Risolvi i problemi relativi agli obiettivi non integri utilizzando la mappa delle risorse

Se i tuoi obiettivi Network Load Balancer non superano i controlli di integrità, puoi utilizzare la mappa delle risorse per trovare obiettivi non integri e intraprendere azioni in base al codice del motivo dell'errore. Per ulteriori informazioni, consulta Mappa delle risorse di Network Load Balancer.

La mappa delle risorse offre due visualizzazioni: Overview e Unhealthy Target Map. La panoramica è selezionata per impostazione predefinita e mostra tutte le risorse del sistema di bilanciamento del carico. Selezionando la visualizzazione Unhealthy Target Map verranno visualizzati solo gli obiettivi non integri in ogni gruppo target associato al Network Load Balancer.

Nota

L'opzione Mostra i dettagli delle risorse deve essere abilitata per visualizzare il riepilogo dei controlli di integrità e i messaggi di errore per tutte le risorse applicabili all'interno della mappa delle risorse. Se non è abilitato, è necessario selezionare ogni risorsa per visualizzarne i dettagli.

La colonna Gruppi target mostra un riepilogo degli obiettivi sani e non sani per ogni gruppo target. Questo può aiutare a determinare se tutti gli obiettivi non superano i controlli sanitari o se solo obiettivi specifici lo sono. Se tutti gli obiettivi di un gruppo target non superano i controlli sanitari, controlla le impostazioni del controllo dello stato del gruppo target. Seleziona il nome di un gruppo target per aprirne la pagina dei dettagli in una nuova scheda.

La colonna Target mostra il targetID e lo stato attuale del controllo dello stato di salute per ciascun bersaglio. Quando un bersaglio non è integro, viene visualizzato il codice del motivo dell'errore del controllo dello stato di salute. Quando un singolo bersaglio non supera un controllo di integrità, verifica che l'obiettivo disponga di risorse sufficienti. Seleziona l'ID di un oggetto per aprirne la pagina di dettaglio in una nuova scheda.

Selezionando Esporta hai la possibilità di esportare la visualizzazione corrente della mappa delle risorse di Network Load Balancer in formato PDF.

Verifica che l'istanza non superi i controlli di integrità e quindi, in base al codice del motivo dell'errore, verifica i seguenti problemi:

  • Invalido: la richiesta è scaduta

    • Verifica i gruppi di sicurezza e le liste di controllo degli accessi alla rete (ACL) associati ai tuoi obiettivi e Network Load Balancer non bloccano la connettività.

    • Verificare che la destinazione disponga di una capacità sufficiente per accettare connessioni dal Network Load Balancer.

    • Le risposte al controllo dello stato di Network Load Balancer possono essere visualizzate nei log delle applicazioni di ogni destinazione. Per ulteriori informazioni, consulta Codici motivo Health check.

  • Malsano: FailedHealthChecks

    • Verifica che il bersaglio stia ascoltando il traffico sulla porta di controllo dello stato di salute.

      Quando si utilizza un listener TLS

      Sei tu a scegliere quale politica di sicurezza utilizzare per le connessioni front-end. La politica di sicurezza utilizzata per le connessioni back-end viene selezionata automaticamente in base alla politica di sicurezza front-end in uso.

      • Se il listener TLS utilizza una politica di sicurezza TLS 1.3 per le connessioni front-end, la politica di sicurezza viene utilizzata per le connessioni back-end. ELBSecurityPolicy-TLS13-1-0-2021-06

      • Se il listener TLS non utilizza una politica di sicurezza TLS 1.3 per le connessioni front-end, la politica di sicurezza viene utilizzata per le connessioni back-end. ELBSecurityPolicy-2016-08

      Per ulteriori informazioni, consulta Politiche di sicurezza.

    • Verifica che il destinatario fornisca un certificato e una chiave del server nel formato corretto specificato dalla politica di sicurezza.

    • Verifica che il target supporti uno o più codici corrispondenti e un protocollo fornito da Network Load Balancer per stabilire handshake TLS.