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à.
Quando abiliti il bilanciamento del carico, il tuo AWS Elastic Beanstalk ambiente è dotato di un sistema di bilanciamento del carico Elastic Load Balancing per distribuire il traffico tra le istanze del tuo 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 Application Load Balancer creato da Elastic Beanstalk e dedicato all'ambiente in uso. Consulta anche Configurazione di un sistema Application Load Balancer condiviso. 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. Puoi modificare le impostazioni per gestire il comportamento del sistema di bilanciamento del carico in esecuzione nell'ambiente, ma non puoi modificarne il tipo. Inoltre, non è possibile passare da un sistema di bilanciamento del carico dedicato a uno condiviso o viceversa.
Introduzione
Un sistema Application Load Balancer ispeziona il traffico a livello di protocollo di rete dell'applicazione per identificare il percorso della richiesta in modo da poter indirizzare le richieste di percorsi diversi a destinazioni diverse.
Quando l'ambiente utilizza un sistema Application Load Balancer, per impostazione predefinita viene configurato da Elastic Beanstalk in modo da eseguire la stessa funzione di un sistema Classic Load Balancer. Il listener predefinito accetta le richieste HTTP sulla porta 80 e le distribuisce alle istanze nel tuo ambiente. Puoi aggiungere un listener protetto sulla porta 443 con un certificato per decrittare il traffico HTTPS, configurare il comportamento del controllo dello stato e inviare i log degli accessi dal sistema di bilanciamento del carico a un bucket Amazon Simple Storage Service (Amazon S3).
Nota
A differenza di un sistema Classic Load Balancer o Network Load Balancer, un sistema Application Load Balancer non può avere listener SSL/TLS o TCP a livello di trasporto (livello 4). Supporta solo listener HTTP e HTTPS. Inoltre, non è possibile utilizzare l'autenticazione di back-end per autenticare le connessioni HTTPS tra un sistema di bilanciamento del carico e le istanze di back-end.
In un ambiente Elastic Beanstalk puoi utilizzare un sistema Application Load Balancer per indirizzare il traffico per determinati percorsi a un processo diverso nelle istanze del server Web. Con un sistema Classic Load Balancer, tutto il traffico indirizzato a un listener viene instradato a un singolo processo sulle istanze di back-end. Con un sistema Application Load Balancer puoi configurare più regole sul listener per instradare le richieste verso percorsi specifici a processi di back-end diversi. È possibile configurare ogni processo con la porta su cui il processo è in ascolto.
Ad esempio, è possibile eseguire un processo di login separato dall'applicazione principale. Anche se l'applicazione principale sulle istanze del tuo ambiente accetta la maggior parte delle richieste e resta in attesa sulla porta 80, il processo di login resta in attesa sulla porta 5000 e accetta le richieste nel percorso /login
. Tutte le richieste in entrata dai clienti arrivano sulla porta 80. Con un sistema Application Load Balancer puoi configurare un solo listener per il traffico in entrata sulla porta 80, con due regole che instradano il traffico verso due processi separati, a seconda del percorso indicato nella richiesta. È possibile aggiungere una regola personalizzata che indirizza il traffico /login
al processo di accesso in ascolto sulla porta 5000. La regola predefinita instrada tutte il traffico restante nel processo dell'applicazione principale in attesa sulla porta 80.
Una regola Application Load Balancer esegue il mapping di una richiesta a un gruppo di destinazione. In Elastic Beanstalk, un gruppo di destinazione è rappresentato da un processo. È possibile configurare un processo con un protocollo, una porta e le impostazioni di controllo dello stato. Il processo rappresenta il processo in esecuzione sulle istanze nel tuo ambiente. Il processo predefinito è un listener sulla porta 80 del server proxy inverso (nginx o Apache) su cui viene eseguita l'applicazione.
Nota
Al di fuori di Elastic Beanstalk un gruppo di destinazione esegue il mapping a un gruppo di istanze. Un listener può utilizzare regole e gruppi di destinazione per instradare il traffico verso istanze diverse in base al percorso. All'interno di Elastic Beanstalk tutte le istanze dell'ambiente sono identiche, pertanto la distinzione viene fatta tra i processi in ascolto su porte diverse.
Un sistema Classic Load Balancer utilizza un unico percorso di controllo dello stato per l'intero ambiente. Con un sistema Application Load Balancer ogni processo ha un percorso di controllo dello stato separato monitorato dal sistema di bilanciamento del carico e dal monitoraggio dello stato avanzato di Elastic Beanstalk.
Per utilizzare un sistema Application Load Balancer, l'ambiente deve trovarsi in un VPC predefinito o personalizzato e deve essere dotato di un ruolo di servizio con il set standard di autorizzazioni. Se disponi di un ruolo del servizio precedente, potrebbe essere necessario aggiornare le autorizzazioni per includere elasticloadbalancing:DescribeTargetHealth
e elasticloadbalancing:DescribeLoadBalancers
. Per ulteriori informazioni sui sistemi Application Load Balancer, consulta Cos'è un Application Load Balancer?.
Nota
Il controllo dello stato di Application Load Balancer non utilizza il percorso del controllo dello stato di Elastic Beanstalk. Utilizza, invece, il percorso specifico configurato per ogni processo separatamente.
Configurazione di un sistema Application Load Balancer utilizzando la console Elastic Beanstalk
Puoi utilizzare la console Elastic Beanstalk per configurare i listener, i processi e le regole di un sistema Application Load Balancer durante la creazione dell'ambiente o in un secondo momento quando l'ambiente è in esecuzione.
Per configurare un sistema Application Load Balancer nella console Elastic Beanstalk durante la creazione dell'ambiente
Apri la console Elastic Beanstalk
e, nell'elenco Regioni, seleziona la tua. Regione AWS -
Nel riquadro di navigazione, selezionare Compute environments (Ambienti di calcolo).
-
Scegliere Create a new environment (Crea un nuovo ambiente) per iniziare a creare l'ambiente.
-
Nella pagina principale della procedura guidata, prima di scegliere Create environment (Crea ambiente), scegli Configure more options (Configura più opzioni).
-
Scegli la configurazione preimpostata High availability (Alta disponibilità).
In alternativa, nella categoria di configurazione Capacity (Capacità), configura un tipo di ambiente Load balanced (Con bilanciamento del carico). Per informazioni dettagliate, consultare Capacità.
-
Nella categoria di configurazione Load balancer (Sistema di bilanciamento del carico), scegliere Edit (Modifica).
-
Seleziona le opzioni Application Load Balancer e Dedicated (Dedicato) se non sono già selezionate.
-
Apporta alla configurazione di Application Load Balancer le modifiche richieste dall'ambiente.
-
Scegli Save (Salva) e apporta eventuali altre modifiche di configurazione richieste dal tuo ambiente.
-
Seleziona Create environment (Crea ambiente).
Per configurare un sistema Application Load Balancer di un ambiente in esecuzione nella console Elastic Beanstalk
Apri la console Elastic Beanstalk
e, nell'elenco Regioni, seleziona la tua. Regione AWS -
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.
Nel riquadro di navigazione, seleziona Configuration (Configurazione).
-
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.
-
Apporta alla configurazione di Application Load Balancer le modifiche richieste dall'ambiente.
-
Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.
Impostazioni di Application Load Balancer
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 specificato per uno o più processi sulle tue istanze. Inizialmente, l'elenco mostra il listener predefinito che indirizza il traffico HTTP in entrata sulla porta 80 verso un processo denominato predefinito.

