Esegui la migrazione da AWS a Google Cloud: migra da Amazon EC2 a Compute Engine

Last reviewed 2024-11-20 UTC

Google Cloud fornisce strumenti, prodotti, indicazioni e servizi professionali per eseguire la migrazione delle macchine virtuali (VM) e dei relativi dati da Amazon Elastic Compute Cloud (Amazon EC2) a Compute Engine. Questo documento illustra come progettare, implementare e convalidare un piano per eseguire la migrazione da Amazon EC2 a Compute Engine.

La discussione in questo documento è rivolta agli amministratori cloud che vogliono approfondire come pianificare e implementare una procedura di migrazione. È rivolto anche ai responsabili decisionali che stanno valutando l'opportunità di eseguire la migrazione e vogliono esplorare come potrebbe essere.

Questo documento fa parte di una serie in più parti sulla migrazione da AWS a Google Cloud che include i seguenti documenti:

Per questa migrazione a Google Cloud, ti consigliamo di seguire il framework di migrazione descritto in Eseguire la migrazione a Google Cloud: inizia.

Il seguente diagramma illustra il percorso del tuo percorso di migrazione.

Percorso di migrazione con quattro fasi.

Potresti eseguire la migrazione dal tuo ambiente di origine a Google Cloud in una serie di iterazioni, ad esempio potresti eseguire la migrazione di alcuni carichi di lavoro prima e di altri più tardi. Per ogni iterazione di migrazione distinta, segui le fasi del framework di migrazione generale:

  1. Valuta e scopri i tuoi carichi di lavoro e i tuoi dati.
  2. Pianifica e crea una base su Google Cloud.
  3. Esegui la migrazione dei tuoi carichi di lavoro e dei tuoi dati a Google Cloud.
  4. Ottimizza il tuo ambiente Google Cloud.

Per saperne di più sulle fasi di questo framework, consulta Eseguire la migrazione a Google Cloud: inizia.

Per progettare un piano di migrazione efficace, ti consigliamo di convalidare ogni passaggio del piano e di assicurarti di avere una strategia di rollback. Per aiutarti a convalidare il piano di migrazione, consulta Eseguire la migrazione a Google Cloud: best practice per convalidare un piano di migrazione.

Valutare l'ambiente di origine

Nella fase di valutazione, devi determinare i requisiti e le dipendenze per eseguire la migrazione dell'ambiente di origine a Google Cloud.

La fase di valutazione è fondamentale per la buona riuscita della migrazione. Devi acquisire conoscenze approfondite sui carichi di lavoro di cui vuoi eseguire la migrazione, sui relativi requisiti, sulle dipendenze e sul tuo ambiente attuale. Per pianificare ed eseguire correttamente una migrazione a Google Cloud, devi conoscere il punto di partenza.

La fase di valutazione è composta dalle seguenti attività:

  1. Crea un inventario completo dei tuoi workload.
  2. Cataloga i carichi di lavoro in base alle loro proprietà e dipendenze.
  3. Forma e istruisci i tuoi team su Google Cloud.
  4. Crea esperimenti e proof of concept su Google Cloud.
  5. Calcola il costo totale di proprietà (TCO) dell'ambiente di destinazione.
  6. Scegli la strategia di migrazione per i tuoi workload.
  7. Scegli gli strumenti di migrazione.
  8. Definisci il piano e le tempistiche della migrazione.
  9. Convalida il piano di migrazione.

Per ulteriori informazioni sulla fase di valutazione e su queste attività, consulta Eseguire la migrazione a Google Cloud: valutare e rilevare i carichi di lavoro. Le sezioni seguenti si basano sulle informazioni contenute in questo documento.

Crea un inventario delle tue istanze Amazon EC2

Per definire l'ambito della migrazione, crea un inventario delle tue istanze Amazon EC2. Puoi quindi utilizzare l'inventario per valutare i processi di deployment e operativi per il deployment dei carichi di lavoro su queste istanze.

