Panoramica della migrazione

Questa pagina fornisce una panoramica delle differenze tra il bilanciatore del carico delle applicazioni esterno globale e il bilanciatore del carico delle applicazioni classico, nonché una panoramica dettagliata di come eseguire la migrazione delle risorse del bilanciatore del carico delle applicazioni classico esistenti al bilanciatore del carico delle applicazioni esterno globale.

Per sfruttare le funzionalità di gestione avanzata del traffico del bilanciatore del carico delle applicazioni esterno globale, ti consigliamo di eseguire la migrazione delle risorse del bilanciatore del carico delle applicazioni classico all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

Confrontare i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni esterni globali

Prima di eseguire la migrazione delle risorse, comprendi le differenze tra i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni esterni globali.

Differenze nelle funzionalità

Le seguenti funzionalità non sono supportate con il bilanciatore del carico delle applicazioni esterno globale. Sono disponibili solo con il bilanciatore del carico delle applicazioni classico:

Differenze nel piano dati

La seguente tabella evidenzia le differenze nel piano dati tra il bilanciatore del carico delle applicazioni classico e il bilanciatore del carico delle applicazioni esterno globale. Queste differenze influiscono sul modo in cui gli bilanciatori del carico rispondono ad alcuni eventi comuni.

Evento Risposta del bilanciatore del carico delle applicazioni classico Risposta del bilanciatore del carico delle applicazioni esterno globale
Stato/codici di errore
Tutti i backend sono in stato non integro Restituisce HTTP 502 Restituisce HTTP 503
La richiesta utilizza un cifrario SSL vietato Restituisce HTTP 502 Restituisce HTTP 503
Reimpostazione anticipata della connessione upstream dal backend Restituisce HTTP 502 Restituisce HTTP 503
Aggiornamento della connessione non riuscito (ad esempio durante l'upgrade a Websockets) Restituisce HTTP 400 Restituisce HTTP 403
L'intestazione è troppo grande Restituisce HTTP 413 Restituisce HTTP 431
Quote e limiti
Configurazione della mappa URL Esistono differenze significative nei limiti di configurazione della mappa URL tra i due bilanciatori del carico. Per maggiori dettagli, consulta la documentazione relativa alle quote: mappe URL.
Gestione delle intestazioni
La richiesta utilizza un metodo HTTP personalizzato senza corpo Aggiunge l'intestazione Transfer Encoding: Chunked alla richiesta inviata al backend Aggiunge l'intestazione Content-Length: 0 alla richiesta inviata al backend
Formato dell'intestazione X-Forwarded-For aggiunta alle richieste inviate al backend Utilizza il delimitatore ", " tra gli IP Utilizza il delimitatore "," tra gli IP (nessuno spazio dopo la virgola)
Mantenimento delle maiuscole delle intestazioni Le lettere maiuscole dell'intestazione vengono conservate Tutte le chiavi dell'intestazione vengono trasformate in minuscole
Intestazioni ripetute con lo stesso nome Consentito Le intestazioni ripetute possono essere combinate in un'unica intestazione, con i valori aggiunti in ordine e separati da virgole, come consentito dal documento RFC 7230.
(Solo HTTP/1.1) Nome intestazione non valido (ad es. caratteri non supportati nell'intestazione) Consentito (per HTTP/1.1) Restituisce HTTP 502 (per HTTP/1.1)
(Solo HTTP/1.1) Intestazione Content-Length ripetuta (ma uguale) nella richiesta Consentito (per HTTP/1.1) Restituisce HTTP 502 (per HTTP/1.1)
(Solo HTTP/1.1) Più host nell'intestazione Quando vengono aggiunti due o più host e il primo è valido, l'intestazione viene accettata Quando vengono aggiunti due o più host e uno o più non sono validi, il bilanciatore del carico restituisce HTTP 502
(solo HTTP/1.1) Connection: Keep-Alive intestazione Aggiunge Keep-Alive header alle richieste inviate al backend per impostazione predefinita Non aggiunge questa intestazione per impostazione predefinita
Gestione delle richieste
Barre oblique inverse nella richiesta L'URL non è stato modificato Si converte in barra
Unire le barre duplicate nella richiesta Lascia gli slash non uniti Unisce le barre oblique
"#" nel percorso della richiesta Consentito Restituisce HTTP 400
(Solo HTTP/1.1) Caratteri non consentiti nel percorso della richiesta (ad esempio, "\\x7f\\x7f") Consentito (per HTTP/1.1) Restituisce HTTP 502 (per HTTP/1.1)
Distribuzione del traffico (configurazione della mappa di URL)
La richiesta del client include un numero di porta Il numero di porta viene ignorato anche se hai configurato host con porte nella mappa URL. Viene considerato solo il nome host. Ad esempio, le richieste per example.com:5000 vengono associate al servizio di backend per example.com. Vengono presi in considerazione sia il nome host sia il numero di porta. Ad esempio, le richieste per example.com:5000 vengono associate al servizio di backend per example.com:5000. Se non viene trovata una corrispondenza, viene utilizzato il servizio di backend predefinito.

Per scoprire di più sulle differenze e sulle funzionalità supportate, consulta Confronto delle funzionalità dei bilanciatori del carico e Panoramica di Application Load Balancer.

Esegui la migrazione da un bilanciatore del carico delle applicazioni classico a uno esterno globale

Per eseguire la migrazione al bilanciatore del carico delle applicazioni esterno globale, modifica lo schema di bilanciamento del carico delle risorse di bilanciamento del carico, in particolare i servizi di backend e le regole di inoltro, da EXTERNAL a EXTERNAL_MANAGED. Per farlo, esegui una serie di passaggi di migrazione in cui puoi testare parti del traffico di rete con il nuovo schema di bilanciamento del carico prima di completare effettivamente la migrazione. Durante la migrazione delle risorse, puoi controllare la percentuale di richieste inviate all'infrastruttura del bilanciatore del carico delle applicazioni classico o all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

Il seguente diagramma mostra gli schemi di bilanciamento del carico delle risorse di bilanciamento del carico prima e dopo la migrazione.

Procedura di migrazione per le risorse del bilanciatore del carico delle applicazioni classico.
Procedura di migrazione per le risorse del bilanciatore del carico delle applicazioni classico (fai clic per ingrandire).

Nel diagramma precedente, tieni presente quanto segue:

  • Prima della migrazione delle risorse, tutte le richieste utilizzano l'infrastruttura classica del bilanciatore del carico delle applicazioni.
  • Durante la migrazione delle risorse, alcune richieste vengono inviate all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale e le restanti all'infrastruttura del bilanciatore del carico delle applicazioni classico.
  • Dopo la migrazione delle risorse, tutte le richieste utilizzano l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

Per garantire una transizione senza problemi, esegui la migrazione delle seguenti risorse del bilanciatore del carico delle applicazioni classico nell'ordine specificato:

  1. Esegui la migrazione di tutti i servizi di backend collegati alle regole di inoltro del bilanciatore del carico.

  2. Esegui la migrazione di tutti i bucket di backend collegati alle regole di forwarding del bilanciatore del carico. Questo viene fatto a livello di regola di forwarding perché i bucket di backend non hanno schemi di bilanciamento del carico.

  3. Esegui la migrazione delle regole di inoltro del bilanciatore del carico.

    Puoi eseguire la migrazione di una regola di forwarding solo dopo che è già stata eseguita la migrazione di tutti i servizi di backend e dei bucket di backend associati alla regola di forwarding.

Stati di migrazione

Esegui la migrazione delle risorse impostandole su stati diversi prima di modificare il loro schema di bilanciamento del carico su EXTERNAL_MANAGED.

  1. PREPARE: imposta una risorsa su questo stato per prepararla alla migrazione.
  2. TEST_BY_PERCENTAGE: per testare una risorsa preparata, impostala su questo stato per inviare una percentuale del traffico di rete. Questa fase è facoltativa.
  3. TEST_ALL_TRAFFIC: imposta una risorsa su questo stato per inviare tutto il traffico di rete alla risorsa tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale anziché l'infrastruttura del bilanciatore del carico delle applicazioni classico.

Processo di migrazione

Per evitare tempi di riposo, esegui la migrazione delle risorse in un ordine specifico dall'infrastruttura del bilanciatore del carico delle applicazioni classico all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, quindi modifica lo schema di bilanciamento del carico da EXTERNAL a EXTERNAL_MANAGED per completare la migrazione.

  1. Esegui la migrazione dei servizi di backend del bilanciatore del carico.

    Ripeti i seguenti passaggi per ogni servizio di backend.

    1. Prepara il servizio di backend per la migrazione.

      Prima che qualsiasi traffico possa essere inviato tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, imposta lo stato del servizio di backend su PREPARE. In questo modo, il servizio di backend viene preparato per gestire il traffico di rete dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale. Un servizio di backend richiede un po' di tempo (circa sei minuti) per essere pronto a inviare traffico tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    2. (Facoltativo) Testa il servizio di backend preparato.

      Dopo che il servizio di backend è nello stato PREPARE, impostalo su TEST_BY_PERCENTAGE e imposta una percentuale del traffico di rete del bilanciatore del carico delle applicazioni classico sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

      Anche se questa fase è facoltativa, ti consigliamo di testare il traffico prima di eseguire la migrazione di un servizio di backend. Inizia con un valore percentuale ridotto e monitora i log delle risorse. Se il servizio di backend si comporta come previsto, aumenta gradualmente la percentuale fino al 100%.

      Nello stato TEST_BY_PERCENTAGE, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    3. Invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico al servizio di backend preparato.

      Una volta completato il test del servizio di backend, imposta il relativo stato su TEST_ALL_TRAFFIC e invia tutto il traffico di rete dell'Application Load Balancer classico al servizio di backend preparato. Un servizio di backend richiede un po' di tempo (circa sei minuti) per essere pronto a gestire il traffico di rete.

      Nello stato TEST_ALL_TRAFFIC, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    4. Modifica lo schema di bilanciamento del carico del servizio di backend sottoposto a migrazione in EXTERNAL_MANAGED.

      Dopo aver testato il servizio di backend preparato sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, modifica il relativo schema di bilanciamento del carico impostandolo su EXTERNAL_MANAGED. La migrazione completa di un servizio di backend richiede un po' di tempo (circa sei minuti). Dopo che lo schema di bilanciamento del carico del servizio di backend diventa EXTERNAL_MANAGED, puoi utilizzare le funzionalità avanzate dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

  2. Esegui la migrazione dei bucket di backend del bilanciatore del carico. Questo viene eseguito a livello di regola di inoltro perché i bucket di backend non hanno schemi di bilanciamento del carico.

    Ripeti i seguenti passaggi per ogni bucket.

    1. Prepara il bucket di backend per la migrazione.

      Prima che qualsiasi traffico possa essere inviato tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, imposta lo stato del bucket di backend su PREPARE e aspetta un po' di tempo (circa sei minuti).

    2. (Facoltativo) Testa il servizio di backend preparato.

      Dopo che il bucket di backend è nello stato PREPARE, impostalo su TEST_BY_PERCENTAGE e imposta una percentuale del traffico di rete del bilanciatore del carico delle applicazioni classico sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    3. Invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico al bucket di backend preparato.

      Imposta lo stato del bucket di backend su TEST_ALL_TRAFFIC e inviavi tutto il traffico di rete dell'Application Load Balancer classico. Un bucket di backend richiede un po' di tempo (circa sei minuti) per essere pronto a gestire il traffico di rete.

      Nello stato TEST_ALL_TRAFFIC, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

  3. Esegui la migrazione delle regole di inoltro.

    Per ogni regola di forwarding, imposta lo schema di bilanciamento del carico della regola di inoltro su EXTERNAL_MANAGED e attendi un po' di tempo (circa sei minuti). Dopo che lo schema di bilanciamento del carico della regola di forwarding diventa EXTERNAL_MANAGED, puoi utilizzare le funzionalità avanzate dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

Per una procedura dettagliata, consulta Eseguire la migrazione delle risorse dall'Application Load Balancer classico.

Il seguente diagramma mostra le risorse Application Load Balancer classiche nei diversi stati della migrazione.

Stati di migrazione delle risorse del bilanciatore del carico delle applicazioni classico.
Stati di migrazione delle risorse del bilanciatore del carico delle applicazioni classico (fai clic per ingrandire).

Dopo aver eseguito la migrazione di una risorsa, se vuoi ripristinare il bilanciamento del carico classico, modifica lo schema di bilanciamento del carico entro 90 giorni dalla migrazione. Non puoi eseguire il rollback di una risorsa dopo il periodo di 90 giorni.

Utilizzo dell'affinità sessione

Tieni presenti i seguenti accorgimenti durante la migrazione dei servizi di backend del bilanciatore del carico delle applicazioni classico con affinità sessione:

  • L'impostazione di un valore per TEST_BY_PERCENTAGE reindirizza parte del traffico che ha come target il bilanciatore del carico delle applicazioni classico al bilanciatore del carico delle applicazioni esterno globale. In questo modo, viene interrotta l'affinità dell'IP client. La modifica della percentuale di migrazione (ad esempio, l'aumento del 10%) interrompe l'affinità sessione per la stessa percentuale di indirizzi IP dei client (10% in questo esempio), finché l'affinità non viene ristabilita nella richiesta successiva.

  • L'impostazione di un valore per TEST_BY_PERCENTAGE reindirizza la percentuale di trafico senza un cookie di sessione al bilanciatore del carico delle applicazioni esterno globale. Inoltre, reindirizza tutto il traffico con un cookie di sessione al parco di bilanciatori del carico che ha generato il cookie.

  • Se imposti un valore per TEST_BY_PERCENTAGE pari al 0%, se non lo imposti o se imposti il servizio di backend sullo stato PREPARE, tutti i cookie esistenti indirizzati al bilanciatore del carico delle applicazioni esterno globale vengono invalidati.

  • La modifica dello schema di bilanciamento del carico del servizio di backend su EXTERNAL_MANAGED invalida tutti i cookie generati dal parco risorse di bilanciatori del carico delle applicazioni classici. In questo modo, puoi eseguire il rollback del traffico se si verifica un problema con l'applicazione che utilizza il bilanciatore del carico delle applicazioni esterno globale. Ad esempio, se un client presenta un cookie del fleet dell'Application Load Balancer classico, ma lo schema del servizio di backend è EXTERNAL_MANAGED, il cookie del client non viene rispettato. Il bilanciatore del carico delle applicazioni esterno globale ignora il cookie e ne crea uno nuovo.

Esegui il rollback delle risorse migrate

Dopo aver eseguito la migrazione di una risorsa, se vuoi ripristinarla dall'infrastruttura bilanciatore del carico delle applicazioni esterno globale all'infrastruttura bilanciatore del carico delle applicazioni classica, puoi farlo entro 90 giorni dalla modifica dello schema di bilanciamento del carico.

Il rollback di un servizio di backend allo schema EXTERNAL richiede il rollback della regola di forwarding. Il rollback di una regola di forwarding allo schema EXTERNAL non richiede il rollback dei servizi di backend.

Per eseguire il rollback delle risorse:

  1. Rimuovi eventuali nuove funzionalità avanzate di gestione del traffico del bilanciatore del carico delle applicazioni esterno globale configurate sulla risorsa.
  2. Ripristina le regole di inoltro.

    Modifica lo schema di bilanciamento del carico delle regole di inoltro da EXTERNAL_MANAGED a EXTERNAL.

  3. Esegui il rollback dei bucket di backend.

    1. Imposta lo stato di migrazione dei bucket di backend su TEST_ALL_TRAFFIC e attendi un po' di tempo (circa sei minuti).
    2. (Facoltativo) Per ridurre il traffico, imposta lo stato di migrazione dei bucket di backend su TEST_BY_PERCENTAGE e imposta una percentuale del traffico.
    3. Imposta lo stato di migrazione dei bucket di backend su PREPARE.
    4. Ripristina i bucket di backend agli stati precedenti alla migrazione.
  4. Esegui il rollback dei servizi di backend.

    1. Imposta lo stato di migrazione dei servizi di backend su TEST_ALL_TRAFFIC e aspetta un po' di tempo (circa sei minuti).
    2. (Facoltativo) Per ridurre il traffico, imposta lo stato di migrazione dei servizi di backend su TEST_BY_PERCENTAGE e imposta una percentuale del traffico.
    3. Imposta lo stato di migrazione dei servizi di backend su PREPARE.
    4. Ripristina i servizi di backend agli stati precedenti alla migrazione.

Per una procedura dettagliata passo passo, consulta Eseguire il rollback delle risorse migrate al bilanciatore del carico delle applicazioni classico.

Monitorare il processo di migrazione

Durante la migrazione delle risorse, puoi controllare i relativi schemi di bilanciamento del carico visualizzando quanto segue:

  • Le dashboard di logging e monitoraggio del bilanciatore del carico delle applicazioni esterno globale. Per ulteriori informazioni, consulta Logging e monitoraggio del bilanciatore del carico delle applicazioni esterno globale.

  • I valori delle seguenti intestazioni di richiesta e risposta HTTP:

    • X-External-Managed-Migration-Scheme-Override: questo intestazione della richiesta indirizza la richiesta in base al relativo valore. Se il valore dell'intestazione è EXTERNAL, la richiesta viene indirizzata all'infrastruttura del bilanciatore del carico delle applicazioni classico. Se il valore è EXTERNAL_MANAGED, la richiesta viene instradata tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

      Utilizza questa intestazione per indirizzare una richiesta a un determinato parco di bilanciatori del carico.

    • X-External-Managed-Migration-Selected-Scheme: questa intestazione della richiesta e della risposta informa il backend e il client dello schema di bilanciamento del carico utilizzato per instradare la richiesta. L'intestazione viene restituita al client e passata al backend del cliente.

      Se la richiesta viene instradata tramite l'infrastruttura del bilanciatore del carico delle applicazioni classico, il relativo valore è EXTERNAL. Se la richiesta viene instradata tramite l'infrastruttura bilanciatore del carico delle applicazioni esterno globale, il valore è EXTERNAL_MANAGED.

Passaggi successivi