Configurazione di un Classic Load Balancer - AWS Elastic Beanstalk

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

Configurazione di un Classic Load Balancer

Se si abilita il bilanciamento del carico, l'ambiente AWS Elastic Beanstalk viene dotato di un load balancer Elastic Load Balancer per la distribuzione del traffico tra le istanze dell'ambiente. Elastic Load Balancing supporta diversi tipi di load balancer. Per ulteriori informazioni, consulta la Guida per l'utente di Elastic Load Balancing. Elastic Beanstalk può creare un load balancer automaticamente o ti consente di specificare un load balancer condiviso creato da te.

In questo argomento viene descritta la configurazione di un sistema Classic Load Balancer creato da Elastic Beanstalk per il tuo ambiente. Per informazioni sulla configurazione di tutti i tipi di load balancer supportati da Elastic Beanstalk, consulta Sistema di bilanciamento del carico per l'ambiente Elastic Beanstalk.

Nota

È possibile scegliere il tipo di load balancer che l'ambiente utilizza solo durante la creazione dell'ambiente. In seguito potrai modificare le impostazioni per gestire il comportamento del load balancer in esecuzione nell'ambiente, ma non potrai modificarne il tipo.

Introduzione

Un sistema Classic Load Balancer è il sistema Elastic Load Balancing della generazione precedente. Supporta l'instradamento del traffico di richieste HTTP, HTTPS o TCP verso porte diverse delle istanze dell'ambiente.

Quando l'ambiente utilizza un sistema Classic Load Balancer, Elastic Beanstalk lo configura per impostazione predefinita in modo che ascolti il traffico HTTP sulla porta 80 e lo inoltri alle istanze sulla stessa porta. Sebbene non sia possibile eliminare il listener predefinito della porta 80, è possibile disabilitarlo, ottenendo la stessa funzionalità bloccando il traffico. Nota che puoi aggiungere o eliminare altri ascoltatori. Per supportare connessioni sicure, è possibile configurare il load balancer con un listener sulla porta 443 e un certificato TLS.

Il load balancer utilizza un controllo dello stato per stabilire se le istanze Amazon EC2 in esecuzione sull'applicazione sono integre. Il controllo dello stato invia una richiesta a un URL specificato in un intervallo di tempo preconfigurato. Se l'URL restituisce un messaggio di errore, o non restituisce nulla entro un periodo di timeout specificato, il controllo dello stato ha esito negativo.

Se le prestazioni della tua applicazione migliorano con l'elaborazione di più richieste dallo stesso client su un unico server, puoi configurare il load balancer per l'utilizzo di sticky session. Con le sticky session, il load balancer aggiunge un cookie alle risposte HTTP che identifica l'istanza Amazon EC2 che ha gestito la richiesta. Quando lo stesso client riceve una richiesta successiva, il load balancer utilizza il cookie per inviare la richiesta alla stessa istanza.

Con il bilanciamento del carico su più zone, ogni nodo del load balancer per Classic Load Balancer distribuisce le richieste in modo uniforme su istanze registrate in tutte le zone di disponibilità abilitate. Se il load balancer su più zone non è attivo, ogni nodo di load balancer distribuisce le richieste in modo uniforme sulle istanze registrate solo nella relativa zona di disponibilità.

Quando un'istanza viene rimossa dal load balancer perché non è più integra o l'ambiente si sta ridimensionando, Connection Draining concede all'istanza il tempo necessario per completare le richieste prima della chiusura della connessione tra l'istanza e il load balancer. È possibile modificare la quantità di tempo concesso alle istanze per l'invio di una risposta o disabilitare completamente Connection Draining.

Nota

Connection Draining viene abilitato per impostazione predefinita al momento della creazione di un ambiente tramite la console Elastic Beanstalk o l'interfaccia a riga di comando EB. Per gli altri client, puoi attivarlo utilizzando le opzioni di configurazione.

Puoi utilizzare le opzioni del load balancer avanzate per configurare i listener su porte arbitrarie, modificare impostazioni aggiuntive della sticky session e configurare il load balancer per connetterti alle istanze EC2 in modo sicuro. Queste impostazioni sono disponibili tramite le opzioni di configurazione che puoi impostare impiegando i file di configurazione del codice sorgente o direttamente in un ambiente utilizzando l'API Elastic Beanstalk. Molte di queste impostazioni sono disponibili anche nella console Elastic Beanstalk. Puoi anche configurare un load balancer in modo che carichi i log di accesso in Amazon S3.

Configurazione di un sistema Classic Load Balancer utilizzando la console Elastic Beanstalk

Puoi utilizzare la console Elastic Beanstalk per configurare le porte, i certificati HTTPS e altre impostazioni di Classic Load Balancer in fase di creazione o di esecuzione dell'ambiente.

Nota