Per creare l'inventario delle tue istanze Amazon EC2, ti consigliamo di utilizzare Migration Center, la piattaforma unificata di Google Cloud che ti consente di accelerare il tuo percorso verso il cloud end-to-end dall'ambiente attuale a Google Cloud. Il Centro di migrazione ti consente di importare dati da Amazon EC2 e altre risorse AWS. Il Centro di migrazione consiglia quindi i servizi Google Cloud pertinenti a cui puoi eseguire la migrazione.

Dopo aver valutato il tuo ambiente utilizzando il Centro di migrazione, ti consigliamo di generare un report di valutazione della migrazione tecnica utilizzando l'interfaccia a riga di comando del client di rilevamento del Centro di migrazione. Per ulteriori informazioni, consulta Raccogliere i dati degli ospiti dalle istanze Amazon EC2 per la valutazione offline.

I dati forniti da Migration Center e dalla CLI del client predittivo di Migration Center potrebbero non acquisire completamente le dimensioni che ti interessano. In questo caso, puoi integrare questi dati con i risultati di altri meccanismi di raccolta dei dati che crei in base alle API AWS, agli strumenti per sviluppatori AWS e all'interfaccia a riga di comando AWS.

Oltre ai dati che ottieni da Migration Center e dall'interfaccia a riga di comando del client predittivo di Migration Center, prendi in considerazione i seguenti punti dati per ogni istanza Amazon EC2 di cui vuoi eseguire la migrazione:

  • Regione e zona di deployment.
  • Tipo e dimensione dell'istanza.
  • L'immagine macchina Amazon (AMI) da cui viene avviata l'istanza.
  • Il nome host dell'istanza e il modo in cui altre istanze e altri carichi di lavoro utilizzano questo nome host per comunicare con l'istanza.
  • I tag delle istanze, nonché i metadati e i dati utente.
  • Il tipo di virtualizzazione dell'istanza.
  • L'opzione di acquisto dell'istanza, ad esempio l'acquisto on demand o l'acquisto spot.
  • In che modo l'istanza memorizza i dati, ad esempio utilizzando i volumi EBS e delle istanze.
  • La configurazione della tenancy dell'istanza.
  • Indica se l'istanza si trova in un gruppo di posizionamenti specifico.
  • Indica se l'istanza si trova in un gruppo di scalabilità automatica specifico.
  • I gruppi di sicurezza a cui appartiene l'istanza.
  • Qualsiasi configurazione di AWS Network Firewall che coinvolge l'istanza.
  • Se i carichi di lavoro in esecuzione nell'istanza sono protetti da AWS Shield e AWS WAF.
  • Se controlli lo stato del processore dell'istanza e in che modo i carichi di lavoro in esecuzione nell'istanza dipendono dallo stato del processore.
  • La configurazione dello scheduler I/O dell'istanza.
  • Come esponi i carichi di lavoro in esecuzione nell'istanza ai client che vengono eseguiti nel tuo ambiente AWS (ad esempio altri carichi di lavoro) e ai client esterni.

Valuta le procedure di deployment e operative

È importante avere una comprensione chiara del funzionamento delle procedure di deployment e operative. Queste procedure sono una parte fondamentale delle pratiche che preparano e gestiscono l'ambiente di produzione e i relativi carichi di lavoro.

I processi di deployment e operativi potrebbero creare gli elementi necessari per il funzionamento dei carichi di lavoro. Pertanto, devi raccogliere informazioni su ogni tipo di elemento. Ad esempio, un elemento può essere un pacchetto del sistema operativo, un pacchetto di deployment dell'applicazione, un'immagine del sistema operativo, un'immagine del contenitore o qualcos'altro.

