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

Application Load Balancer

Un sistema di bilanciamento del carico funge da singolo punto di contatto per i client. I client inviano le richieste al sistema di bilanciamento del carico e il sistema di bilanciamento del carico le invia a destinazioni, come EC2 le istanze. Per configurare un sistema di bilanciamento del carico, devi creare gruppi target e poi registrare i target nei gruppi. Puoi anche creare dei listener per verificare le richieste di connessione dai client e le regole dei listener per instradare le richieste dai client verso i target in uno o più gruppi target.

Per ulteriori informazioni consultare la guida Come funziona Elastic Load Balancing all'interno della Guida per l'utente di Elastic Load Balancing.

Sottoreti per il sistema di bilanciamento del carico

Quando si crea un Application Load Balancer, è necessario abilitare le zone che contengono le destinazioni. Per abilitare una zona, specificare una sottorete che si trova al suo interno. Elastic Load Balancing crea un nodo del sistema di bilanciamento del carico in ogni zona specificata.

Considerazioni
  • Il sistema di bilanciamento del carico è più efficace se ogni zona abilitata dispone di almeno una destinazione registrata.

  • Se si registrano destinazioni in una zona, ma non si abilita tale zona, queste destinazioni registrate non sono in grado di ricevere traffico dal sistema di bilanciamento del carico.

  • Se si abilitano più zone per il sistema di bilanciamento del carico, tali zone devono essere dello stesso tipo. Ad esempio, non è possibile abilitare sia una zona di disponibilità che una zona locale.

  • È possibile specificare una sottorete condivisa con te.

Gli Application Load Balancer supportano i seguenti tipi di sottorete.

Sottoreti della zone di disponibilità

È necessario selezionare almeno due sottoreti delle zone di disponibilità. Le restrizioni si applicano come segue:

  • Ogni sottorete deve essere in una zona di disponibilità diversa.

  • Per garantire che il sistema di bilanciamento del carico sia in grado di scalare correttamente, verifica che ogni sottorete della zona di disponibilità per il sistema di bilanciamento del carico abbia un CIDR blocco con almeno una /27 maschera di bit (ad esempio10.0.0.0/27) e almeno otto indirizzi IP liberi per sottorete. Gli otto indirizzi IP sono necessari per consentire al sistema di bilanciamento del carico di dimensionare se necessario. Il sistema di bilanciamento del carico utilizza questi indirizzi IP per stabilire le connessioni con le destinazioni. Senza di essi, potrebbero verificarsi problemi coni tentativi di sostituzione del nodo dell'Application Load Balancer, comportando l'ingresso in uno stato non riuscito.

    Nota: se una sottorete di un Application Load Balancer esaurisce gli indirizzi IP utilizzabili mentre cerca di dimensionarsi, l'Application Load Balancer sarà eseguito con capacità insufficiente. Durante questo periodo di tempo, i vecchi nodi continueranno a servire il traffico, ma il tentativo di dimensionamento bloccato potrebbe provocare errori 5xx o timeout dei tentativi di stabilire una connessione.

Sottoreti della zona locale

Si possono specificare una o più sottoreti della zona locale. Le restrizioni si applicano come segue:

  • Non è possibile AWS WAF utilizzarlo con il sistema di bilanciamento del carico.

  • Non è possibile utilizzare una funzione Lambda come destinazione.

  • Non è possibile utilizzare sessioni permanenti o la persistenza delle applicazioni.

Sottoreti Outpost

