Modifica gli attributi per il tuo Application 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à.

Modifica gli attributi per il tuo Application Load Balancer

Dopo aver creato un Application Load Balancer, è possibile modificarne gli attributi.

Timeout di inattività della connessione

Il timeout di inattività della connessione è il periodo di tempo in cui una connessione client o di destinazione esistente può rimanere inattiva, senza inviare o ricevere dati, prima che il load balancer chiuda la connessione.

Per garantire che operazioni lunghe come il caricamento di file abbiano il tempo di completare, invia almeno 1 byte di dati prima della scadenza di ogni periodo di timeout di inattività e aumenta la durata del periodo di inattività in base alle esigenze. Ti consigliamo inoltre di configurare il timeout di inattività dell'applicazione in modo che sia superiore al timeout di inattività configurato per il sistema di bilanciamento del carico. In caso contrario, se l'applicazione chiude la connessione TCP al sistema di bilanciamento del carico in modo drastico, il sistema di bilanciamento del carico potrebbe inviare una richiesta all'applicazione prima di ricevere il pacchetto che indica che la connessione è chiusa. In tal caso, il sistema di bilanciamento del carico invia un errore HTTP 502 Gateway non valido al client.

Per impostazione predefinita, Elastic Load Balancing imposta il valore di timeout di inattività per il sistema di bilanciamento del carico su 60 secondi o 1 minuto. Utilizza la procedura seguente per impostare un valore di timeout per inattività diverso.

Per aggiornare il valore di timeout di inattività della connessione utilizzando la console
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Seleziona Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Selezionare il load balancer.

  4. Nella scheda Attributi, scegli Modifica.

  5. In Configurazione del traffico, inserisci un valore per il timeout di inattività della connessione. L'intervallo valido è compreso tra 1 e 4000 secondi.

  6. Scegli Save changes (Salva modifiche).

Per aggiornare il valore del timeout di inattività utilizzando il AWS CLI

Utilizzate il modify-load-balancer-attributescomando con l'idle_timeout.timeout_secondsattributo.

durata keepalive del client HTTP

La durata keepalive del client HTTP è il periodo di tempo massimo durante il quale un Application Load Balancer mantiene una connessione HTTP persistente a un client. Trascorsa la durata di keepalive del client HTTP configurato, l'Application Load Balancer accetta un'altra richiesta e quindi restituisce una risposta che chiude correttamente la connessione.

Il tipo di risposta inviata dal load balancer dipende dalla versione HTTP utilizzata dalla connessione client.

  • Per i client connessi tramite HTTP 1.x, il load balancer invia un'intestazione HTTP contenente il campo. Connection: close

  • Per i client connessi tramite HTTP/2, il load balancer invia un frame. GOAWAY

Per impostazione predefinita, Application Load Balancer imposta il valore di durata keepalive del client HTTP per i sistemi di bilanciamento del carico su 3600 secondi o 1 ora. La durata keepalive del client HTTP non può essere disattivata o impostata al di sotto del minimo di 60 secondi, ma è possibile aumentare la durata di keepalive del client HTTP, fino a un massimo di 604800 secondi o 7 giorni. Un Application Load Balancer inizia il periodo di durata keepalive del client HTTP quando viene inizialmente stabilita una connessione HTTP a un client. Il periodo di durata continua quando non c'è traffico e non viene ripristinato finché non viene stabilita una nuova connessione.

Quando il traffico del sistema di bilanciamento del carico viene spostato da una zona di disponibilità ridotta utilizzando lo spostamento zonale o lo spostamento automatico di zona, i client con connessioni aperte esistenti potrebbero continuare a effettuare richieste verso la posizione compromessa fino alla riconnessione dei client. Per supportare un ripristino più rapido, prendi in considerazione l'impostazione di un valore di durata keepalive inferiore, per limitare il tempo in cui i client rimangono connessi a un sistema di bilanciamento del carico. Per ulteriori informazioni, consulta Limita il tempo in cui i client rimangono connessi ai tuoi endpoint nella Amazon Application Recovery Controller (ARC) Developer Guide.

Nota

Quando il load balancer cambia il tipo di indirizzo IP dell'Application dualstack-without-public-ipv4 Load Balancer su, il load balancer attende il completamento di tutte le connessioni attive. Per ridurre il tempo necessario per cambiare il tipo di indirizzo IP per il tuo Application Load Balancer, valuta la possibilità di ridurre la durata di keepalive del client HTTP.