Oltre al tipo di elemento, valuta come completare le seguenti attività:

  • Sviluppa i tuoi carichi di lavoro. Valuta le procedure messe in atto dai team di sviluppo per creare i carichi di lavoro. Ad esempio, in che modo i tuoi team di sviluppo progettano, codificano e testano i carichi di lavoro?
  • Genera gli elementi da eseguire nel tuo ambiente di origine. Per eseguire il deployment dei tuoi workload nell'ambiente di origine, potresti generare artefatti di cui è possibile eseguire il deployment, come immagini container o immagini del sistema operativo, oppure personalizzare artefatti esistenti, come immagini del sistema operativo di terze parti, installando e configurando il software. Raccogliere informazioni su come generi questi elementi ti aiuta a verificare che siano adatti per il deployment in Google Cloud.
  • Archivia gli elementi. Se produci artefatti che memorizzi in un registro di artefatti nel tuo ambiente di origine, devi renderli disponibili nel tuo ambiente Google Cloud. Puoi farlo adottando strategie come le seguenti:

    • Stabilisci un canale di comunicazione tra gli ambienti: rendi accessibili gli elementi dell'ambiente di origine dall'ambiente Google Cloud di destinazione.
    • Esegui il refactoring del processo di compilazione degli elementi: completa un refactoring minore dell'ambiente di origine in modo da poter archiviare gli elementi sia nell'ambiente di origine sia nell'ambiente di destinazione. Questo approccio supporta la migrazione creando un'infrastruttura come un repository di elementi prima di dover implementare le procedure di compilazione degli elementi nell'ambiente Google Cloud di destinazione. Puoi implementare questo approccio direttamente o puoi basarti sull'approccio precedente di stabilire prima un canale di comunicazione.

    Avere gli elementi disponibili sia nell'ambiente di origine sia in quello di destinazione ti consente di concentrarti sulla migrazione senza dover implementare le procedure di compilazione degli elementi nell'ambiente Google Cloud di destinazione nell'ambito della migrazione.

  • Scansiona e firma il codice. Nell'ambito delle procedure di compilazione degli elementi, potresti utilizzare la scansione del codice per proteggerti da vulnerabilità comuni e dall'esposizione involontaria alla rete, nonché la firma del codice per assicurarti che nei tuoi ambienti venga eseguito solo codice attendibile.

  • Esegui il deployment degli elementi nell'ambiente di origine. Dopo aver generato gli elementi di deployment, potresti eseguirne il deployment nell'ambiente di origine. Ti consigliamo di valutare ogni processo di implementazione. La valutazione consente di verificare che i processi di implementazione siano compatibili con Google Cloud. Inoltre, ti aiuta a capire lo sforzo necessario per eseguire il refactoring delle procedure. Ad esempio, se le tue procedure di implementazione lavorano solo con l'ambiente di origine, potresti doverle rifare in modo che abbiano come target il tuo ambiente Google Cloud.

  • Esegui l'iniezione della configurazione di runtime. Potresti iniettare la configurazione di runtime per cluster, ambienti di runtime o deployment dei carichi di lavoro specifici. La configurazione potrebbe inizializzare le variabili di ambiente e altri valori di configurazione come secret, credenziali e chiavi. Per contribuire a garantire che le procedure di inserimento della configurazione di runtime funzionino su Google Cloud, ti consigliamo di valutare la modalità di configurazione dei carichi di lavoro eseguiti nel tuo ambiente di origine.

  • Logging, monitoraggio e profilazione. Valuta le procedure di registrazione, monitoraggio e profiling che hai implementato per monitorare lo stato di integrità del tuo ambiente di origine, le metriche di interesse e il modo in cui utilizzi i dati forniti da queste procedure.

  • Autenticazione. Valuta la modalità di autenticazione rispetto all'ambiente di origine.

  • Esegui il provisioning e configura le risorse. Per preparare l'ambiente di origine, potresti aver progettato e implementato procedure di provisioning e configurazione delle risorse. Ad esempio, potresti utilizzare Terraform insieme a strumenti di gestione della configurazione per eseguire il provisioning e configurare le risorse nel tuo ambiente di origine.

Pianifica e crea le basi

Nella fase di pianificazione e creazione, esegui il provisioning e la configurazione dell'infrastruttura per:

  • Supporta i tuoi carichi di lavoro nel tuo ambiente Google Cloud.
  • Connetti l'ambiente di origine e l'ambiente Google Cloud per completare la migrazione.

