Informazioni sui programmi di bilanciamento del carico dell'applicazione
Utilizza IBM Cloud® Application Load Balancer for VPC (ALB) per distribuire il traffico tra più istanze di server all’interno della stessa regione della tua VPC.
Se hai carichi di lavoro pubblici e privati e traffico di livello 7, utilizza un programma di bilanciamento del carico dell'applicazione.
Tipi di bilanciatori di carico delle applicazioni
Come descritto in Panoramica dei programmi di bilanciamento del carico per VPC, puoi creare un ALB pubblico o privato.
Questa tabella mostra un confronto tra le caratteristiche pubbliche e private.
| Funzione | Programma di bilanciamento del carico pubblico | Programma di bilanciamento del carico privato |
|---|---|---|
| Accessibile su Internet? | Sì, con un FQDN (fully qualified domain name) | No, solo client interni, sulla stessa regione e VPC. |
| Accetta tutto il traffico? | Sì | Sì (la restrizione che consentiva di accettare solo il traffico proveniente dallo spazio di indirizzi RFC-1918 è stata rimossa) |
| Come si registra un nome di dominio? | Indirizzi IP pubblici | Indirizzi IP privati |
Programma di bilanciamento del carico dell'applicazione pubblico
A un'istanza di bilanciatore di carico di applicazioni pubbliche viene assegnato un nome di dominio completamente qualificato (FQDN) accessibile al pubblico, che deve essere utilizzato per accedere alle applicazioni ospitate dietro il bilanciatore di carico. Questo nome dominio può essere registrato con uno o più indirizzi IP pubblici.
Nel tempo, il numero e il valore di questi indirizzi IP pubblici potrebbero cambiare a causa delle attività di manutenzione e ridimensionamento. Le istanze dei server virtuali di back-end che ospitano l'applicazione devono essere in esecuzione nella stessa regione e all'interno della stessa VPC.
Utilizza l'FQDN assegnato per inviare traffico all'ALB (application load balancer) pubblico per evitare i problemi di connettività alle tue applicazioni durante le attività di ridimensionamento o di manutenzione del sistema.
Programma di bilanciamento del carico dell'applicazione privato
Un programma di bilanciamento del carico dell'applicazione privato è accessibile tramite le tue sottoreti private che hai configurato per creare il programma di bilanciamento del carico.
Analogamente a un bilanciatore di carico delle applicazioni pubblico, un FDQN viene assegnato all'istanza del bilanciatore di carico delle applicazioni privato. Tuttavia, questo nome dominio viene registrato con uno o più indirizzi IP privati.
Nel corso del tempo, le operazioni IBM Cloud potrebbero modificare il numero e il valore dei tuoi indirizzi IP privati assegnati, in base alle attività di manutenzione e ridimensionamento. Le istanze dei server virtuali di back-end che ospitano l'applicazione devono essere in esecuzione nella stessa regione e all'interno della stessa VPC.
Utilizza l'FQDN assegnato per inviare traffico all'ALB (application load balancer) privato per evitare i problemi di connettività alle tue applicazioni durante le attività di ridimensionamento o di manutenzione del sistema.
Metodi di bilanciamento del carico
Sono disponibili tre metodi di bilanciamento del carico per distribuire il traffico tra i server applicativi back-end:
ROUND-ROBIN
Round-robin è il metodo di bilanciamento del carico predefinito. Con questo metodo, un bilanciatore di carico delle applicazioni inoltra le connessioni in entrata dei client ai server back-end secondo il metodo round-robin. Di conseguenza, tutti i server di back-end ricevono all'incirca un numero uguale di connessioni client.
Round-robin ponderato
Con questo metodo, un bilanciatore di carico delle applicazioni inoltra le connessioni in entrata dei client ai server di back-end in proporzione al peso assegnato a tali server. A ciascun server viene assegnato un peso 50 predefinito
pari a. Il peso può essere personalizzato su qualsiasi valore compreso nell'intervallo 0- 100.
Ad esempio, se i server applicativi A, B e C hanno i pesi 60, 60 e 30, allora i server A e B ricevono lo stesso numero di connessioni, mentre il server C ne riceve la metà.
L'impostazione del peso di un server su 0 significa che a tale server non verrà inoltrata alcuna nuova connessione ma l'eventuale traffico esistente continua a fluire. L'utilizzo di un peso pari a 0 può aiutare a
disattivare il server in modo ordinato e a rimuoverlo dalla rotazione dei servizi.
I valori di peso del server sono applicabili solo con il metodo round-robin ponderato. Vengono ignorati con i metodi di bilanciamento del carico round - robin e least - connections.
Connessioni minime
Con questo metodo, l'istanza del server back-end che gestisce il minor numero di connessioni in un determinato momento riceve la connessione del client successivo.
Listener front-end e pool di back-end
I listener front-end sono porte dell'applicazione del programma di bilanciamento del carico per la ricezione di richieste in entrata, mentre i pool di back-end sono i server delle applicazioni dietro i programmi di bilanciamento del carico.
Linee guida per l'utilizzo dei listener
Esaminare le seguenti istruzioni per i listener di front-end:
- È possibile definire fino a 10 listener front-end e associarli ai pool back-end presenti sui server delle applicazioni back-end.
- L'FQDN assegnato al tuo programma di bilanciamento del carico e le porte del listener di front-end sono esposti a internet pubblico. Le richieste utente in entrata vengono ricevute su queste porte.
- I protocolli supportati per gli ascoltatori front-end e i pool back-end sono HTTP, HTTPS e TCP.
- Puoi configurare un listener di front-end HTTP/HTTPS con un pool di back-end HTTP/HTTPS.
- HTTP/2 è supportato solo per gli ascoltatori.
- I listener e i pool HTTPS e HTTPS sono intercambiabili.
- Si può configurare solo un ascoltatore front-end TCP con un pool back-end TCP.
- Puoi collegare fino a 50 VSI (virtual server instance) a un pool di back-end. Il traffico viene inviato ad ogni istanza sulla relativa porta dati specificata. Non è necessario che questa porta dati sia la stessa della porta del listener front-end.
- gli endpoint "solo privati" per Secrets Manager non sono supportati dagli ascoltatori di HTTPS. Per configurare un ascoltatore HTTPS in un ALB, è necessario caricare i certificati TLS in un endpoint "Pubblico e privato".
HTTPS ascoltatore di reindirizzamento
HTTPS gli ascoltatori di reindirizzamento reindirizzano il traffico da un ascoltatore HTTP a un ascoltatore HTTPS. Questa azione non richiede l'applicazione di alcuna regola sull'ascoltatore.
Ad esempio, se un servizio è in ascolto sulla porta 443 con HTTPS e un utente tenta di accedere al servizio sulla porta 80 utilizzando HTTP, la richiesta viene automaticamente reindirizzata alla porta 443 con HTTPS.
Se i criteri sono presenti nell'ascoltatore di reindirizzamento HTTPS, i criteri vengono valutati per primi. Se non esistono policy corrispondenti, la richiesta viene reindirizzata a un listener HTTPS configurato.
HTTPS proprietà degli ascoltatori di reindirizzamento
| Proprietà | Descrizione |
|---|---|
| Listener | L'ascoltatore HTTPS a cui viene reindirizzata una richiesta. |
| Codice di stato HTTP | Il codice di stato della risposta restituita dal bilanciatore di carico dell'applicazione. I valori ammessi sono: 301, 302, 303, 307 o 308. |
| URI | L'URI relativo a cui reindirizza una richiesta. Questa proprietà è facoltativa. |
Politiche di failsafe del pool di back-end
Quando si modifica un pool back-end in un bilanciatore di carico, è possibile specificare una delle seguenti azioni di politica failsafe:
- Inoltro: Il bilanciatore di carico instrada le richieste verso un pool di backup designato. In questo modo si ottiene un percorso di failover pulito verso un altro set di server applicativi. È necessario che un pool di backup esistente sia configurato e pronto a ricevere il traffico.
- Drop: il bilanciatore di carico elimina tutte le richieste in arrivo e il client non riceve alcuna risposta.
- Fallito: Il bilanciatore di carico rifiuta le richieste con un codice di stato HTTP 503 ("Service Unavailable"), informando il cliente che il servizio è temporaneamente inattivo.
È possibile scegliere una destinazione failsafe da un elenco di pool di backup applicabili.
Requisiti del pool Failsafe Target (se l'azione è Forward):
- devono appartenere allo stesso bilanciatore di carico
- devono avere un protocollo uguale o compatibile ( TCP è compatibile solo con TCP, ma qualsiasi combinazione di HTTP e HTTPS è compatibile)
Solo i bilanciatori di carico delle applicazioni consentono di associare più di un pool a un singolo ascoltatore. Assicurarsi che ci sia almeno un pool già esistente nel bilanciatore di carico.
In una configurazione di bilanciamento del carico, un ascoltatore è considerato la risorsa padre. È possibile associare i pool a quell'ascoltatore in due modi: facendovi riferimento direttamente o indirettamente. Per l'associazione diretta,
configurare il pool come default_pool dell'ascoltatore. Per l'associazione indiretta, fare riferimento al pool da un altro pool attraverso una relazione failsafe_policy.target, assicurandosi che l'altro pool sia
già collegato all'ascoltatore.
Elasticità
Il programma di bilanciamento del carico dell'applicazione viene ridimensionato aggiungendo risorse di elaborazione quando il carico aumenta.
Crittografia SSL end-to-end
La configurazione di un listener HTTPS con un pool HTTPS abilita la crittografia SSL end-to-end. L'ALB termina la richiesta in entrata HTTPS a livello del listener front-end e stabilisce una connessione HTTPS con le istanze back-end. La crittografia end-to-end consente di crittografare tutto il traffico che passa attraverso il bilanciatore di carico verso i nodi del back-end tramite HTTPS.
Per configurare la crittografia SSL end-to-end:
- Configurare un listener front-end di HTTPS con il certificato SSL, proprio come si farebbe per configurare l'offloading di SSL.
- Configurare un pool di back-end HTTPS.
- Aggiungi la tua istanza di membro di back-end al pool di back-end HTTPS. Assicurati che le istanze dei membri del back-end siano configurate per gestire il traffico proveniente dall' HTTPS.
- Configura il controllo di integrità con il tipo HTTPS per eseguire controlli di integrità crittografati con i tuoi membri di back-end.
Un ALB (application load balancer) non verifica i certificati SSL delle istanze di membro di back-end.
Ridimensionamento orizzontale
Un bilanciatore di carico delle applicazioni regola automaticamente la propria capacità in base al carico. Quando si verifica questa regolazione, potresti osservare una modifica nel numero di indirizzi IP associati al nome DNS del programma di bilanciamento del carico.
Supporto MZR
IBM Cloud Application Load Balancer for VPC supporta le regioni multizona (MZR). Puoi ottenere l'alta disponibilità e la ridondanza distribuendo un programma di bilanciamento del carico dell'applicazione con sottoreti da zone differenti. Quando le sottoreti da più zone vengono utilizzate per eseguire il provisioning di un programma di bilanciamento del carico dell'applicazione, le applicazioni del programma di bilanciamento vengono distribuite a più zone.
Integrazione con i gruppi di istanze
IBM Cloud Application Load Balancer for VPC si integra con i gruppi di istanze, che possono auto scale i membri di back - end. I membri del pool vengono aggiunti ed eliminati in modo dinamico in base all'utilizzo e ai requisiti.
Inoltro log percorso dati
Quando la registrazione del percorso dati è abilitata, i registri del bilanciatore di carico vengono inoltrati al IBM Cloud Logs servizio, dove è possibile visualizzare i registri del percorso dati.
Supporto HTTP2
I bilanciatori di carico delle applicazioni supportano il traffico end-to-end HTTP2 e funzionano con i protocolli di ascolto impostati come HTTPS o TCP.
supporto WebSocket
WebSocket fornisce canali di comunicazione full-duplex su una singola connessione TCP. I bilanciatori di carico delle applicazioni supportano WebSocket con ogni tipo di protocollo di ascolto ( HTTP / HTTPS / TCP ).
Elevata disponibilità e bilanciamento del carico delle applicazioni
Per assicurarsi che l'alta disponibilità (HA) funzioni con l'ALB, collegare tre sottoreti da zone diverse all'ALB e distribuire le appliance in queste zone. Per fare ciò, devi prima selezionare le sottoreti durante il processo di creazione dell'ALB.
È possibile selezionare due sottoreti in zone diverse (ad esempio us-south-1 e us-south-2). In questo modo vengono creati gli indirizzi IP dell'ALB (come gli IP dell'appliance) in due sottoreti diverse.
È possibile farlo anche con gli ALB già esistenti. Andate alla sezione Risorse allegate nella pagina dei dettagli del vostro bilanciatore di carico. Dalla sezione Sottorete, fare clic su Modifica sottoreti. Quindi, aggiungi altre sottoreti. L'ALB entra nello stato "Migrazione". Al termine della migrazione, si ottiene un nuovo IP per l'apparecchio dalla sottorete appena collegata. Ora disponi di due indirizzi IP provenienti da sottoreti diverse in zone diverse.