Configurazione di un listener esistente
-
Seleziona la casella di controllo accanto alla voce della tabella e successivamente Actions (Operazioni) e Edit (Modifica).
-
Utilizza la finestra di dialogo Application Load Balancer listener (Listener di Application Load Balancer) per modificare le impostazioni, quindi seleziona Save (Salva).
Aggiunta di un listener
-
Scegli Add listener (Aggiungi listener).
-
Nella finestra di dialogo Application Load Balancer listener (Listener del sistema di bilanciamento del carico applicazioni), configura le impostazioni e scegli Add (Aggiungi).
Utilizza le impostazioni della finestra di dialogo Listener di Application Load Balancer per scegliere la porta e il protocollo utilizzati dal listener per intercettare il traffico e il processo per instradare il traffico. Se scegli il protocollo HTTPS, configura le impostazioni SSL.

Prima di configurare un listener HTTPS, assicurati di disporre di un certificato SSL valido. Esegui una di queste operazioni:
-
Se AWS Certificate Manager (ACM) è disponibile nella tua AWS regione, crea o importa un certificato utilizzando ACM. Per ulteriori informazioni sulla richiesta di un certificato ACM, consulta Richiesta di un certificato nella Guida per l'utente di AWS Certificate Manager . Per ulteriori informazioni sull'importazione di certificati di terza parte in ACM, consulta Importazione di certificati nella Guida per l'utente di AWS Certificate Manager .
-
Se ACM non è disponibile nella tua AWS regione, carica il certificato e la chiave esistenti su IAM. Per ulteriori informazioni sulla creazione e sul caricamento dei certificati in IAM, consulta l'argomento relativo all'utilizzo dei certificati del server nella Guida per l'utente di IAM.
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.
Processes
Utilizza questo elenco per specificare i processi per il tuo sistema di bilanciamento del carico. Un processo è la destinazione di instradamento del traffico da parte dei listener. Ogni listener instrada il traffico client in entrata su una determinata porta utilizzando un protocollo specificato per uno o più processi sulle tue istanze. Inizialmente, l'elenco mostra il processo predefinito, che intercetta il traffico in entrata sulla porta HTTP 80.

