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.

Confronto tra bilanciatori di carico pubblici e privati
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?
(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

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.

Offload SSL e autorizzazioni richieste

L'offloading Secure Sockets Layer ( SSL ) consente al bilanciatore di carico delle applicazioni di terminare tutte le connessioni HTTPS in entrata.

Quando un listener HTTPS è configurato con un pool HTTP, la richiesta HTTPS viene terminata al front-end e il programma di bilanciamento del carico stabilisce una comunicazione HTTP di testo semplice con l'istanza del server di back-end. Con queste tecnica, le attività di crittografia o decrittografia e gli handshake SSL a uso intensivo della CPU vengono spostati dalle istanze del server di back-end, consentendo loro di utilizzare tutti i loro cicli di CPU per l'elaborazione del traffico delle applicazioni.

L'offload SSL richiede che tu fornisca un certificato SSL perché l'ALB (application load balancer) esegua le attività di offload SSL. È possibile gestire i certificati di SSL attraverso il menu IBM Cloud Secrets Manager.

Puoi creare un'autorizzazione mediante Autorizzazioni IAM. Assicurati di scegliere Servizi dell'infrastruttura VPC come servizio di origine, quindi seleziona Risorse specifiche. Clic Seleziona un attributo e scegli Tipo di risorsa dall'elenco. Selezionare Bilanciatore del carico per VPC come tipo di risorsa e fare clic Prossimo. Per il servizio Target, selezionare Secrets Manager. Imposta l'accesso all'istanza del servizio di destinazione su " Tutte le istanze " oppure sulla tua specifica istanza di IBM Cloud Secrets Manager. Assegna il ruolo di accesso al servizio Scrittore (Writer). Per ulteriori informazioni, vedi Concessione dell'accesso tra i servizi.

Per evitare errori, è necessario stabilire l'autorizzazione richiesta tra il bilanciatore di carico e IBM Cloud Secrets Manager. Inoltre, l'aggiornamento dei certificati in Secrets Manager non comporta l'aggiornamento automatico dell'ALB. Perché il tuo programma di bilanciamento del carico rifletta le modifiche nel certificato, effettua un piccolo aggiornamento (come la modifica dell'intervallo di controllo dello stato o del valore di timeout) per causare un aggiornamento. Questa azione aggiorna il certificato sul bilanciatore di carico in modo che corrisponda al certificato in Secrets Manager. È quindi possibile ripristinare le modifiche apportate ai valori originali.

Transport Layer Security ( TLS ) Sono supportati 1.2 e 1.3. Tuttavia, TLS 1.3 viene utilizzato per impostazione predefinita, a meno che non si configuri specificamente il lato client per utilizzare 1.2. I bilanciatori di carico delle applicazioni accettano tutti i cifrari TLS 1.3 supportati inviati dalla richiesta lato client.

Sono supportate le seguenti cifrature (in ordine di precedenza):

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

Individuazione del CRN del certificato

Quando si configura l'autenticazione per un bilanciatore di carico delle applicazioni durante il provisioning nella console, è possibile scegliere di specificare il certificato Secrets Manager e SSL o il CRN del certificato. Questa operazione potrebbe essere utile se non si riesce a visualizzare il sito Secrets Manager nel menu a discesa, il che significa che non si ha accesso all'istanza Secrets Manager. Ricorda che devi inserire il CRN se utilizzi l'API per creare un ALB.

Per ottenere il CRN, è necessario disporre dell'autorizzazione per accedere all'istanza Secrets Manager.

Per trovare il CRN di un certificato, seguire queste istruzioni:

  1. Nel IBM Cloud console, vai a Icona del menu di navigazione Icona del menu di navigazione > Elenco delle risorse.
  2. Fare clic su Espandi sicurezza, quindi selezionare il sito Secrets Manager per il quale si desidera trovare il CRN.
  3. Selezionare un punto qualsiasi nella riga della tabella del certificato per aprire il pannello laterale dei dettagli del certificato. È riportato il CRN del certificato.

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:

  1. Configurare un listener front-end di HTTPS con il certificato SSL, proprio come si farebbe per configurare l'offloading di SSL.
  2. Configurare un pool di back-end HTTPS.
  3. 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.
  4. 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.