L'Application Load Balancer assegna al client HTTP il valore di durata keepalive durante la connessione iniziale. Quando si aggiorna la durata keepalive del client HTTP, ciò può comportare connessioni simultanee con valori di durata keepalive del client HTTP diversi. Le connessioni esistenti mantengono il valore di durata keepalive del client HTTP applicato durante la connessione iniziale. Le nuove connessioni ricevono il valore di durata keepalive del client HTTP aggiornato.

Per aggiornare il valore di durata del client keepalive utilizzando la console
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Seleziona Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Selezionare il load balancer.

  4. Nella scheda Attributi, scegli Modifica.

  5. In Configurazione del traffico, inserisci un valore per la durata di keepalive del client HTTP. L'intervallo valido è compreso tra 60 e 604800 secondi.

  6. Scegli Save changes (Salva modifiche).

Per aggiornare il valore della durata di keepalive del client utilizzando il AWS CLI

Usa il modify-load-balancer-attributescomando con l'client_keep_alive.secondsattributo.

Deletion protection (Protezione da eliminazione)

Per evitare che il sistema di bilanciamento del carico venga eliminato accidentalmente, è possibile abilitare la protezione da eliminazione. Per impostazione predefinita, la protezione da eliminazioni è disabilitata nel sistema di bilanciamento del carico.

Se abiliti la protezione da eliminazione per il sistema di bilanciamento del carico, devi disabilitarla prima di poter eliminare il sistema.

Per abilitare la protezione da eliminazione tramite la console
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Seleziona Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Selezionare il load balancer.

  4. Nella scheda Attributi, scegli Modifica.

  5. In Configurazione, attivare Protezione da eliminazione.

  6. Scegli Save changes (Salva modifiche).

Per disabilitare la protezione da eliminazione tramite la console
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Seleziona Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Selezionare il load balancer.

  4. Nella scheda Attributi, scegli Modifica.

  5. Nella pagina Configurazione, disattivare Protezione da eliminazione.

  6. Scegli Save changes (Salva modifiche).

Per abilitare o disabilitare la protezione da eliminazione utilizzando il AWS CLI

Utilizzate il modify-load-balancer-attributescomando con l'deletion_protection.enabledattributo.

Modalità di mitigazione della desincronizzazione

La modalità di attenuazione della desincronizzazione protegge l'applicazione da problemi dovuti alla desincronizzazione HTTP. Il load balancer classifica ogni richiesta in base al relativo livello di minaccia, consente le richieste sicure e quindi riduce i rischi come specificato dalla modalità di attenuazione specificata. Le modalità di attenuazione della desincronizzazione sono monitorate, difensive e più rigorose. L'impostazione predefinita è la modalità difensiva, che fornisce un'attenuazione duratura contro la desincronizzazione HTTP mantenendo la disponibilità dell'applicazione. È possibile passare alla modalità più rigorosa per garantire che l'applicazione riceva solo richieste conformi a RFC 7230.

La libreria http_desync_guardian analizza le richieste HTTP per prevenire gli attacchi di desincronizzazione HTTP. Per ulteriori informazioni, vedere HTTP Desync Guardian su GitHub.

Classificazioni

Le classificazioni sono le seguenti:

  • Conformità: la richiesta è conforme a RFC 7230 e non presenta minacce per la sicurezza note.

  • Accettabile: la richiesta non è conforme a RFC 7230 ma non presenta minacce per la sicurezza note.

  • Ambigua: la richiesta non è conforme a RFC 7230 ma rappresenta un rischio, poiché vari server web e proxy potrebbero gestirla in modo diverso.

  • Grave: la richiesta comporta un elevato rischio per la sicurezza. Il load balancer blocca la richiesta, fornisce una risposta 400 al client e chiude la connessione client.

Se una richiesta non è conforme a RFC 7230, il bilanciamento del carico incrementa il parametro DesyncMitigationMode_NonCompliant_Request_Count. Per ulteriori informazioni, consulta Parametri di Application Load Balancer.

La classificazione di ogni richiesta è inclusa nei log di accesso del sistema di bilanciamento del carico. Se la richiesta non è conforme, i log di accesso includono un codice del motivo della classificazione. Per ulteriori informazioni, consulta Motivi della classificazione.

Modalità

La tabella seguente descrive come gli Application Load Balancer trattano le richieste in base alla modalità e alla classificazione.

Classificazione Modalità monitorata Modalità difensiva Modalità più rigorosa
Conforme Consentito Consentito Consentito
Accettabile Consentito Consentito Bloccato
Ambiguo Consentito Consentito¹ Bloccato
Grave Consentito Bloccato Bloccato