È possibile specificare una sola sottorete Outpost. Le restrizioni si applicano come segue:

  • Devi aver installato e configurato un Outpost nel data center locale. É necessaria una connessione di rete affidabile tra l'Outpost e la relativa Regione AWS . Per ulteriori informazioni, consulta la Guida per l'utente AWS Outposts.

  • Il sistema di bilanciamento del carico richiede due istanze large nell'Outpost per i nodi del sistema. I tipi di istanza supportati sono illustrati nella tabella seguente. Il sistema di bilanciamento del carico si dimensiona secondo necessità, ridimensionando i nodi una dimensione alla volta (da large a xlarge, poi da xlarge a 2xlarge e infine da 2xlarge a 4xlarge). Dopo aver dimensionato i nodi alla dimensione di istanza più grande, il sistema di bilanciamento del carico aggiunge istanze 4xlarge come nodi del sistema in caso di bisogno di capacità aggiuntiva. Se non si dispone di capacità di istanza o di indirizzi IP disponibili sufficienti per dimensionare il sistema di bilanciamento del carico, il sistema stesso segnala un evento a AWS Health Dashboard e lo stato del sistema di bilanciamento del carico è active_impaired.

  • È possibile registrare le destinazioni in base a ID istanza o indirizzo IP. Se registri obiettivi nella AWS Regione per l'Avamposto, questi non vengono utilizzati.

  • Le seguenti funzionalità non sono disponibili: funzioni Lambda come destinazioni, integrazione AWS WAF , sessioni permanenti, supporto per l'autenticazione e integrazione con AWS Global Accelerator.

Un Application Load Balancer può essere distribuito su istanze c5/c5d, m5/m5d o r5/r5d su Outpost. La tabella seguente mostra le dimensioni e il EBS volume per tipo di istanza che il load balancer può utilizzare su un Outpost:

Tipo e dimensione dell'istanza EBSvolume (GB)
c5/c5d
large 50
xlarge 50
2xlarge 50
4xlarge 100
m5/m5d
large 50
xlarge 50
2xlarge 100
4xlarge 100
r5/r5d
large 50
xlarge 100
2xlarge 100
4xlarge 100

Gruppi di sicurezza del sistema di bilanciamento del carico

Un gruppo di sicurezza agisce come un firewall che controlla il traffico consentito da e verso il sistema di bilanciamento del carico. Puoi scegliere le porte e i protocolli in modo da permettere il traffico sia in entrata sia in uscita.

Le regole dei gruppi di sicurezza associati al sistema di bilanciamento del carico devono permettere il traffico bidirezionale sia attraverso la porta dell'ascoltatore sia attraverso la porta di controllo dell'integrità. Quando aggiungi un listener a un sistema di bilanciamento del carico o aggiorni la porta di controllo dello stato per un gruppo target, devi rivedere le regole del gruppo di sicurezza in modo da permettere il traffico bidirezionale attraverso la nuova porta. Per ulteriori informazioni, consulta Regole consigliate.

Stato del sistema di bilanciamento del carico

Un sistema di bilanciamento del carico può avere uno dei seguenti stati:

provisioning

Il sistema di bilanciamento del carico è in fase di configurazione.

active

Il sistema di bilanciamento del carico è completamente configurato e pronto a instradare il traffico.

active_impaired

Il sistema di bilanciamento del carico indirizza il traffico ma non dispone delle risorse necessarie per dimensionarsi.

failed

Il sistema di bilanciamento del carico non può essere configurato.

Attributi del sistema di bilanciamento del carico

Di seguito sono elencati gli attributi di sistema di bilanciamento del carico:

access_logs.s3.enabled

Indica se i log di accesso archiviati in Amazon S3 sono abilitati. Il valore predefinito è false.

access_logs.s3.bucket

Il nome del bucket Amazon S3 per i log di accesso. Questo attributo è obbligatorio se i log di accesso sono abilitati. Per ulteriori informazioni, consulta Abilitare log di accesso.

access_logs.s3.prefix

Il prefisso della posizione nel bucket Amazon S3.

client_keep_alive.seconds

Il valore del client keepalive, in secondi. L'impostazione predefinita è 3600 secondi.

deletion_protection.enabled

Indica se è abilitata la protezione da eliminazione. Il valore predefinito è false.

idle_timeout.timeout_seconds

Il valore del tempo di inattività (in secondi). Il valore predefinito è 60 secondi.

ipv6.deny_all_igw_traffic

Blocca l'accesso tramite Internet gateway (IGW) al sistema di bilanciamento del carico, impedendo l'accesso involontario al sistema di bilanciamento del carico interno tramite un gateway Internet. È impostato su false per i sistemi di bilanciamento del carico connessi a Internet e su true per i sistemi di bilanciamento del carico interni. Questo attributo non impedisce l'accesso non a IGW Internet (ad esempio tramite peering, Transit Gateway o AWS VPN). AWS Direct Connect

routing.http.desync_mitigation_mode