La fase di pianificazione e compilazione è composta dalle seguenti attività:

  1. Crea una gerarchia di risorse.
  2. Configurare Identity and Access Management (IAM) di Google Cloud.
  3. Configura la fatturazione.
  4. Configura la connettività di rete.
  5. Rafforza la sicurezza.
  6. Configura il logging, il monitoraggio e gli avvisi.

Per ulteriori informazioni su ciascuna di queste attività, consulta la pagina Eseguire la migrazione a Google Cloud: pianificare e creare le basi.

Migrazione dei carichi di lavoro

Per eseguire la migrazione dei tuoi carichi di lavoro da Amazon EC2 a Compute Engine, svolgi quanto segue:

  1. Esegui la migrazione delle VM da Amazon EC2 a Compute Engine.
  2. Esegui la migrazione dei dischi VM a Persistent Disk.
  3. Esponi i carichi di lavoro in esecuzione su Compute Engine ai client.
  4. Esegui il refactoring dei processi di deployment e operativi in modo che abbiano come target Google Cloud anziché Amazon EC2.

Le sezioni seguenti forniscono dettagli su ciascuna di queste attività.

Migrazione delle VM su Compute Engine

Per eseguire la migrazione delle VM da Amazon EC2 a Compute Engine, ti consigliamo di utilizzare Esegui la migrazione a macchine virtuali, un servizio completamente gestito. Per ulteriori informazioni, consulta Percorso di migrazione con Migra a VM.

Nell'ambito della migrazione, Migrate for VMs esegue la migrazione delle istanze Amazon EC2 nel loro stato corrente, ad eccezione delle modifiche di configurazione richieste. Se le tue istanze Amazon EC2 eseguono AMI Amazon EC2 personalizzate, Migrate for VMs esegue la migrazione di queste personalizzazioni alle istanze Compute Engine. Tuttavia, se vuoi rendere la tua infrastruttura riproducibile, potresti dover applicare personalizzazioni equivalenti creando immagini del sistema operativo Compute Engine nell'ambito dei processi di deployment e operativi, come spiegato più avanti in questo documento. Puoi anche importare le AMI Amazon EC2 in Compute Engine.

Esegui la migrazione dei dischi VM su Persistent Disk

Puoi anche utilizzare Migrate to VMs per eseguire la migrazione dei dischi dalle VM Amazon EC2 di origine a Persistent Disk, con interruzioni minime dei carichi di lavoro in esecuzione sulle VM Amazon EC2. Per ulteriori informazioni, consulta la pagina Eseguire la migrazione dei dischi VM e collegarli a una nuova VM.

Ad esempio, puoi eseguire la migrazione di un disco di dati collegato a una VM Amazon EC2 su Persistent Disk e collegarlo a una nuova VM Compute Engine.

Esporre i carichi di lavoro in esecuzione su Compute Engine

Dopo aver eseguito la migrazione delle istanze Amazon EC2 alle istanze Compute Engine, potrebbe essere necessario eseguire il provisioning e la configurazione dell'ambiente Google Cloud per esporre i carichi di lavoro ai clienti.

Google Cloud offre servizi e prodotti sicuri e affidabili per esporre i tuoi carichi di lavoro ai clienti. Per i carichi di lavoro eseguiti sulle tue istanze Compute Engine, puoi configurare le risorse per le seguenti categorie:

  • Firewall
  • Bilanciamento del carico del traffico
  • Nomi, zone e record DNS
  • Protezione DDoS e web application firewall

Per ciascuna di queste categorie, puoi iniziare implementando una configurazione di riferimento simile a quella utilizzata per i servizi e le risorse AWS nella categoria equivalente. Puoi quindi eseguire l'iterazione della configurazione e utilizzare altre funzionalità fornite dai servizi Google Cloud.

Le sezioni seguenti spiegano come eseguire il provisioning e configurare le risorse Google Cloud in queste categorie e come vengono mappate alle risorse AWS in categorie simili.

Firewall