¹ Esegue il routing delle richieste ma chiude le connessioni client e target. È possibile incorrere in costi aggiuntivi se il sistema di bilanciamento del carico riceve un gran numero di richieste ambigue in modalità difensiva. Questo si verifica perché il numero crescente di nuove connessioni al secondo contribuisce al numero di unità di capacità del sistema di bilanciamento del carico (LCU) utilizzate all'ora. È possibile utilizzare il parametro NewConnectionCount per confrontare come il sistema di bilanciamento del carico stabilisce nuove connessioni in modalità monitoraggio e in modalità difensiva.

Per aggiornare la modalità di attenuazione della desincronizzazione tramite la console
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Seleziona Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Selezionare il load balancer.

  4. Nella scheda Attributi, scegli Modifica.

  5. In Gestione pacchetti, per Modalità di attenuazione della desincronizzazione, scegli Difensiva, Più rigorosa o Monitoraggio.

  6. Scegli Save changes (Salva modifiche).

Per aggiornare la modalità di mitigazione della desincronizzazione utilizzando il AWS CLI

Utilizzare il modify-load-balancer-attributescomando con l'routing.http.desync_mitigation_modeattributo impostato su monitordefensive, o. strictest

Conservazione dell'intestazione host

Quando si abilita l'attributo Conservazione dell'intestazione host, l'Application Load Balancer conserva l'intestazione Host nella richiesta HTTP e invia l'intestazione alle destinazioni senza alcuna modifica. Se l'Application Load Balancer riceve più intestazioni Host, le conserva tutte. Le regole dell'ascoltatore vengono applicate solo alla prima intestazione Host ricevuta.

Per impostazione predefinita, quando l'attributo Conservazione dell'intestazione host non è abilitato, l'Application Load Balancer modifica l'intestazione Host nel modo seguente:

Quando la conservazione dell'intestazione host non è abilitata e la porta dell'ascoltatore è una porta non predefinita: quando non si utilizzano le porte predefinite (80 o 443), il numero della porta viene aggiunto all'intestazione host se non è già aggiunto dal client. Ad esempio, l'intestazione Host nella richiesta HTTP con Host: www.example.com, sarebbe modificata in Host: www.example.com:8080 se la porta dell'ascoltatore fosse una porta non predefinita come 8080.

Quando la conservazione dell'intestazione host non è abilitata e la porta dell'ascoltatore è una porta predefinita (80 o 443): per le porte dell'ascoltatore predefinite (80 o 443), il numero della porta non viene aggiunto all'intestazione host in uscita. Qualsiasi numero di porta già presente nell'intestazione host viene rimosso.

La tabella seguente illustra ulteriori esempi di come Application Load Balancer tratta le intestazioni host nella richiesta HTTP basata sulla porta dell'ascoltatore.

Porta dell'ascoltatore Richiesta di esempio Intestazione host nella richiesta Conservazione dell'intestazione host disabilitata (comportamento predefinito) Conservazione dell'intestazione host abilitata
La richiesta inviata all'ascoltatore HTTP/HTTPS predefinito. GET /index.html HTTP/1.1 Host: example.com example.com example.com example.com
La richiesta viene inviata sul listener HTTP predefinito e l'intestazione dell'host ha una porta (ad esempio, 80 o 443). GET /index.html HTTP/1.1 Host: example.com:80 example.com:80 example.com example.com:80
La richiesta ha un percorso assoluto. GET https://dns_name/index.html HTTP/1.1 Host: example.com example.com dns_name example.com
La richiesta viene inviata su una porta listener non predefinita (ad esempio 8080) GET /index.html HTTP/1.1 Host: example.com example.com example.com:8080 example.com
La richiesta viene inviata su una porta dell'ascoltatore non predefinita e l'intestazione host ha una porta (ad esempio, 8080). GET /index.html HTTP/1.1 Host: example.com:8080 example.com:8080 example.com:8080 example.com:8080
Per abilitare la conservazione dell'intestazione dell'host utilizzando la console
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Selezionare Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Selezionare il load balancer.

  4. Nella scheda Attributi, scegli Modifica.

  5. In Gestione pacchetti, attivare Conserva intestazione host.

  6. Scegli Save changes (Salva modifiche).

Per abilitare la conservazione dell'intestazione dell'host utilizzando il AWS CLI

Utilizzate il modify-load-balancer-attributescomando con l'routing.http.preserve_host_header.enabledattributo true impostato su.