Determina il modo in cui il sistema di bilanciamento del carico gestisce le richieste che potrebbero rappresentare un rischio per la sicurezza dell'applicazione. I valori possibili sono monitor, defensive e strictest. Il valore predefinito è defensive.

routing.http.drop_invalid_header_fields.enabled

Indica se le HTTP intestazioni con campi di intestazione non validi vengono rimosse dal load balancer (true) o indirizzate a targets (). false Il valore predefinito è false. Elastic Load Balancing richiede che i nomi di HTTP intestazione validi siano conformi all'espressione regolare[-A-Za-z0-9]+, come descritto nel Field Name Registry. HTTP Ogni nome è costituito da caratteri alfanumerici o trattini. Seleziona true se desideri che le HTTP intestazioni non conformi a questo modello vengano rimosse dalle richieste.

routing.http.preserve_host_header.enabled

Indica se l'Application Load Balancer deve conservare l'Hostintestazione nella HTTP richiesta e inviarla alle destinazioni senza alcuna modifica. I valori possibili sono true e false. Il valore di default è false.

routing.http.x_amzn_tls_version_and_cipher_suite.enabled

Indica se le due intestazioni (x-amzn-tls-versionandx-amzn-tls-cipher-suite), che contengono informazioni sulla TLS versione negoziata e sulla suite di crittografia, vengono aggiunte alla richiesta del client prima di inviarla alla destinazione. L'x-amzn-tls-versionintestazione contiene informazioni sulla versione del TLS protocollo negoziata con il client e l'x-amzn-tls-cipher-suiteintestazione contiene informazioni sulla suite di crittografia negoziata con il client. Entrambe le intestazioni sono in formato aperto. SSL I valori possibili per l'attributo sono true e false. Il valore predefinito è false.

routing.http.xff_client_port.enabled

Indica se l'intestazione X-Forwarded-For deve mantenere la porta di origine utilizzata dal client per connettersi al sistema di bilanciamento del carico. I valori possibili sono true e false. Il valore di default è false.

routing.http.xff_header_processing.mode

Consente di modificare, conservare o rimuovere l'X-Forward-Forintestazione nella HTTP richiesta prima che Application Load Balancer invii la richiesta alla destinazione. I valori possibili sono append, preserve e remove. Il valore predefinito è append.

  • Se il valore èappend, Application Load Balancer aggiunge l'indirizzo IP del client (dell'ultimo hop) all'X-Forward-Forintestazione della HTTP richiesta prima di inviarla alle destinazioni.

  • Se il valore èpreserve, Application Load Balancer conserva l'X-Forward-Forintestazione nella HTTP richiesta e la invia alle destinazioni senza alcuna modifica.

  • Se il valore èremove, Application Load Balancer rimuove l'X-Forward-Forintestazione nella HTTP richiesta prima di inviarla alle destinazioni.

routing.http2.enabled

Indica se HTTP /2 è abilitato. Il valore predefinito è true.

waf.fail_open.enabled

Indica se consentire a un sistema di bilanciamento del carico AWS WAF abilitato a indirizzare le richieste verso le destinazioni se non è in grado di inoltrare la richiesta a. AWS WAF I valori possibili sono true e false. Il valore di default è false.

Nota

L'routing.http.drop_invalid_header_fields.enabledattributo è stato introdotto per offrire protezione da HTTP desincronizzazione. L'routing.http.desync_mitigation_modeattributo è stato aggiunto per fornire una protezione più completa dalla HTTP desincronizzazione delle applicazioni. Non è necessario utilizzare entrambi gli attributi ed è possibile scegliere uno dei due, a seconda dei requisiti dell'applicazione.

Tipo di indirizzo IP

È possibile impostare i tipi di indirizzi IP che i client possono utilizzare per accedere ai sistemi di bilanciamento del carico connessi a Internet e interni.

Gli Application Load Balancer supportano i seguenti tipi di indirizzi IP:

ipv4

I client devono connettersi al sistema di bilanciamento del carico utilizzando IPv4 gli indirizzi (ad esempio, 192.0.2.1)

dualstack

I client possono connettersi al sistema di bilanciamento del carico utilizzando sia IPv4 gli indirizzi (ad esempio, 192.0.2.1) che gli indirizzi (ad esempio, 2001:0 db 8:85 a IPv6 3:0:0:8 a2e: 0370:7334).

