Konfigurera en fjärrutvecklingsmiljö på en AWS Server med VSCode

Summary

Denna kurs handlar om att konfigurera en fjärrutvecklingsmiljö (även känd som "remote interpreters") så att du kan koda lokalt men exekvera din kod på en fjärrserver.

Fjärrutvecklingsmiljöer har flera stora fördelar:

I den här videon visar vi hur man skapar en serverinstans på AWS EC2 och sedan konfigurerar fjärrutvecklingsmiljön i VSCode.

Här är kursens struktur:

Transcript

Hej, det här är Julien Salinas från NLP Cloud.

Idag ska jag visa dig hur du ställer in en fjärrutvecklingsmiljö så att du kan koda på din lokala maskin, men köra din kod på en avlägsen AWS-server.

Det finns inga förkunskapskrav för denna kurs, så nu kör vi.

Vad menar vi med fjärrutvecklingsmiljö? Det betyder egentligen att vi ska koda lokalt i VS Code, som de flesta av oss gör idag.

Om du använder en annan utvecklingsmiljö bör du kontrollera om fjärrtolkar eller fjärrutvecklingsmiljöer stöds eller inte, och vi kommer faktiskt att köra koden på distans på en AWS-instans.

Vi väljer AWS idag eftersom jag vet att de flesta av er faktiskt använder AWS i ert dagliga produktionsarbetsflöde, men om du använder GCP eller Azure eller OVH eller Scaleware eller något annat, kommer processen att vara mycket likartad.

Som du kommer att se handlar det om att provisionera en instans, hämta IP-adressen och använda den lokalt i VS Code för att ansluta via SSH till instansen.

Varför använder vi egentligen fjärrutvecklingsmiljöer? Det första skälet är att vi vill kunna minska kostnaden för vår lokala utvecklingsmiljö.

Du kanske inte vill köpa en mycket dyr avancerad MacBook Pro Ultra M2, till exempel, och i så fall kan det vara mer kostnadseffektivt för dig att köpa en mindre lokal maskin, men exekvera din kod på distans när du behöver det.

Ett annat mycket viktigt skäl, särskilt för maskininlärningstekniker, är att du ibland behöver tillgång till avancerad hårdvara som GPU:er, till exempel, och denna hårdvara är inte nödvändigtvis tillgänglig på din lokala maskin.

Om du till exempel vill ha tillgång till en A100 NVIDIA GPU eller H100, kommer du med all säkerhet inte att kunna få tillgång till sådana GPU:er lokalt.

Att göra detta, som vi kommer att visa idag, är mycket användbart eftersom man annars helt enkelt inte kan få tillgång till specifika maskiner för GPU-utveckling.

Sist av allt är det faktum att du kommer att använda en fjärrmiljö bra eftersom det faktiskt är en helt isolerad miljö, vilket innebär att om du vill installera specifika bibliotek, ramverk eller drivrutiner kan du göra det på din fjärranslutna AWS-maskin.

Och om du i morgon behöver installera, låt oss säga, en annan version av dina NVIDIA-drivrutiner och CUDA toolkit eller Python-bibliotek, saker som detta, behöver du bara provisionera en andra server och du är helt säker på att båda servrarna inte kommer att störa.

Båda konfigurationerna kommer att vara helt isolerade.

Så du kan naturligtvis också uppnå liknande saker med Docker eller till och med med virtuella miljöer i Python, till exempel.

Men tänk dig att du vill installera flera versioner av dina NVIDIA-drivrutiner.

Detta kommer att bli mycket mer komplicerat.

Och i så fall kan provisionering av flera fjärrmiljöer vara den enda lösningen för dig.

Så det första vi ska göra nu är att faktiskt ansluta till vår AWS-konsol och skapa en grundläggande AWS-instans, en CPU-instans, och sedan kommer vi att använda den lokalt från VS Code.

Nu kör vi.

Jag är nu på min AWS-konsol.

Om det är första gången du använder AWS behöver du bara skapa ett konto med e-postlösenord.

Jag tror inte att de ber om för mycket information.

Och nu kan du skapa en instans i EC2.

Vi kommer att klicka på launch instance.

Vi kan ge vår instans ett namn.

Så låt oss kalla det, till exempel, dev-miljö.

Okej, då.

Nu till den viktiga delen.

Vi måste välja ett operativsystem för vår instans.

Du vill verkligen välja Linux och vad mig beträffar gillar jag verkligen Ubuntu eftersom det är standard och jag är säker på att de senaste drivrutinerna kommer att installeras på Ubuntu, särskilt med NVIDIA-drivrutiner, det kan verkligen hjälpa.

Så jag klickar på Ubuntu här.

Om det är första gången du använder Linux behöver du inte oroa dig.

Vi kommer inte att behöva så många Linux-tricks eller kommandon.

Vi kommer i princip att göra allt från VS-kod, förutom att det naturligtvis kommer att vara Linux bakom huven, men jag tror inte att det kommer att vara ett alltför stort problem för dig.

Du kan lämna 2204 LTS-versionen som den är.

Och nu ska vi välja en enkel CPU-instans.

På AWS har du till exempel M5-instansen, M5 large, två processorer, åtta gigabyte minne.

Perfekt för oss.

