Impostazione di un ambiente di sviluppo remoto su un server AWS con VSCode

Summary

Questo corso riguarda l'impostazione di ambienti di sviluppo remoti (noti anche come "interpreti remoti"), in modo da poter eseguire il codice in locale ma su un server remoto.

Gli ambienti di sviluppo remoti presentano diversi vantaggi:

In questo video mostriamo come creare un'istanza del server su AWS EC2 e come impostare l'ambiente di sviluppo remoto in VSCode.

Ecco la struttura del corso:

Transcript

Salve, sono Julien Salinas di NLP Cloud.

Oggi vi mostrerò come impostare un ambiente di sviluppo remoto in modo da poter eseguire il codice sulla vostra macchina locale, ma su un server AWS remoto.

Non ci sono prerequisiti per questo corso, quindi si parte.

Cosa intendiamo per ambiente di sviluppo remoto? In realtà, significa che stiamo per codificare localmente in VS Code, come la maggior parte di noi oggi.

Se si utilizza un altro ambiente di sviluppo, occorre verificare se gli interpreti remoti o gli ambienti di sviluppo remoti sono supportati o meno.

Oggi scegliamo AWS perché so che la maggior parte di voi utilizza AWS nel flusso di lavoro di produzione quotidiano, ma se utilizzate GCP o Azure o OVH o Scaleware o qualsiasi altra cosa, il processo sarà molto simile.

Come vedrete, si tratta di effettuare il provisioning di un'istanza, recuperare l'indirizzo IP e utilizzarlo localmente in VS Code per connettersi tramite SSH all'istanza.

Perché utilizziamo un ambiente di sviluppo remoto? Il primo motivo è che vogliamo ridurre il costo dell'ambiente di sviluppo locale.

Potreste non voler acquistare un MacBook Pro Ultra M2 di fascia alta molto costoso, ad esempio, e in questo caso potrebbe essere più conveniente acquistare una macchina locale di fascia bassa, ma eseguire il codice in remoto ogni volta che ne avete bisogno.

Un secondo motivo molto importante, soprattutto per gli ingegneri dell'apprendimento automatico, è che a volte è necessario accedere a hardware di alto livello come le GPU, ad esempio, e questo hardware non è necessariamente disponibile sulla macchina locale.

Ad esempio, se si desidera avere accesso a una GPU NVIDIA A100 o H100, sicuramente non sarà possibile accedere a tali GPU a livello locale.

Questo, come mostreremo oggi, è molto utile perché altrimenti non è possibile accedere a macchine specifiche per lo sviluppo su GPU.

Infine, il fatto di utilizzare un ambiente remoto è ottimo perché si tratta di un ambiente perfettamente isolato, il che significa che se si desidera installare librerie, framework o driver specifici, è possibile farlo sulla macchina AWS remota.

E se un domani doveste installare, ad esempio, un'altra versione dei driver NVIDIA e del toolkit CUDA o delle librerie Python, cose del genere, dovrete semplicemente eseguire il provisioning di un secondo server e sarete perfettamente sicuri che entrambi i server non interferiranno.

Entrambe le configurazioni saranno perfettamente isolate.

Quindi, naturalmente, è possibile ottenere risultati simili anche con Docker o addirittura con ambienti virtuali in Python, ad esempio.

Ma immaginate di voler installare diverse versioni dei driver NVIDIA.

La situazione sarà molto più complessa.

In questo caso, il provisioning di diversi ambienti remoti potrebbe essere l'unica soluzione possibile.

La prima cosa che faremo ora è connetterci alla nostra console AWS e creare un'istanza AWS di base, un'istanza CPU, e poi usarla localmente da VS Code.

Eccoci qua.

Ora sono sulla mia console AWS.

Se è la prima volta che si utilizza AWS, è sufficiente creare un account con una password di posta elettronica.

Non credo che chiedano troppe informazioni.

Ora è possibile creare un'istanza in EC2.

Faremo clic su Avvia istanza.

Possiamo dare un nome alla nostra istanza.

Chiamiamolo, ad esempio, ambiente dev.

Ok.

Ora la parte importante.

Dobbiamo scegliere un sistema operativo per la nostra istanza.

È preferibile scegliere Linux e, per quanto mi riguarda, mi piace molto Ubuntu perché è standard e sono sicuro che i driver più recenti saranno installati su Ubuntu, soprattutto con i driver NVIDIA, il che può essere davvero utile.

Quindi sto scegliendo Ubuntu.

Se è la prima volta che utilizzate Linux, non preoccupatevi.

Non avremo bisogno di molti trucchi o comandi Linux.

Fondamentalmente faremo tutto dal codice VS, a parte il fatto che ovviamente dietro il cofano ci sarà Linux, ma non credo che sarà un problema per voi.

È possibile lasciare la versione 2204 LTS così com'è.

Ora selezioneremo una semplice istanza di CPU.

Ad esempio, su AWS, avete un'istanza M5, M5 large, due CPU, otto giga di memoria.

Perfetto per noi.

Forse anche troppo per oggi, ma in futuro dovrete scegliere l'istanza che si adatta perfettamente alle vostre esigenze.

Ok.

Ora dobbiamo usare una coppia di chiavi SSH.