L'opzione Classic Load Balancer (CLB) è disattivata nella procedura guidata della console Crea ambiente. Se disponi di un ambiente esistente configurato con Classic Load Balancer, puoi crearne uno nuovo clonando l'ambiente esistente utilizzando la console Elastic Beanstalk o la CLI EB. Puoi inoltre utilizzare la CLI EB o la AWS CLI per creare un nuovo ambiente configurato con Classic Load Balancer. Questi strumenti da riga di comando creeranno un nuovo ambiente con un CLB anche se non ne esiste già uno nel tuo account.

Per configurare un sistema Classic Load Balancer di un ambiente in esecuzione nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e nell'elenco Regions (Regioni) seleziona la tua Regione AWS.

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Load balancer (Sistema di bilanciamento del carico), scegliere Edit (Modifica).

    Nota

    Se la categoria di configurazione di Load balancer (Sistema di bilanciamento del carico) non presenta un pulsante Edit (Modifica), il tuo ambiente non dispone di un load balancer. Per informazioni su come impostarne uno, consultare Modifica del tipo di ambiente.

  5. Apporta alla configurazione di Classic Load Balancer le modifiche richieste dall'ambiente.

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Listener

Utilizza questo elenco per specificare i listener per il tuo load balancer. Ogni listener instrada il traffico client in entrata su una determinata porta utilizzando un protocollo sulle tue istanze. Inizialmente, l'elenco mostra il listener predefinito, che instrada il traffico HTTP in entrata sulla porta 80 per il server delle istanze del tuo ambiente che intercetta il traffico HTTP sulla porta 80.

Nota

Sebbene non sia possibile eliminare il listener predefinito della porta 80, è possibile disabilitarlo, ottenendo la stessa funzionalità bloccando il traffico.

Configurazione di Classic Load Balancer: modifica dei listener
Configurazione di un listener esistente
  1. Seleziona la casella di controllo accanto alla voce della tabella e successivamente Actions (Operazioni) e l'azione desiderata.

  2. Se scegli Edit (Modifica), utilizza la finestra di dialogo Classic Load Balancer listener (Listener di Classic Load Balancer) per modificare le impostazioni, quindi seleziona Save (Salva).

Ad esempio, puoi modificare il listener predefinito e modificare il Protocol (Protocollo) da HTTP a TCP se desideri che il load balancer inoltri le richieste così come sono. In questo modo si impedisce al load balancer di riscrivere le intestazioni (incluso X-Forwarded-For). La tecnica non funziona con le sticky session.

Configurazione di Classic Load Balancer: modifica del protocollo predefinito del listener in TCP
Aggiunta di un listener
  1. Scegli Add listener (Aggiungi listener).

  2. Nella finestra di dialogo Classic Load Balancer listener (Listener di Classic Load Balancer), configura le impostazioni e scegli Add (Aggiungi).

L'aggiunta di un listener sicuro è un caso di utilizzo comune. L'esempio nella seguente immagine aggiunge un listener per il traffico HTTPS sulla porta 443. Il listener instrada il traffico in entrata verso i server delle istanze dell'ambiente che intercettano il traffico HTTPS sulla porta 443.

Prima di configurare un listener HTTPS, assicurati di disporre di un certificato SSL valido. Esegui una di queste operazioni:

Per ulteriori informazioni sulla configurazione di HTTPS e sull'utilizzo dei certificati in Elastic Beanstalk, consulta Configurazione del protocollo HTTPS per l'ambiente Elastic Beanstalk.

In SSL certificate (Certificato SSL), scegli l'ARN del certificato SSL. Ad esempio, arn:aws:iam::123456789012:server-certificate/abc/certs/build o arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678.

Configurazione di Classic Load Balancer: aggiunta di un listener protetto

Per informazioni dettagliate sulla configurazione di HTTPS e sull'utilizzo dei certificati in Elastic Beanstalk, consulta Configurazione del protocollo HTTPS per l'ambiente Elastic Beanstalk.

Sessioni

Seleziona o deseleziona la casella Session stickiness enabled (Adesione alla sessione abilitata) per attivare o disattivare le sticky session. Usa Cookie duration (Durata del cookie) per configurare la durata di una sticky session, fino a 1000000 secondi. Nell'elenco Load balancer ports (Porte del load balancer) selezionare le porte del listener a cui si applica il criterio predefinito (AWSEB-ELB-StickinessPolicy).

Impostazioni di Classic Load Balancer per la persistenza e la durata della sessione

Bilanciamento del carico su più zone

Seleziona o deseleziona la casella Load balancing across multiple Availability Zones enabled (Attivazione del load balancer in più zone di disponibilità) per attivare o disattivare il bilanciamento del carico in più zone.

Impostazioni di Classic Load Balancer per il bilanciamento del carico su più zone

Connection Draining

