Raccogli dati ospiti dalle VM EC2 per la valutazione offline


Questo tutorial illustra il processo di rilevamento e raccolta dei dati sulle istanze di macchine virtuali (VM) EC2, da utilizzare per la valutazione tecnica offline utilizzando l'interfaccia a riga di comando del client predittivo di Migration Center.

Obiettivi

In questo tutorial imparerai a:

  • Scarica l'interfaccia a riga di comando mcdc per valutare le tue VM AWS EC2.
  • Eseguire il rilevamento dell'inventario AWS EC2.
  • Raccogli informazioni a livello di guest su tutte le VM in una regione EC2 utilizzando AWS Session Manager o SSH.
  • Genera un report di valutazione offline.
  • (Avanzato) Modifica gli script in base alle tue esigenze.
  • (Utenti con competenze avanzate) Scrivi uno script di orchestrazione da zero.

Costi

Questo tutorial non prevede costi per Google Cloud.

È improbabile che influisca sui costi di AWS.

Prima di iniziare

I prerequisiti dipendono dal modo in cui ti connetti alle VM EC2.

Gestore sessione

  1. Prepara una macchina Linux per il download e l'esecuzione dell'interfaccia a riga di comando mcdc. La macchina Linux deve avere i seguenti requisiti minimi:

    • Versione kernel Linux 2.6.23 o successive
    • 4 GB di RAM e 10 GB di spazio su disco
    • AWS CLI installato
  2. Assicurati che l'interfaccia a riga di comando AWS disponga delle seguenti autorizzazioni:

    • Può chiamare aws ssm describe-instance-information
    • Può chiamare aws ssm start-session

SSH

  1. Prepara una macchina Linux per il download e l'esecuzione dell'interfaccia a riga di comando mcdc. La macchina Linux deve soddisfare i seguenti requisiti minimi:

    • Versione kernel Linux 2.6.23 o successive
    • 4 GB di RAM e 10 GB di spazio su disco
    • AWS CLI installato
    • Connettività di rete alle istanze EC2 (possibilmente tramite proxy)
  2. Assicurati che l'interfaccia a riga di comando AWS disponga delle seguenti autorizzazioni:

Scarica l'interfaccia a riga di comando mcdc

  1. Connettiti al computer Linux:
    ssh MACHINE_IP
    

    Sostituisci MACHINE_IP con l'indirizzo IP del tuo computer Linux.

  2. Scarica la versione più recente dell'interfaccia a riga di comando mcdc e rendila eseguibile:
      curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc"
      chmod +x mcdc
    
  3. Aggiungi l'interfaccia a riga di comando mcdc al percorso della shell:
    PATH=$PATH:`pwd`
    

Eseguire un rilevamento dell'inventario AWS

  • Esegui il rilevamento dell'inventario:

    ./mcdc discover aws -r REGION
    

    Sostituisci REGION con la regione delle VM EC2.

    L'interfaccia a riga di comando mcdc richiede l'ID della chiave di accesso e la chiave di accesso segreta.

    L'output del comando di rilevamento è simile al seguente:

    Collected 166 VMs
    [✓] Collection completed.
    

Eseguire la scoperta degli ospiti

Puoi eseguire il rilevamento degli ospiti utilizzando Session Manager o SSH.

Gestore sessione

Questo metodo utilizza il gestore delle sessioni di AWS Systems Manager per eseguire il rilevamento degli ospiti su tutte le VM in cui è installato l'agente SPM. L'agente SSM è installato per impostazione predefinita sulla maggior parte delle AMI fornite da Amazon e può essere installato manualmente su altre AMI.

  1. Assicurati che tutte le VM abbiano un ruolo IAM che consenta la connessione tramite Gestore sessioni. Per ulteriori informazioni, consulta la documentazione di AWS.

  2. Assicurati che tutte le VM che vuoi raccogliere siano attivate.

  3. Esegui il rilevamento degli ospiti utilizzando lo script di raccolta ospite dell'SMS dal repository Migrate to Containers su GitHub.

    a. Scarica lo script:

     curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssm.sh
     chmod +x mcdc_collect_aws_guest_ssm.sh
    

    b. Esegui lo script e salva l'output in un file:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION
    

    Sostituisci REGION con la regione delle VM EC2.

    Tutti i flag vengono passati direttamente a aws ssm describe-instance-information. Per raccogliere dati da una VM specifica, esegui questo comando:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION --filters "Key=InstanceIds,Values=VM_ID"
    

    Sostituisci VM_ID con l'ID VM.

    Per ulteriori informazioni su tutti i flag consentiti per il comando describe-instance-information, consulta la documentazione di AWS.