Se hai configurato i gruppi di sicurezza AWS e i criteri e le regole di AWS Network Firewall, puoi configurare i criteri e le regole di Cloud Next Generation Firewall. Puoi anche eseguire il provisioning delle regole di Controlli di servizio VPC per regolare il traffico di rete all'interno del tuo VPC. Puoi utilizzare i Controlli di servizio VPC per bloccare le connessioni di rete indesiderate alle tue istanze Compute Engine e contribuire a mitigare il rischio di esfiltrazione di dati.

Ad esempio, se utilizzi i gruppi di sicurezza AWS per consentire o negare le connessioni alle tue istanze Amazon EC2, puoi configurare regole firewall Virtual Private Cloud (VPC) simili che si applicano alle tue istanze Compute Engine.

Bilanciamento del carico del traffico

Se hai configurato Elastic Load Balancing (ELB) nel tuo ambiente AWS, puoi configurare Cloud Load Balancing per distribuire il traffico di rete e contribuire a migliorare la scalabilità dei tuoi carichi di lavoro in Google Cloud. Cloud Load Balancing supporta diversi prodotti di bilanciamento del carico regionali e globali che funzionano a diversi livelli del modello OSI, ad esempio a livello di trasporto e di applicazione. Puoi scegliere un prodotto di bilanciamento del carico adatto ai requisiti dei tuoi carichi di lavoro.

Cloud Load Balancing supporta anche la configurazione di Transport Layer Security (TLS) per criptare il traffico di rete. Quando configuri TLS per Cloud Load Balancing, puoi utilizzare certificati TLS con gestione indipendente o gestiti da Google, a seconda dei tuoi requisiti.

Nomi, zone e record DNS

Se utilizzi Amazon Route 53 nel tuo ambiente AWS, in Google Cloud puoi utilizzare quanto segue:

Ad esempio, se hai registrato un dominio utilizzando Amazon Route 53, puoi trasferire la registrazione del dominio a Cloud Domains. Analogamente, se hai configurato zone DNS pubbliche e private utilizzando Amazon Route 53, puoi eseguire la migrazione di questa configurazione a Cloud DNS.

Protezione DDoS e web application firewall

Se hai configurato AWS Shield e AWS WAF nel tuo ambiente AWS, puoi utilizzare Google Cloud Armor per contribuire a proteggere i tuoi carichi di lavoro Google Cloud dagli attacchi DDoS e dagli exploit comuni.

Ristrutturare i processi di deployment e operativi

Dopo aver sottoposto a refactoring i carichi di lavoro, esegui il refactoring delle procedure di deployment e operative per:

  • Esegui il provisioning e la configurazione delle risorse nel tuo ambiente Google Cloud instead of provisioning resources in your source environment.
  • Crea e configura i carichi di lavoro ed esegui il loro deployment in Google Cloud instead of in the source environment.

Hai raccolto informazioni su queste procedure durante la fase di valutazione in precedenza in questa procedura.

Il tipo di refactoring da prendere in considerazione per queste procedure dipende da come le hai progettate e implementate. Il refactoring dipende anche da quale stato finale vuoi per ogni processo. Ad esempio, prendi in considerazione quanto indicato di seguito:

  • Potresti aver implementato queste procedure nel tuo ambiente di origine e intendi progettare e implementare procedure simili in Google Cloud. Ad esempio, puoi eseguire il refactoring di queste procedure per utilizzare Cloud Build, Cloud Deploy e Infrastructure Manager.
  • Potresti aver implementato queste procedure in un altro ambiente di terze parti al di fuori dell'ambiente di origine. In questo caso, devi eseguire il refactoring di queste procedure in modo che abbiano come target l'ambiente Google Cloud anziché l'ambiente di origine.
  • Una combinazione degli approcci precedenti.

Il refactoring dei processi di deployment e operativi può essere complesso e richiedere un impegno significativo. Se provi a eseguire queste attività nell'ambito della migrazione del workload, la migrazione del workload può diventare più complessa e può esporre a rischi. Dopo aver valutato i processi di implementazione e operativi, probabilmente hai compreso il loro design e la loro complessità. Se ritieni di dover impiegare molto impegno per eseguire il refactoring delle procedure di implementazione e operative, ti consigliamo di valutare la possibilità di eseguire il refactoring di queste procedure nell'ambito di un progetto dedicato e separato.

