Questo tutorial illustra la procedura 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 di rilevamento del Centro di migrazione.
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 con 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 AWS.
Prima di iniziare
I prerequisiti dipendono dal modo in cui ti connetti alle VM EC2.
Gestore sessione
Prepara un computer Linux per il download e l'esecuzione Interfaccia a riga di comando
mcdc
. La macchina Linux deve avere i seguenti requisiti minimi:- Kernel Linux 2.6.23 o versioni successive
- 4 GB di RAM e 10 GB di spazio su disco
- Interfaccia a riga di comando AWS installata
Assicurati che AWS CLI disponga delle seguenti autorizzazioni:
- Può chiamare
aws ssm describe-instance-information
- Può chiamare
aws ssm start-session
- Può chiamare
SSH
Prepara una macchina Linux per scaricare ed eseguire l'interfaccia a riga di comando
mcdc
. La macchina Linux deve soddisfare i requisiti i seguenti requisiti minimi:- Kernel Linux 2.6.23 o versioni successive
- 4 GB di RAM e 10 GB di spazio su disco
- AWS CLI installato
- Connettività di rete alle istanze EC2 (eventualmente tramite un proxy)
Assicurati che AWS CLI disponga delle seguenti autorizzazioni:
- Può chiamare
aws ec2 describe-instances
- Connessione dell'istanza
- Può chiamare
Scarica l'interfaccia a riga di comando mcdc
- Connettiti al computer Linux:
ssh MACHINE_IP
Sostituisci MACHINE_IP con l'indirizzo IP del tuo computer Linux.
- Scarica la versione più recente del
mcdc
CLI e rendila eseguibile:curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc" chmod +x mcdc
- Aggiungi l'interfaccia a riga di comando
mcdc
al percorso della shell:PATH=$PATH:`pwd`
Esegui 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
ti chiede di inserire il ID chiave di accesso e la chiave di accesso segreta.L'output del comando di rilevamento è simile al seguente:
Collected 166 VMs [✓] Collection completed.
Esegui il rilevamento degli ospiti
Puoi eseguire il rilevamento degli ospiti utilizzando Session Manager o SSH.
Gestore sessione
Questo metodo utilizza AWS Systems Manager Session Manager per eseguire il rilevamento dei guest su tutte le VM su cui è installato l'agente SSM. L'agente SSM è installato per impostazione predefinita sulla maggior parte delle Amazon fornite AMI e può essere installata manualmente su altre app.
Assicurati che tutte le VM abbiano un ruolo IAM che consenta la connessione tramite Gestore sessione. Per ulteriori informazioni, consulta la documentazione di AWS.
Assicurati che tutte le VM che vuoi raccogliere siano attive.
Esegui il rilevamento degli ospiti utilizzando lo script di raccolta ospiti 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 eseguire il rilevamento da una VM specifica, esegui il seguente 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
describe-instance-information
, consulta le Documentazione 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 sulle VM Amazon Linux e Ubuntu 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.
Assicurati di avere accesso di rete alle VM. Potresti dover modificare le regole in entrata per i gruppi di sicurezza o utilizzare un proxy per la connessione.
Assicurati che tutte le VM da cui vuoi raccogliere siano attivate.
Esegui la ricerca degli ospiti utilizzando lo script di raccolta degli ospiti SSH del repository Migrate to Containers su GitHub.
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
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 disattivare l'autenticazione della chiave host rigorosa, esegui il seguente 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 eseguire il rilevamento da una VM specifica, esegui il seguente comando:./mcdc_collect_aws_guest_ssm.sh --region REGION --instance-ids VM_ID
Sostituisci VM_ID con l'ID della VM.
Per informazioni su tutti i flag consentiti, consulta la documentazione di AWS.
È possibile utilizzare un proxy per connettersi a una VM tramite SSH Opzione
ProxyCommand
. Ad esempio, per utilizzare un proxy socks5 esistente sulla porta PROXY_PORT, esegui il seguente 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.
Se hai modificato le regole in entrata nel passaggio 1, considera la possibilità di ripristinare 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, delle tue VM.
In questi casi, di solito esiste un modo standard per connettersi alle macchine. Ti consigliamo di scrivere script che ti consentano di orchestrare questi metodi su larga scala. In alcuni casi potrebbe essere necessario scrivere questi script da zero, ma in altri potresti essere in grado di modificare quelli esistenti.
Ad esempio, puoi modificare lo script collect SSH. utilizzare indirizzi IP privati anziché pubblici.
I testi contengono molti commenti al fine di facilitarne la comprensione.
(Avanzato) Scrivere uno script di orchestrazione da zero
Per orchestrare la scoperta degli ospiti e la raccolta dei dati su larga scala:
- Identifica tutte le VM da cui vuoi raccogliere i dati.
- Carica lo script di raccolta ospite in ogni VM. Le VM Linux e Windows richiedono script di raccolta degli ospiti diversi.
- Eseguire lo script di raccolta degli invitati su ogni VM.
- Scarica l'elemento creato da ogni VM.
- 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, negli script di esempio sono presenti alcuni componenti di base utili che potrebbero essere in grado di aiutarti con alcune di queste attività. Ad esempio:
- Esegui l'iterazione su tutte le VM in EC2.
- Scarica gli script di raccolta dei guest Windows e Linux.
- A volte non è possibile caricare e scaricare file. In questi casi è possibile includere gli script collect nei comandi inviati e scrivere gli artefatti codificati in base64 su stdout. Lo script di raccolta SSM può essere un esempio utile di come eseguire questa operazione.
- Importazione dell'artefatto raccolto nell'interfaccia a riga di comando
mcdc
.
Passaggi successivi
- Scopri di più sull'interfaccia a riga di comando
mcdc
. - Consulta gli esempi di script.
- Per informazioni su come eseguire la migrazione di un'applicazione più complessa, consulta la Tutorial sulla migrazione di un'applicazione framework Spring disponibile nel repository GitHub di Migrate to Containers.
- Scopri le best practice per la pianificazione.