Seleziona o deseleziona la casella Session stickiness enabled (Adesione alla sessione abilitata) per attivare o disattivare Connection Draining. Imposta Draining timeout (Timeout Draining) fino a 3600 secondi.

Impostazioni di Classic Load Balancer per il timeout di svuotamento e il connection draining

Controllo dello stato

Utilizza le seguenti impostazioni per configurare controlli di stato del load balancer:

  • Health check path (Percorso di controllo dello stato): percorso in cui il load balancer invia le richieste di controllo dello stato. Se il percorso non è impostato, il load balancer tenta di effettuare una connessione TCP sulla porta 80 per verificare lo stato.

  • Timeout: il periodo di attesa espresso in secondi di una risposta durante un controllo dello stato.

  • Interval (Intervallo): il periodo di tempo espresso in secondi che decorre tra i controlli dello stato di una singola istanza. L'intervallo deve essere maggiore del timeout.

  • Unhealthy threshold (Soglia di mancata integrità), Healthy threshold (Soglia di integrità): il numero di controlli dello stato consecutivi che non devono o devono essere superati rispettivamente prima che Elastic Load Balancing modifichi lo stato di integrità di un'istanza.

Impostazioni di Classic Load Balancer per il controllo dello stato
Nota

Il controllo dello stato di Elastic Load Balancing non influisce sul comportamento del controllo dello stato del gruppo Auto Scaling di un ambiente. Le istanze che non passano il controllo dello stato di Elastic Load Balancing non vengono sostituite automaticamente da Amazon EC2 Auto Scaling a meno che non configuri manualmente Amazon EC2 Auto Scaling per eseguire questa operazione. Per informazioni dettagliate, vedi Impostazione del controllo dello stato di Auto Scaling.

Per ulteriori informazioni sui controlli dello stato e su come influiscono sullo stato di integrità generale dell'ambiente, consulta Report dello stato di base.

Configurazione di un sistema Classic Load Balancer utilizzando l'interfaccia a riga di comando EB

Quando esegui eb create, l'interfaccia a riga di comando EB ti chiede di scegliere un tipo di load balancer.

$ eb create Enter Environment Name (default is my-app): test-env Enter DNS CNAME prefix (default is my-app): test-env-DLW24ED23SF Select a load balancer type 1) classic 2) application 3) network (default is 1):

Premi Enter (Invio) per selezionare classic.

Puoi anche specificare un tipo di load balancer con l'opzione --elb-type.

$ eb create test-env --elb-type classic

Spazi dei nomi di configurazione di Classic Load Balancer

Le impostazioni relative ai sistemi Classic Load Balancer sono disponibili nei seguenti spazi dei nomi:

  • aws:elb:healthcheck: configura le soglie, l'intervallo di controllo e il timeout per i controlli dello stato del load balancer.

  • aws:elasticbeanstalk:application: configura l'URL del controllo dello stato.

  • aws:elb:loadbalancer: abilita il load balancer su più zone. Assegna i gruppi di sicurezza al load balancer predefinito e ignora il gruppo di sicurezza creato da Elastic Beanstalk. Questo spazio dei nomi include anche opzioni obsolete per la configurazione di listener protetti e standard che sono state sostituite da opzioni nello spazio dei nomi aws:elb:listener.

  • aws:elb:listener: configura il listener predefinito sulla porta 80, un listener protetto sulla porta 443 o listener aggiuntivi per qualsiasi protocollo su qualsiasi porta. Se specifichi aws:elb:listener come namespace, le impostazioni si applicano al listener predefinito sulla porta 80. Se specifichi una porta (ad esempio, aws:elb:listener:443), su questa porta viene configurato un listener.

  • aws:elb:policies: configura impostazioni aggiuntive per il tuo load balancer. Puoi utilizzare le opzioni in questo spazio dei nomi per configurare i listener su porte arbitrarie, modificare impostazioni aggiuntive della sticky session e configurare il load balancer per connetterti alle istanze Amazon EC2 in modo sicuro.

La console Elastic Beanstalk e la CLI EB applicano i valori consigliati per le opzioni precedenti. Rimuovi queste impostazioni se desideri utilizzare i file di configurazione per configurare le stesse opzioni. Per informazioni dettagliate, consulta Valori consigliati.

Esempio .ebextensions/loadbalancer-terminatehttps.config

Il file di configurazione di esempio seguente crea un listener HTTPS sulla porta 443, assegna un certificato che il load balancer utilizza per terminare la connessione sicura e disabilita il listener predefinito sulla porta 80. Il load balancer inoltra le richieste decrittografate alle istanze EC2 nel tuo ambiente su HTTP: 80.

option_settings: aws:elb:listener:443: ListenerProtocol: HTTPS SSLCertificateId: arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678 InstancePort: 80 InstanceProtocol: HTTP aws:elb:listener: ListenerEnabled: false