Considerazioni
  • Il sistema di bilanciamento del carico comunica con le destinazioni in base al tipo di indirizzo IP del gruppo di destinazioni.

  • Quando abiliti la modalità dualstack per il load balancer, Elastic Load Balancing fornisce un AAAA DNS record per il load balancer. I client che comunicano con il sistema di bilanciamento del carico utilizzando gli indirizzi risolvono il record A. IPv4 DNS I client che comunicano con il sistema di bilanciamento del carico utilizzando IPv6 gli indirizzi risolvono il AAAA DNS record.

  • L'accesso ai sistemi di bilanciamento del carico interni dualstack tramite il gateway Internet è bloccato per prevenire accessi non intenzionali a Internet. Tuttavia, ciò non impedisce l'accesso non a IGW Internet (ad esempio tramite peering, Transit Gateway o AWS VPN). AWS Direct Connect

dualstack-without-public-ipv4

I client devono connettersi al sistema di bilanciamento del carico utilizzando IPv6 gli indirizzi (ad esempio, 2001:0 db 8:85 a 3:0:0:8 a2e: 0370:7334).

Considerazioni
  • L'autenticazione Application Load Balancer è supportata solo IPv4 durante la connessione a un Identity Provider (IdP) o a un endpoint Amazon Cognito. Senza un IPv4 indirizzo pubblico, il sistema di bilanciamento del carico non può completare il processo di autenticazione, con conseguenti 500 errori. HTTP

Per ulteriori informazioni sui tipi di indirizzi IP, vedereAggiorna i tipi di indirizzi IP per il tuo Application Load Balancer.

Connessioni di bilanciamento del carico

Durante l'elaborazione di una richiesta, il load balancer mantiene due connessioni: una connessione con il client e una connessione con una destinazione. La connessione tra il load balancer e il client viene anche definita connessione front-end. La connessione tra il load balancer e la destinazione viene anche definita connessione back-end.

Bilanciamento del carico su più zone

Con gli Application Load Balancer, il bilanciamento del carico tra zone è attivato per impostazione predefinita e non può essere modificato a livello di sistema di bilanciamento del carico. Per ulteriori informazioni, consulta la sezione Bilanciamento del carico tra zone nella Guida per l'utente di Elastic Load Balancing.

La disattivazione del bilanciamento del carico tra zone è possibile a livello di gruppo di destinazioni. Per ulteriori informazioni, consulta Disattivazione del bilanciamento del carico tra zone.

Application Load Balancer e AWS WAF

Puoi utilizzarlo AWS WAF con il tuo Application Load Balancer per consentire o bloccare le richieste in base alle regole di una lista di controllo degli accessi Web (webACL). Per ulteriori informazioni, consulta Working with web ACLs nella AWS WAF Developer Guide.

Per impostazione predefinita, se il load balancer non riesce a ottenere una risposta da AWS WAF, restituisce un errore HTTP 500 e non inoltra la richiesta. Se hai bisogno che il sistema di bilanciamento del carico inoltri le richieste alle destinazioni anche se non è in grado di contattare AWS WAF, puoi abilitare il AWS WAF fail-open. Per verificare se il tuo sistema di bilanciamento del carico si integra con AWS WAF, seleziona il sistema di bilanciamento del carico nella AWS Management Console scheda Servizi integrati.

Web predefinito ACLs

Quando abiliti AWS WAF l'integrazione, puoi scegliere di creare automaticamente un nuovo Web ACL con regole predefinite. Il Web predefinito ACL include tre regole AWS gestite che offrono protezioni contro le minacce alla sicurezza più comuni.

Per abilitare AWS WAF l'utilizzo della 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 Integrazioni, espandi AWS Web Application Firewall (WAF) e scegli Associa un WAF web ACL.

  5. In Web ACL, scegli Crea automaticamente un Web predefinito o seleziona un Web ACL esistente. ACL

  6. In Azione sulle regole, scegli Blocca o Conta.

  7. Scegli Conferma.

Per abilitare il AWS WAF fail-open utilizzando il AWS CLI

Utilizzate il modify-load-balancer-attributescomando con l'waf.fail_open.enabledattributo impostato sutrue.