Per ulteriori informazioni su come progettare e implementare i processi di deployment su Google Cloud, consulta:

Questo documento si concentra sui processi di deployment che producono gli elementi da eseguire e li eseguono nell'ambiente di runtime di destinazione. La strategia di refactoring dipende molto dalla complessità di questi processi. L'elenco seguente illustra una possibile strategia di refactoring generale:

  1. Esegui il provisioning dei repository di elementi su Google Cloud. Ad esempio, puoi utilizzare Artifact Registry per archiviare gli artefatti e creare dipendenze.
  2. Esegui il refactoring delle procedure di compilazione per archiviare gli artefatti sia nell'ambiente di origine sia in Artifact Registry.
  3. Esegui il refactoring delle procedure di deployment per distribuire i carichi di lavoro nell'ambiente Google Cloud di destinazione. Ad esempio, puoi iniziare a eseguire il deployment di un piccolo sottoinsieme dei tuoi workload in Google Cloud utilizzando gli elementi archiviati in Artifact Registry. Poi, aumenta gradualmente il numero di workload di cui viene eseguito il deployment in Google Cloud, fino a quando tutti i workload di cui vuoi eseguire la migrazione non vengono eseguiti su Google Cloud.
  4. Esegui il refactoring delle procedure di compilazione per archiviare gli artefatti solo in Artifact Registry.
  5. Se necessario, esegui la migrazione delle versioni precedenti degli elementi da eseguire il deployment dai repository nell'ambiente di origine ad Artifact Registry. Ad esempio, puoi copiare le immagini container in Artifact Registry.
  6. Esegui la disattivazione dei repository nell'ambiente di origine quando non li necessiti più.

Per facilitare eventuali rollback a causa di problemi imprevisti durante la migrazione, puoi archiviare le immagini dei container sia nei tuoi repository di artefatti attuali in Google Cloud sia durante la migrazione a Google Cloud. Infine, nell'ambito del ritiro dell'ambiente di origine, puoi eseguire il refactoring dei processi di compilazione delle immagini container per archiviare gli artefatti solo in Google Cloud.

Sebbene potrebbe non essere fondamentale per la riuscita di una migrazione, potresti dover eseguire la migrazione delle versioni precedenti degli elementi dall'ambiente di origine ai repository di elementi su Google Cloud. Ad esempio, per supportare il rollback dei workload a punti in tempo arbitrari, potresti dover eseguire la migrazione delle versioni precedenti degli elementi in Artifact Registry. Per ulteriori informazioni, consulta Eseguire la migrazione delle immagini da un registry di terze parti.

Se utilizzi Artifact Registry per archiviare gli elementi, ti consigliamo di configurare i controlli per proteggere i repository degli elementi, ad esempio il controllo dell'accesso dell'accesso, la prevenzione dell'esfiltrazione di dati, analisi delle vulnerabilità e l'Autorizzazione binaria. Per ulteriori informazioni, consulta Controllare l'accesso e proteggere gli elementi.

Ottimizza il tuo ambiente Google Cloud

L'ottimizzazione è l'ultima fase della migrazione. In questa fase, esegui l'iterazione delle attività di ottimizzazione finché l'ambiente di destinazione non soddisfa i requisiti di ottimizzazione. I passaggi di ogni iterazione sono i seguenti:

  1. Valuta il tuo ambiente, i tuoi team e il tuo ciclo di ottimizzazione attuale.
  2. Stabilisci i requisiti e gli obiettivi di ottimizzazione.
  3. Ottimizza il tuo ambiente e i tuoi team.
  4. Ottimizza il ciclo di ottimizzazione.

Ripeti questa sequenza finché non raggiungi i tuoi obiettivi di ottimizzazione.

Per ulteriori informazioni sull'ottimizzazione dell'ambiente Google Cloud, consulta Esegui la migrazione a Google Cloud: ottimizza l'ambiente e Procedura di ottimizzazione delle prestazioni.

Passaggi successivi

Collaboratori

Autore: Marco Ferrari | Cloud Solutions Architect