Se è la prima volta che utilizzate SSH, dovrete creare la vostra coppia di chiavi su AWS, creando una nuova coppia di chiavi.

Chiamiamola coppia di chiavi di prova.

È possibile selezionare il formato PEM, creare una coppia di chiavi.

E ora lo sto scaricando, scusate, sulla mia macchina.

Ok.

Non è necessario modificare il gruppo di sicurezza.

Per impostazione predefinita, la porta SSH sarà aperta, il che va bene.

Questo è ciò di cui abbiamo bisogno.

Otto giga di SSD sono perfetti per oggi.

E possiamo fare clic su Avvia istanza.

Ok.

L'istanza è pronta.

Se si tratta della prima creazione di un'istanza su AWS, forse sarà necessario chiedere all'assistenza AWS di aggiornare la quota.

Non ne sono proprio sicuro.

Per le istanze molto costose, come le istanze GPU, è necessario richiedere un aggiornamento della quota.

Per un semplice esempio di M5, non ne sono sicuro.

Ma se si riceve un errore, che richiede un aumento della quota, è quello che si deve fare.

Ecco la nostra istanza.

Come potete vedere, è già in funzione.

È stato molto veloce.

M5 grande.

E qui a destra, abbiamo l'indirizzo IP che utilizzeremo.

Ora che abbiamo creato la nostra istanza e scaricato la coppia di chiavi SSH sulla nostra macchina, dobbiamo aprire VS Code e creare la connessione SSH al nostro server remoto.

Se è la prima volta che si utilizza un client SSH su Windows, è necessario attivarlo.

Ecco un'esercitazione del team di Windows su come farlo.

È sufficiente digitare create SSH client on Windows su Google per trovare molte esercitazioni.

Ecco quello ufficiale.

Se si naviga un po' più a fondo, è molto semplice.

È sufficiente attivare qualcosa nelle applicazioni di Windows.

Se si utilizza Linux, è installato di default.

Ora mi trovo in VS Code.

In basso a sinistra si trova questo pulsante.

Faccio clic su connetti la finestra corrente all'host.

Se è la prima volta che si utilizza questo modulo di connessione remota, forse VS Code sta per scaricare il plugin.

Potrebbero quindi essere necessari un paio di secondi prima di poter accedere alla funzione.

Sto configurando gli host, facendo clic su configura gli host.

Oggi sono su Windows, quindi ecco dove si trova la mia configurazione.

E qui, questo è il file di configurazione che devo riempire.

Quindi, la cosa più importante è recuperare l'indirizzo IP della nostra istanza e incollarlo qui.

Perfetto.

Possiamo dare un nome alla nostra connessione, ma è solo per noi.

Chiamiamola DevHouse.

Il nome utente è quello usato dal client SSH per connettersi all'istanza.

Dato che abbiamo fornito il server Ubuntu, il nome utente è Ubuntu per impostazione predefinita.

E quando ho scaricato la coppia di chiavi, la coppia di chiavi SSH, l'ho messa sul mio desktop di Windows.

È qui che VS Code recupera la chiave.

È possibile salvare il file e ora fare clic in basso, per collegare nuovamente la finestra corrente all'host.

DevHouse è ciò che abbiamo appena creato.

Dovrete aspettare qui.

Molto bene.

Si può notare che VS Code mi chiede uno scambio di chiavi.

Quindi sì, questa è la prima volta che ci colleghiamo a questa istanza.

Quindi, per motivi di sicurezza, dobbiamo accettare questa nuova impronta digitale.

Bene.

Non sembra molto drammatico, ma ora siamo effettivamente sulla nostra istanza AWS remota.

Lo si può vedere perché in basso a sinistra si può vedere SSH.

Per verificarlo, potete aprire un terminale in alto, facendo clic su nuovo terminale.

Si può notare che questo terminale non è assolutamente il terminale della mia macchina Windows locale.

Sono su una macchina Ubuntu.

E se voglio, posso usare alcuni comandi Linux come al solito, come l'elenco delle directory.

Non abbiamo nulla qui, quindi possiamo creare una directory.

Supponiamo di voler creare un ambiente di sviluppo per eseguire un paio di test.

Ora abbiamo creato la nostra nuova cartella di test.

O volete fare tutto con la riga di comando o, forse ancora meglio, volete usare l'interfaccia grafica di VS Code per sfogliare il vostro file come al solito.

Quindi fate clic in alto, apri cartella.

Qui si può vedere la directory di prova che ho appena creato.

Ora VS Code si apre di nuovo, ma questa volta nella cartella specifica che ho menzionato.

D'ora in poi potrete iniziare a sviluppare come al solito, come se foste sul vostro computer locale, ma il vostro codice verrà eseguito su AWS.

Proviamo quindi a fare un tentativo.

Per esempio, creiamo un semplice programma Python, che dica hello, nuovo file, test.py, print, hello

Salvare il file.

E poi, nella console, possiamo eseguire il file.

Salve.

Avete appena eseguito con successo il vostro primo codice remoto su AWS.

Per oggi è tutto.

Ora potete usare il vostro ambiente di sviluppo remoto quanto volete.

Non dimenticate di spegnere la vostra istanza AWS quando non ne avete più bisogno.

E a presto.