Kanske till och med för mycket för idag, men i framtiden kommer du att behöva välja den instans som passar dina behov perfekt.

Okej, då.

Nu måste vi använda ett SSH-nyckelpar.

Så om det här är första gången du använder SSH här måste du skapa ditt eget nyckelpar på AWS, skapa nytt nyckelpar.

Vi kallar det testnyckelpar.

Du kan välja PEM-format, skapa nyckelpar.

Och nu laddar jag ner det, förlåt, på min dator.

Okej, då.

Du behöver inte ändra säkerhetsgruppen här.

Som standard kommer SSH-porten att vara öppen, vilket är okej.

Det är vad vi behöver.

Åtta gigabyte SSD är perfekt för dagens behov.

Och vi kan klicka på launch instance.

Okej, då.

Instansen är klar nu.

Om detta är din första instans som skapas på AWS kanske du måste be AWS support att uppgradera din kvot.

Jag är inte riktigt säker.

För mycket dyra instanser, som GPU-instanser, måste du be om en kvotuppgradering.

För en enkel M5 är jag inte säker.

Men om du får ett felmeddelande här och ber om en kvotökning, så är det vad du ska göra.

Här är vårt exempel.

Som du kan se är den redan igång.

Det gick mycket snabbt.

M5 stor.

Och här till höger har vi IP-adressen som vi kommer att använda.

Nu när vi har skapat vår instans och laddat ner vårt SSH-nyckelpar på vår maskin behöver vi bara öppna VS Code och skapa SSH-anslutningen till vår fjärrserver.

Om det är första gången du använder en SSH-klient i Windows måste du aktivera den.

Här är en handledning från Windows-teamet om hur du gör det.

Du kan helt enkelt skriva create SSH client on Windows, på Google, och du kommer att hitta en hel del handledning.

Här är den officiella.

Om man tittar lite närmare på saken är den mycket enkel.

Du behöver helt enkelt aktivera något i Windows-applikationerna.

Om du använder Linux är det installerat som standard.

Så nu är jag inne i VS Code.

Längst ned till vänster ser du den här knappen.

Jag klickar på anslut nuvarande fönster till värd.

Om det är första gången som du använder denna fjärranslutningsmodul, kanske VS Code kommer att ladda ner plugin.

Det kan därför ta några sekunder innan du får tillgång till funktionen.

Jag konfigurerar värdarna, klicka på konfigurera värdarna.

Jag använder Windows idag, så här ligger min konfiguration.

Och här är konfigurationsfilen som jag behöver fylla i.

Det viktigaste är att vi hämtar IP-adressen till vår instans och klistrar in den här.

Perfekt.

Vi kan ge vår anslutning ett namn, men det är bara för oss.

Låt oss kalla det DevHouse.

Användarnamnet är det användarnamn som SSH-klienten använder för att ansluta till instansen.

Eftersom vi har tillhandahållit en Ubuntu-server är användarnamnet Ubuntu som standard.

Och när jag laddade ner nyckelparet, SSH-nyckelparet, lade jag det på mitt skrivbord i Windows.

Det är alltså här som VS Code kommer att hämta nyckeln.

Du kan spara filen och nu klicka längst ned, ansluta aktuellt fönster till host igen.

DevHouse är vad vi just har skapat.

Du kommer att behöva vänta här.

Mycket bra.

Du kan se att VS Code ber mig om ett nyckelutbyte.

Så ja, det här är första gången vi ansluter till den här instansen.

Av säkerhetsskäl måste vi därför acceptera detta nya fingeravtryck.

Bra.

Det verkar inte särskilt dramatiskt, men här är vi nu faktiskt på vår avlägsna AWS-instans.

Och du kan se det eftersom du längst ner till vänster kan se SSH.

För att kontrollera det kan du öppna en terminal högst upp, klicka på ny terminal.

Och här kan du se att den här terminalen absolut inte är terminalen på min lokala Windows-maskin.

Jag använder en Ubuntu-maskin.

Och om jag vill kan jag använda några Linux-kommandon som vanligt i Linux, t.ex. lista kataloger.

Vi har ingenting här, så vi kan skapa en katalog.

Låt oss säga att vi vill skapa en utvecklingsmiljö för att göra ett par tester.

Och nu har vi skapat vår nya testmapp här.

Antingen vill du göra allt med kommandoraden, eller kanske ännu bättre, du vill använda det grafiska gränssnittet från VS Code för att bläddra i din fil som vanligt.

Så du klickar högst upp, öppna mapp.

Och här kan du se testkatalogen som jag just skapade.

Nu öppnas VS Code igen, men den här gången i den specifika mapp som jag nämnde.

Och från och med nu kan du börja utveckla som vanligt, som om du var på din lokala maskin, förutom att din kod kommer att exekveras på AWS.

Så låt oss göra ett försök.

Låt oss till exempel skapa ett enkelt Python-program som säger hej, ny fil, test.py, print, hello

Spara filen.

I din konsol kan vi nu köra filen.

Hej på er.

Så du har precis kört din första fjärrkod på AWS.

Det var allt för i dag.

Nu kan du använda din fjärrutvecklingsmiljö så mycket du vill.

Glöm inte att stänga av din AWS-instans när du inte behöver den längre.

Och vi ses snart igen.