Come posso ottenere un routing basato sul percorso su un Application Load Balancer?
Sto eseguendo diversi microservizi dietro il mio Application Load Balancer. Desidero inoltrare le richieste a gruppi target specifici in base al percorso dell'URL.
Breve descrizione
Un Application Load Balancer consente di creare un listener con regole che inoltrano le richieste ai gruppi target in base all'URL. Questa funzionalità non è disponibile per altri tipi di sistema di bilanciamento del carico, come Classic Load Balancer, Network Load Balancer e Gateway Load Balancer. Le regole del modello di percorso vengono applicate solo al percorso dell'URL e non ai parametri di query dell'URL. Per ulteriori informazioni sui modelli di percorso, consulta Condizioni del percorso.
Per stabilire un routing basato sul percorso sull'Application Load Balancer, procedi come segue:
- Crea un gruppo target.
- Configura le regole del listener.
Prima di creare i gruppi target, assicurati che siano soddisfatti i seguenti prerequisiti:
- Hai lanciato le istanze Amazon Elastic Compute Cloud (Amazon EC2) in un Amazon Virtual Private Cloud (Amazon VPC). Per ulteriori informazioni, consulta Tutorial: Inizia a usare le istanze Linux di Amazon EC2.
- I gruppi di sicurezza di queste istanze Amazon EC2 consentono l'accesso sulla porta listener e sulla porta di controllo dello stato.
- L'applicazione viene distribuita sulle istanze EC2 che intendi registrare presso i gruppi target. Ad esempio, consulta Tutorial: Installa un server web LAMP su Amazon Linux 2022.
- Hai creato un Application Load Balancer.
Risoluzione
Supponi di disporre di due servizi, il servizio A e il servizio B, con applicazioni in esecuzione su questi servizi sulla porta 80. Ad esempio, il servizio A esegue un'applicazione sul percorso /svcA e il servizio B esegue un'applicazione sul percorso /svcB.
Crea un gruppo target
Dopo aver creato le istanze, registrale presso un gruppo target. In base alle regole del listener configurate sul sistema di bilanciamento, le richieste vengono inoltrate alle destinazioni registrate utilizzando la porta e il protocollo specificati per il gruppo di destinazione. Tuttavia, è possibile sovrascrivere le informazioni sulla porta quando si registrano individualmente le destinazioni. Per ulteriori informazioni, consulta Creare un gruppo target.
Ad esempio, supponiamo di creare due gruppi target con Protocollo HTTP e Porta 80, ciascuno con un'applicazione distribuita. Ad esempio, registri l'istanza EC2 che esegue il servizio A con target-group-A. Per questo gruppo target, puoi impostare HealthCheckProtocol come HTTP e HealthCheckPath come /svcA.
L'istanza EC2 che esegue il servizio B viene registrata con target-group-B. Per questo gruppo target, puoi impostare HealthCheckProtocol come HTTP e HealthCheckPath come /svcB.
Puoi aggiungere o rimuovere obiettivi da o verso i tuoi gruppi target in qualsiasi momento. Per ulteriori informazioni, consulta Registrare gli obiettivi con il gruppo target.
Dopo aver specificato un gruppo di destinazione in una regola per un listener, il load balancer monitora continuamente lo stato di tutte le destinazioni registrate presso il gruppo target che si trovano nella zona di disponibilità abilitata per il load balancer. Il sistema di bilanciamento del carico indirizza le richieste ai target registrati che sono integri. Per ulteriori informazioni, consulta Controlli dell'integrità per i tuoi gruppi target.
Configurazione delle regole del listener
Quando si crea un listener per un Application Load Balancer, è possibile definire una o più regole oltre alla regola predefinita. Una regola è costituita da una priorità, un'azione e una o più condizioni. Non è possibile definire le condizioni per la regola predefinita. Se non vengono soddisfatte le condizioni per nessuna delle regole non predefinite, viene eseguita l'azione per la regola predefinita.
Per ulteriori informazioni sulla priorità delle regole, consulta Riordinare le regole.
Per ulteriori informazioni sulle azioni delle regole, consulta Tipi di azioni delle regole.
Per ulteriori informazioni sulle condizioni delle regole, vedere Tipi di condizioni delle regole.
Per implementare il routing basato sul percorso su un Application Load Balancer, è necessario configurare le regole del listener. È necessario configurare una regola per ogni modello di percorso in base al quale si desidera indirizzare le richieste.
Ad esempio:
Listener regola 1: Se il percorso URL della richiesta contiene la stringa /svcA, inoltra la richiesta a target-group-A. Questo perché target-group-A include il servizio A che esegue un'applicazione sul percorso specificato.
Listener regola 2: Se il percorso URL della richiesta contiene la stringa /svcB, inoltra la richiesta a target-group-B. Questo perché target-group-B include il servizio B che esegue un'applicazione sul percorso specificato.
Per creare un nuovo listener HTTP, consulta Creare un listener HTTP.
Per creare un nuovo listener HTTPS, consulta Creare un listener HTTPS.
Per aggiornare le regole del listener con condizioni e azioni, procedi come segue:
- Apri la console Amazon EC2.
- Nel riquadro di navigazione, in Load Balancing, scegli Load Balancers.
- Selezionate il sistema di bilanciamento del carico, quindi scegliete Listeners.
- Per aggiornare il listener, scegli Visualizza/modifica regole.
- Scegli l'icona Aggiungi regole (il segno più) nella barra dei menu. In questo modo vengono aggiunte le icone Inserisci regola nelle posizioni in cui è possibile inserire una regola nell'ordine di priorità.
- Scegli una delle icone di inserimento delle regole aggiunte nel passaggio precedente.
- Per aggiungere una regola basata sul percorso per /svcA, scegli Aggiungi condizione, Percorso, quindi inserisci il modello di percorso /svcA. Per salvare la condizione, scegli l'icona del segno di spunta.
- Per aggiungere un'azione di inoltro, scegli Aggiungi azione, Inoltra a, quindi scegli il gruppo target group-A.
- Scegli Salva.
Ripeti i passaggi precedenti per il percorso /svcB con le seguenti modifiche:
- Per il passaggio 6, immettere il modello di percorso /svcB.
- Per il passaggio 7, scegli il gruppo target target-group-B.
Per ulteriori informazioni, consulta Regole del listener per l'Application Load Balancer.
Nota: le regole di routing basate sui percorsi cercano una corrispondenza esatta. In questo esempio, il routing basato sul percorso utilizza le definizioni dei percorsi /svcA e /svcB. Se l'applicazione richiede che le richieste vengano indirizzate più avanti lungo questi percorsi, ad esempio /svcA/doc o /svcB/doc, includi un carattere jolly quando scrivi la condizione per la regola di routing basata sul percorso. Usa modelli di percorso simili a /svcA* o /svcB* per assicurarti che tutti i documenti su questi percorsi vengano presi in considerazione durante il routing delle richieste.
Verifica il routing basato sul percorso
Per testare questo routing, copia il nome DNS dell'Application Load Balancer in un browser Web e aggiungi il percorso URL /svcA o /svcB. Quando il listener Application Load Balancer riceve la richiesta, inoltra la richiesta al gruppo di destinazione appropriato in base alla condizione del percorso.
Ad esempio, supponiamo che il nome DNS del tuo Application Load Balancer sia alb-demo-1234567890.us-west-2.elb.amazonaws.com:
- deve restituire il servizio A.
- deve restituire il servizio B.
Con il routing basato sul percorso, Application Load Balancer consente di ospitare più microservizi dietro un unico sistema di bilanciamento del carico utilizzando le regole del listener e i gruppi target. Pertanto, puoi impostare regole complesse per indirizzare le richieste dei client alle tue applicazioni. Oltre alle regole basate sui percorsi, puoi anche indirizzare le richieste a particolari applicazioni in base all'intestazione host, all'intestazione dell'agente utente e ai valori dei parametri di query. Per ulteriori informazioni, consulta Advanced request routing for AWS Application Load Balancers.
Informazioni correlate
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa