Kæmper du med AI eller full-stack-udvikling? Vores eksperter er her for at vejlede dig: skræddersyet rådgivning, teknisk integration og meget mere. Kontakt os på [email protected].

Opsæt et eksternt udviklingsmiljø på en AWS Server med VSCode

Summary

Dette kursus handler om opsætning af eksterne udviklingsmiljøer (også kendt som "remote interpreters"), så du kan kode lokalt, men afvikle din kode på en ekstern server.

Fjernudviklingsmiljøer har flere store fordele:

I denne video viser vi, hvordan man opretter en serverinstans på AWS EC2 og derefter konfigurerer fjernudviklingsmiljøet i VSCode.

Her er strukturen for kurset:

Transcript

Hej, det er Julien Salinas fra NLP Cloud.

I dag vil jeg vise dig, hvordan du opretter et eksternt udviklingsmiljø, så du kan kode på din lokale maskine, men udføre din kode på en ekstern AWS-server.

Der er ingen forudsætninger for dette kursus, så nu går vi i gang.

Hvad mener vi med fjernudviklingsmiljø? Det betyder faktisk, at vi kommer til at kode lokalt i VS Code, som de fleste af os gør i dag.

Hvis du bruger et andet udviklingsmiljø, bør du tjekke, om fjernfortolkere eller fjernudviklingsmiljøer er understøttet eller ej, og vi vil faktisk udføre koden eksternt på en AWS-instans.

Vi vælger AWS i dag, fordi jeg ved, at de fleste af jer faktisk bruger AWS i jeres daglige produktionsworkflow, men hvis du bruger GCP eller Azure eller OVH eller Scaleware eller noget andet, vil processen være meget ens.

Som du vil se, handler det om at provisionere en instans, hente IP-adressen og bruge den lokalt i VS Code til at oprette forbindelse til instansen via SSH.

Hvorfor bruger vi egentlig et eksternt udviklingsmiljø? Den første grund er, at vi ønsker at kunne reducere omkostningerne til vores lokale udviklingsmiljø.

Måske har du ikke lyst til at købe en meget dyr high-end MacBook Pro Ultra M2, for eksempel, og i så fald kan det være mere omkostningseffektivt for dig at købe en mindre avanceret lokal maskine, men udføre din kode eksternt, når du har brug for det.

En anden meget vigtig grund, især for maskinlæringsingeniører, er, at du nogle gange har brug for adgang til avanceret hardware som f.eks. GPU'er, og denne hardware er ikke nødvendigvis tilgængelig på din lokale maskine.

Hvis du f.eks. gerne vil have adgang til en A100 NVIDIA GPU eller H100, vil du helt sikkert ikke kunne få adgang til sådanne GPU'er lokalt.

Som vi vil vise i dag, er det meget nyttigt at gøre dette, for ellers kan man simpelthen ikke få adgang til specifikke maskiner til GPU-udvikling.

Sidst, men ikke mindst, er det fantastisk, at du bruger et fjernmiljø, fordi det faktisk er et helt isoleret miljø, hvilket betyder, at hvis du vil installere specifikke biblioteker, frameworks eller drivere, kan du gøre det på din eksterne AWS-maskine.

Og hvis du i morgen har brug for at installere, lad os sige, en anden version af dine NVIDIA-drivere og CUDA toolkit eller Python-biblioteker, ting som dette, skal du blot provisionere en anden server, og du er helt sikker på, at begge servere ikke vil forstyrre.

Begge konfigurationer vil være perfekt isolerede.

Så du kan selvfølgelig også opnå lignende ting med Docker eller endda med virtuelle miljøer i Python, for eksempel.

Men forestil dig, at du vil installere flere versioner af dine NVIDIA-drivere.

Det bliver meget mere komplekst.

Og i det tilfælde kan provisionering af flere fjernmiljøer være den eneste løsning for dig.

Så det første, vi vil gøre nu, er faktisk at oprette forbindelse til vores AWS-konsol og oprette en grundlæggende AWS-instans, en CPU-instans, og så vil vi bruge den lokalt fra VS Code.

Så er vi i gang.

Jeg er nu på min AWS-konsol.

Hvis det er første gang, du bruger AWS, skal du blot oprette en konto med e-mail-adgangskode.

Jeg synes ikke, de beder om for meget information.

Og nu kan du oprette en instans i EC2.

Vi klikker på launch instance.

Vi kan give vores instans et navn.

Så lad os for eksempel kalde det et udviklingsmiljø.

Okay. Jeg er med.

Nu kommer den vigtige del.

Vi skal vælge et operativsystem til vores instans.

Du vil virkelig gerne vælge Linux, og hvad mig angår, kan jeg virkelig godt lide Ubuntu, fordi det er standard, og jeg er sikker på, at de nyeste drivere vil blive installeret på Ubuntu, især med NVIDIA-drivere, det kan virkelig hjælpe.

Så jeg klikker på Ubuntu her.

Hvis det er første gang, du bruger Linux, skal du ikke bekymre dig.

Vi får ikke brug for så mange Linux-tricks eller -kommandoer.

Vi kommer stort set til at gøre alt fra VS-kode, bortset fra at der selvfølgelig vil være Linux bag motorhjelmen, men jeg tror ikke, det vil være et stort problem for dig.

Du kan lade 2204 LTS-versionen være, som den er.

Og nu skal vi vælge en simpel CPU-instans.

På AWS har du for eksempel M5-instansen, M5 large, to CPU'er, otte gigabyte hukommelse.

Perfekt til os.

Måske endda for meget i dag, men i fremtiden bliver du nødt til at vælge den instans, der passer perfekt til dine behov.

Okay. Jeg er med.

Nu skal vi bruge et SSH-nøglepar.

Så hvis det er første gang, du bruger SSH her, skal du oprette dit eget nøglepar på AWS, opret nyt nøglepar.

Lad os kalde det testnøglepar.

Du kan vælge PEM-formatet og oprette et nøglepar.

Og nu downloader jeg den, undskyld, på min maskine.

Okay. Jeg er med.

Du behøver ikke at ændre sikkerhedsgruppen her.

Som standard vil SSH-porten være åben, hvilket er okay.

Det er det, vi har brug for.

Otte gigabyte SSD er perfekt til i dag.

Og vi kan klikke på launch instance.

Okay. Jeg er med.

Instansen er klar nu.

Hvis dette er din første instansoprettelse på AWS, skal du måske bede AWS-support om at opgradere din kvote.

Jeg er ikke helt sikker.

For meget dyre instanser, som GPU-instanser, skal du bede om en kvoteopgradering.

For en simpel M5 er jeg ikke sikker.

Men hvis du får en fejl her, hvor du bliver bedt om at øge kvoten, så er det det, du skal gøre.

Her er vores eksempel.

Som du kan se, kører den allerede.

Det var meget hurtigt.

M5 stor.

Og her til højre har vi den IP-adresse, vi skal bruge.

Nu, hvor vi har oprettet vores instans og downloadet vores SSH-nøglepar på vores maskine, skal vi åbne VS Code og oprette SSH-forbindelsen til vores fjernserver.

Hvis det er første gang, du bruger en SSH-klient på Windows, skal du aktivere den.

Her er en vejledning fra Windows-teamet om, hvordan du gør det.

Du kan bare skrive create SSH client on Windows på Google, så finder du en masse vejledninger.

Her er den officielle.

Hvis du kigger lidt ned, er det meget enkelt.

Du skal blot aktivere noget i Windows-applikationerne.

Hvis du bruger Linux, er det installeret som standard.

Så nu er jeg i VS Code.

Nederst til venstre kan du se denne knap.

Jeg klikker på connect current window to host.

Hvis det er første gang, du bruger dette fjernforbindelsesmodul, vil VS Code måske downloade plugin'et.

Så det kan tage et par sekunder, før du kan få adgang til funktionen.

Jeg konfigurerer værterne ved at klikke på Konfigurer værterne.

Jeg er på Windows i dag, så her er, hvor min konfiguration er placeret.

Og her er den konfigurationsfil, jeg skal udfylde.

Så vigtigst af alt skal vi hente IP-adressen på vores instans og indsætte den her.

Perfekt.

Vi kan give vores forbindelse et navn, men det er kun for os.

Lad os kalde det DevHouse.

Brugernavnet er det brugernavn, der bruges af SSH-klienten til at oprette forbindelse til instansen.

Da vi har installeret en Ubuntu-server, er brugernavnet som standard Ubuntu.

Og da jeg downloadede nøgleparret, SSH-nøgleparret, lagde jeg det på mit skrivebord i Windows.

Så det er her, VS Code vil hente nøglen.

Du kan gemme filen og nu klikke nederst og forbinde det aktuelle vindue til værten igen.

DevHouse er det, vi lige har skabt.

Du bliver nødt til at vente her.

Meget god.

Du kan se, at VS Code beder mig om en nøgleudveksling.

Så ja, det er første gang, vi opretter forbindelse til denne instans.

Så af sikkerhedsmæssige årsager er vi nødt til at acceptere dette nye fingeraftryk.

Det er godt.

Det virker ikke særlig dramatisk, men nu er vi faktisk på vores eksterne AWS-instans.

Og du kan se det, for nederst til venstre kan du se SSH.

For at tjekke det, kan du åbne en terminal øverst og klikke på ny terminal.

Og her kan du se, at denne terminal absolut ikke er terminalen på min lokale Windows-maskine.

Jeg er på en Ubuntu-maskine.

Og hvis jeg vil, kan jeg bruge nogle Linux-kommandoer som normalt på Linux, f.eks. liste mapper.

Vi har ikke noget her, så vi kan oprette en mappe.

Lad os sige, at vi vil skabe et udviklingsmiljø for at lave et par tests.

Og nu har vi oprettet vores nye testmappe her.

Enten vil du gøre alt med kommandolinjen, eller måske endnu bedre, du vil bruge den grafiske grænseflade fra VS Code til at gennemse din fil, som du plejer.

Så du klikker øverst, åben mappe.

Og her kan du se den testmappe, jeg lige har oprettet.

Nu åbner VS Code igen, men denne gang i den specifikke mappe, jeg nævnte.

Og fra nu af kan du begynde at udvikle som normalt, som om du var på din lokale maskine, bortset fra at din kode vil blive afviklet på AWS.

Så lad os prøve.

Lad os for eksempel lave et simpelt Python-program, der siger hej, ny fil, test.py, print, hello

Gem filen.

Og i din konsol kan vi nu udføre filen.

Hej med dig.

Så du har lige kørt din første fjernkode på AWS med succes.

Det var alt for i dag.

Nu kan du bruge dit eksterne udviklingsmiljø, så meget du vil.

Glem ikke at slukke for din AWS-instans, når du ikke længere har brug for den.

Og vi ses snart.