SSH

Questo metodo utilizza SSH per eseguire il rilevamento degli ospiti sulle VM Linux. Si connette all'indirizzo IP pubblico di ogni VM. Tuttavia, modificare lo script dovrebbe essere semplice. Ad esempio, per connetterti all'indirizzo IP privato.

Lo script utilizza la connessione dell'istanza EC2 per l'autenticazione. Instance Connect è disponibile solo su Amazon Linux e Ubuntu VM e potrebbe richiedere l'installazione. Tuttavia, dovrebbe essere semplice modificare lo script in modo che utilizzi un metodo di autenticazione alternativo, come l'autenticazione tramite password mediante sshpass o una chiave privata.

  1. Assicurati di avere accesso di rete alle VM. Potrebbe essere necessario modificare le regole in entrata per i gruppi di sicurezza o utilizzare un proxy per la connessione.

  2. Assicurati che tutte le VM da cui vuoi raccogliere siano attivate.

  3. Esegui il rilevamento degli ospiti utilizzando lo script di raccolta guest SSH dal repository Migrate to Containers su GitHub.

    1. Scarica lo script:

      curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssh.sh
      chmod +x mcdc_collect_aws_guest_ssh.sh
      
    2. Esegui lo script e salva l'output in un file:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION
      

      Sostituisci REGION con la regione delle VM EC2.

      Qualsiasi flag denominato -a o --ssh-arg viene passato direttamente a SSH. Per disabilitare l'autenticazione rigida con chiave host, esegui questo comando:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o StrictHostKeyChecking=no'
      

      Tutti gli altri flag vengono passati direttamente a aws ssh describe-instances. Per raccogliere dati da una VM specifica, esegui questo comando:

      ./mcdc_collect_aws_guest_ssm.sh --region REGION --instance-ids VM_ID
      

      Sostituisci VM_ID con l'ID VM.

      Per scoprire di più su tutti i flag consentiti, consulta la documentazione di AWS.

      È possibile utilizzare un proxy per connettersi a una VM utilizzando l'opzione ProxyCommand SSH. Ad esempio, per utilizzare un proxy socks5 esistente sulla porta PROXY_PORT, esegui questo comando:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o ProxyCommand=nc -X 5 -x 127.0.0.1:PROXY_PORT %h %p'
      

      Sostituisci PROXY_PORT con il numero di porta.

  4. Se hai modificato le regole in entrata nel passaggio 1, considera la possibilità di ripristinare le modifiche.

Genera un report di valutazione offline

  • Dopo aver raccolto tutti i dati, puoi generare un report HTML dettagliato:

    ./mcdc report --format html --full > REPORT_NAME.html
     

(Avanzato) Modifica gli script in base alle tue esigenze

È possibile che nessuno degli script soddisfi esattamente le tue esigenze. Ad esempio, potresti non avere installato l'agente SSM o l'istanza Connect, su alcune delle tue VM.

In questi casi, di solito utilizzi un metodo standard per connetterti alle macchine. Ti consigliamo di scrivere script che ti consentano di orchestrare questi metodi su larga scala. In alcuni casi potresti dover scrivere questi script da scratch, ma in altri potresti essere in grado di modificare quelli esistenti.

Ad esempio, puoi modificare lo script collect SSH in modo che utilizzi indirizzi IP privati anziché pubblici.

I testi contengono molti commenti al fine di facilitarne la comprensione.

(Utenti con competenze avanzate) Scrivere uno script di orchestrazione da zero

Per orchestrare la scoperta degli ospiti e la raccolta dei dati su larga scala:

  1. Identifica tutte le VM da cui vuoi raccogliere i dati.
  2. Caricare lo script di raccolta degli invitati su ogni VM. Le VM Linux e Windows richiedono script di raccolta ospiti diversi.
  3. Eseguire lo script di raccolta degli invitati su ogni VM.
  4. Scarica l'artefatto creato da ogni VM.
  5. Importa lo script di raccolta degli invitati scaricato nell'interfaccia a riga di comando mcdc.

Anche se spesso è necessario scrivere gran parte di questi passaggi da zero, esistono alcuni componenti di base utili negli script di esempio che potrebbero essere in grado di aiutarti con alcune di queste attività. Ad esempio:

Passaggi successivi