Puoi modificare le impostazioni di un processo esistente o aggiungerne uno nuovo. Per iniziare a modificare un processo dell'elenco o per aggiungere un processo, utilizza la stessa procedura indicata per l'elenco di listener. Viene visualizzata la finestra di dialogo Environment process (Processo ambiente).
Impostazioni della finestra di dialogo del processo di ambiente di Application Load Balancer
Definizione
Utilizza queste impostazioni per definire il processo: Name (Nome), Port (Porta) e Protocol (Protocollo) attraverso cui riceverà le richieste.

Controllo dello stato
Utilizza le seguenti impostazioni per configurare controlli di stato del processo:
-
HTTP code (Codice HTTP): codice di stato HTTP che indica un processo integro.
-
Path (Percorso): percorso della richiesta di controllo dello stato del processo.
-
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.
-
Deregistration delay (Ritardo annullamento della registrazione): il periodo di tempo espresso in secondi necessario al completamento delle richieste prima che venga annullata la registrazione di un'istanza.

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 superano un controllo dello stato di Elastic Load Balancing non vengono sostituite automaticamente da Amazon Auto EC2 Scaling a meno che non configuri manualmente Amazon Auto EC2 Scaling a tale scopo. Per informazioni dettagliate, vedi Impostazione del controllo dello stato di Auto Scaling per l'ambiente Elastic Beanstalk.
Per ulteriori informazioni sui controlli dello stato e su come influiscono sullo stato di integrità generale dell'ambiente, consulta Report dello stato di base.
Sessioni
Seleziona o deseleziona la casella Stickiness policy enabled (Policy di adesione abilitata) per attivare o disattivare le sticky session. Usa Cookie duration (Durata del cookie) per configurare la durata di una sticky session, fino a 604800
secondi.

Regolamento
Utilizza questo elenco per specificare le regole dei listener personalizzate per il tuo sistema di bilanciamento del carico. Una regola associa le richieste ricevute dal listener relative a un determinato modello di percorso a un processo di destinazione. Ogni listener può avere più regole, richieste di instradamento su percorsi distinti per diversi processi delle istanze.
Le regole hanno priorità numeriche che stabiliscono la precedenza in cui vengono applicate alle richieste in entrata. Per ogni nuovo listener aggiunto, Elastic Beanstalk aggiunge una regola predefinita che instrada il traffico di tutti i listener verso il processo predefinito. La precedenza della regola predefinita è la più bassa: viene applicata nel caso in cui non ci siano altre regole per lo stesso listener che corrispondono alla richiesta in entrata. Inizialmente, se non sono state aggiunte regole personalizzate, l'elenco è vuoto. Le regole predefinite di tutti i listener non vengono visualizzate.

