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 Application Load Balancer
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 HTTP le richieste sulla porta 80 e le distribuisce alle istanze dell'ambiente. Puoi aggiungere un listener sicuro sulla porta 443 con un certificato per decrittografare il HTTPS traffico, configurare il comportamento di health check e inviare i log di accesso dal load balancer a un bucket Amazon Simple Storage Service (Amazon S3).
Nota
A differenza di un Classic Load Balancer o di un Network Load Balancer, un Application Load Balancer non può avere un livello di trasporto (livello 4) o/listener. TCP SSL TLS Supporta solo gli ascoltatori. HTTP HTTPS Inoltre, non può utilizzare l'autenticazione di backend per autenticare le HTTPS connessioni tra il load balancer e le istanze di backend.
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 Application Load Balancer, l'ambiente deve avere un valore predefinito o personalizzato VPC e deve avere un ruolo di servizio con il set di autorizzazioni standard. 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 HTTP traffico in entrata sulla porta 80 verso un processo denominato default.
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 HTTPS protocollo, configura SSL le impostazioni.
Prima di configurare un HTTPS listener, assicuratevi di disporre di un SSL certificato valido. Esegui una di queste operazioni:
-
Se AWS Certificate Manager (ACM) è disponibile nella tua AWS regione, crea o importa un certificato utilizzandoACM. Per ulteriori informazioni sulla richiesta di un ACM certificato, consulta Richiedere un certificato nella Guida per l'AWS Certificate Manager utente. Per ulteriori informazioni sull'importazione di certificati di terze parti inACM, vedere Importazione di certificati nella Guida per l'AWS Certificate Manager utente.
-
Se non ACM è disponibile nella tua AWS regione, carica il certificato e la chiave esistenti per. IAM Per ulteriori informazioni sulla creazione e il caricamento di certificati suIAM, consulta Lavorare con i certificati del server nella Guida per l'IAMutente.
Per ulteriori dettagli sulla configurazione HTTPS e l'utilizzo dei certificati in Elastic Beanstalk, consulta. Configurazione 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 ascolta il traffico in entrata HTTP sulla porta 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:
-
HTTPcode — Il codice di HTTP stato che indica un processo sano.
-
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 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.
-
Condizioni di corrispondenza: un elenco di condizioni di richiesta a cui si URL applica la regola. Esistono due tipi di condizioni: HostHeader(la parte URL del dominio) e PathPattern(la parte URL del percorso). È 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. AWS Identity and Access Management IAM 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 l'Application Load Balancer del tuo ambiente in modo da soddisfare questi requisiti, rimuovi il listener predefinito, aggiungi un HTTPS listener, indichi che il processo predefinito ascolta la porta 443 sulla HTTPS porta 443 e aggiungi un processo e una regola listener per il traffico amministrativo 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
. Per il SSLcertificato, seleziona il certificato. ARN 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.
-
Disabilita il HTTP listener della porta predefinita 80. Per il listener predefinito, disattiva l'opzione Enabled (Abilitato).
-
Configura il processo predefinito suHTTPS. 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 PathPatternun valore./admin/*
Per Processo, selezionareadmin
.
Configurazione di un Application Load Balancer utilizzando l'EB CLI
L'EB CLI richiede di scegliere un tipo di load balancer durante l'esecuzione. eb create
$ 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 alb-access-logs.ebextensions/ .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