Puoi modificare le impostazioni di una regola esistente o aggiungere una nuova regola. Per iniziare a modificare una regola dell'elenco o per aggiungere una regola, utilizza la stessa procedura indicata per l'elenco di listener. Viene visualizzata la finestra di dialogo Listener rule (Regola listener), con le impostazioni seguenti:
-
Name (Nome): nome della regola.
-
Listener port (Porta listener): porta del listener a cui si applica la regola.
-
Priority (Priorità): priorità della regola. Un numero di priorità inferiore ha la precedenza. Le priorità delle regole del listener devono essere uniche.
-
Match conditions (Condizioni di corrispondenza): elenco delle condizioni dell'URL della richiesta a cui si applica la regola. Esistono due tipi di condizioni: HostHeader(la parte del dominio dell'URL) e PathPattern(la parte del percorso dell'URL). È possibile aggiungere fino a cinque condizioni. Ogni valore di condizione è lungo fino a 128 caratteri e può includere caratteri jolly.
-
Process (Processo): processo al quale il sistema di bilanciamento del carico instrada le richieste che soddisfano la regola.
Quando si modifica una regola esistente, non è possibile modificarne Name (Nome) e Listener port (Porta listener).

Acquisizione dei log di accesso
Utilizza queste impostazioni per configurare Elastic Load Balancing al fine di acquisire i log con le informazioni dettagliate sulle richieste inviate al tuo Application Load Balancer. Per impostazione predefinita, l'acquisizione dei log di accesso è disattivata. Quando Store logs (Archivia i log) è abilitato, Elastic Load Balancing archivia i log nel bucket S3 che configuri. L'impostazione del prefisso indica una cartella di livello superiore nel bucket per i log. Elastic Load Balancing inserisce i log in una cartella denominata AWSLogs
con il prefisso impostato. Se non specifichi un prefisso, Elastic Load Balancing posiziona la cartella a livello root del bucket.
Nota
Se il bucket Amazon S3 che configuri per l'acquisizione dei log di accesso non è il bucket creato da Elastic Beanstalk per il tuo account, assicurati di aggiungere una policy utente con le autorizzazioni appropriate per i tuoi utenti (IAM). AWS Identity and Access Management Le policy utente gestite fornite da Elastic Beanstalk coprono solo le autorizzazioni per le risorse gestite da Elastic Beanstalk.
Per informazioni dettagliate sui log di accesso, incluse le autorizzazioni e altri requisiti, consulta Log di accesso per Application Load Balancer.

Esempio: Application Load Balancer con un listener protetto e due processi
In questo esempio, l'applicazione richiede la crittografia del end-to-end traffico e un processo separato per la gestione delle richieste amministrative.
Per configurare il sistema Application Load Balancer dell'ambiente e soddisfare questi requisiti, puoi rimuovere il listener predefinito, aggiungere un listener HTTPS, indicare che il processo predefinito utilizza la porta 443 su HTTPS e aggiungere un processo e una regola del listener per il traffico di amministrazione su un percorso diverso.
Configurazione del sistema di bilanciamento del carico per questo esempio
-
Aggiungi un listener protetto. In Porta digita
443
. In Protocollo, selezionaHTTPS
. In Certificato SSL, scegli l'ARN del certificato SSL. Ad esempio,arn:aws:iam::123456789012:server-certificate/abc/certs/build
oarn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678
.Per Processo predefinito, mantieni
default
selezionato.Ora puoi visualizzare il nuovo listener nell'elenco.
-
Disattiva il listener HTTP predefinito della porta 80. Per il listener predefinito, disattiva l'opzione Enabled (Abilitato).
-
Configura il processo predefinito per HTTPS. Seleziona il processo predefinito, quindi in Actions (Operazioni), scegli Edit (Modifica). In Porta digita
443
. In Protocollo, selezionaHTTPS
. -
Aggiungi un processo admin. In Name (Nome) digitare
admin
. In Porta digita443
. In Protocollo, selezionaHTTPS
. In Controllo dello stato, per Percorso, digita/admin
. -
Aggiungi una regola per il traffico amministrativo. In Name (Nome) digitare
admin
. In Porta listener, digitare443
. Per le condizioni Match, aggiungi un PathPatternvalore/admin/*
. Per Processo, selezionareadmin
.
Configurazione di un sistema Application 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 2):
Puoi specificare un tipo di sistema di bilanciamento del carico anche con l'opzione --elb-type
.
$ eb create test-env
--elb-type application
Spazi dei nomi di Application Load Balancer
Le impostazioni relative ai sistemi Application Load Balancer sono disponibili nei seguenti spazi dei nomi:
-
aws:elasticbeanstalk:environment
: scegli il tipo di sistema di bilanciamento del carico per l'ambiente. Il valore di un sistema Application Load Balancer èapplication
.Non è possibile impostare questa opzione nei file di configurazione (.Ebextensions).
-
aws:elbv2:loadbalancer
: configura i log di accesso e altre impostazioni che si applicano al sistema Application Load Balancer nel suo complesso. -
aws:elbv2:listener
: configura i listener nel sistema Application Load Balancer. Queste impostazioni vengono mappate alle impostazioni inaws:elb:listener
per i sistemi Classic Load Balancer. -
aws:elbv2:listenerrule
: configura le regole che instradano il traffico verso processi diversi, a seconda del percorso della richiesta. Le regole sono univoche per i sistemi Application Load Balancer. -
aws:elasticbeanstalk:environment:process
: configura i controlli dello stato e specifica porta e protocollo per i processi eseguiti sulle istanze del tuo ambiente. Le impostazioni relative a porta e protocollo sono mappate alle impostazioni relative a porta e protocollo dell'istanza inaws:elb:listener
per un listener su un sistema Classic Load Balancer. Le impostazioni relative ai controlli dello stato sono mappate alle impostazioni nei namespaceaws:elb:healthcheck
eaws:elasticbeanstalk:application
.
Esempio .ebextensions/ alb-access-logs .config
Il seguente file di configurazione consente di accedere ai caricamenti log per un ambiente con un sistema Application Load Balancer.
option_settings:
aws:elbv2:loadbalancer:
AccessLogsS3Bucket: amzn-s3-demo-bucket
AccessLogsS3Enabled: 'true'
AccessLogsS3Prefix: beanstalk-alb
Esempio .ebextensions/ alb-default-process .config
Il seguente file di configurazione modifica le impostazioni di adesione e controllo dello stato per il processo predefinito.
option_settings:
aws:elasticbeanstalk:environment:process:default:
DeregistrationDelay: '20'
HealthCheckInterval: '15'
HealthCheckPath: /
HealthCheckTimeout: '5'
HealthyThresholdCount: '3'
UnhealthyThresholdCount: '5'
Port: '80'
Protocol: HTTP
StickinessEnabled: 'true'
StickinessLBCookieDuration: '43200'
Esempio .ebextensions/ alb-secure-listener .config
Il seguente file di configurazione aggiunge un listener protetto e un processo corrispondente sulla porta 443.
option_settings:
aws:elbv2:listener:443:
DefaultProcess: https
ListenerEnabled: 'true'
Protocol: HTTPS
SSLCertificateArns: arn:aws:acm:us-east-2:123456789012:certificate/21324896-0fa4-412b-bf6f-f362d6eb6dd7
aws:elasticbeanstalk:environment:process:https:
Port: '443'
Protocol: HTTPS
Esempio .ebextensions/ alb-admin-rule .config
Il seguente file di configurazione aggiunge un listener protetto con una regola che instrada il traffico con il percorso di richiesta /admin
a un processo denominato admin
in ascolto sulla porta 4443.
option_settings:
aws:elbv2:listener:443:
DefaultProcess: https
ListenerEnabled: 'true'
Protocol: HTTPS
Rules: admin
SSLCertificateArns: arn:aws:acm:us-east-2:123456789012:certificate/21324896-0fa4-412b-bf6f-f362d6eb6dd7
aws:elasticbeanstalk:environment:process:https:
Port: '443'
Protocol: HTTPS
aws:elasticbeanstalk:environment:process:admin:
HealthCheckPath: /admin
Port: '4443'
Protocol: HTTPS
aws:elbv2:listenerrule:admin:
PathPatterns: /admin/*
Priority: 1
Process: admin