Deze cursus gaat over het opzetten van een ontwikkelomgeving op afstand (ook bekend als "remote interpreters"), zodat je lokaal kunt coderen maar je code kunt uitvoeren op een server op afstand.
Externe ontwikkelomgevingen hebben verschillende grote voordelen:
In deze video laten we zien hoe je een serverinstantie aanmaakt op AWS EC2 en vervolgens de ontwikkelomgeving op afstand instelt in VSCode.
Dit is de structuur van de cursus:
Hallo, dit is Julien Salinas van NLP Cloud.
Vandaag laat ik je zien hoe je een ontwikkelomgeving op afstand kunt opzetten, zodat je op je lokale machine kunt coderen, maar je code kunt uitvoeren op een AWS-server op afstand.
Er is geen vereiste voor deze cursus, dus daar gaan we.
Wat bedoelen we met een ontwikkelomgeving op afstand? Het betekent eigenlijk dat we lokaal gaan coderen in VS Code, zoals de meesten van ons tegenwoordig doen.
Als je een andere ontwikkelomgeving gebruikt, moet je controleren of externe interpreters of externe ontwikkelomgevingen worden ondersteund of niet, en we gaan de code daadwerkelijk op afstand uitvoeren op een AWS-instantie.
We kiezen vandaag voor AWS omdat ik weet dat de meesten van jullie AWS gebruiken in jullie dagelijkse productieworkflow, maar als je GCP of Azure of OVH of Scaleware of iets anders gebruikt, zal het proces erg op elkaar lijken.
Zoals je zult zien, gaat het over het provisionen van een instantie, het ophalen van het IP-adres en dit lokaal gebruiken in VS Code om via SSH verbinding te maken met de instantie.
Waarom gebruiken we eigenlijk een ontwikkelomgeving op afstand? De eerste reden is dat we de kosten van onze lokale ontwikkelomgeving willen kunnen verlagen.
Je wilt misschien geen dure high-end MacBook Pro Ultra M2 kopen, bijvoorbeeld, en in dat geval kan het kosteneffectiever voor je zijn om een goedkopere lokale machine te kopen, maar je code op afstand uit te voeren wanneer je maar wilt.
Een tweede zeer belangrijke reden, vooral voor machine learning ingenieurs, is dat je soms toegang nodig hebt tot high-end hardware zoals GPU's, en deze hardware is niet noodzakelijk beschikbaar op je lokale machine.
Als je bijvoorbeeld toegang wilt hebben tot een A100 NVIDIA GPU of H100, dan zul je zeker niet in staat zijn om lokaal toegang te krijgen tot dergelijke GPU's.
Dit is, zoals we vandaag gaan laten zien, erg nuttig omdat je anders simpelweg geen toegang kunt krijgen tot specifieke machines voor GPU-ontwikkeling.
Tot slot is het feit dat je een externe omgeving gaat gebruiken geweldig omdat het eigenlijk een perfect geïsoleerde omgeving is, wat betekent dat als je specifieke bibliotheken of frameworks of stuurprogramma's wilt installeren, je dat kunt doen op je externe AWS machine.
En als je morgen bijvoorbeeld een andere versie van je NVIDIA stuurprogramma's en CUDA toolkit of Python bibliotheken moet installeren, dan hoef je alleen maar een tweede server te installeren en je weet zeker dat beide servers elkaar niet in de weg zitten.
Beide configuraties zijn perfect geïsoleerd.
Dus je kunt natuurlijk ook vergelijkbare dingen bereiken met Docker of zelfs met virtuele omgevingen in bijvoorbeeld Python.
Maar stel je voor dat je verschillende versies van je NVIDIA-stuurprogramma's wilt installeren.
Dit wordt veel complexer.
En in dat geval is de provisioning van meerdere externe omgevingen misschien de enige oplossing.
Dus het eerste wat we nu gaan doen is verbinding maken met onze AWS-console en een basis AWS-instance, een CPU-instance, aanmaken en deze lokaal gebruiken vanuit VS Code.
Daar gaan we.
Ik ben nu op mijn AWS-console.
Als dit de eerste keer is dat je AWS gebruikt, hoef je alleen maar een account met e-mailwachtwoord aan te maken.
Ik denk niet dat ze te veel informatie vragen.
En nu kun je een instantie aanmaken in EC2.
We klikken op launch instance.
We kunnen onze instantie een naam geven.
Laten we het bijvoorbeeld dev-omgeving noemen.
Oké.
Nu het belangrijke deel.
We moeten een besturingssysteem kiezen voor onze instantie.
Je wilt echt Linux kiezen en wat mij betreft, ik hou echt van Ubuntu omdat het standaard is en ik weet zeker dat de meest recente stuurprogramma's op Ubuntu worden geïnstalleerd, vooral met NVIDIA-stuurprogramma's kan het echt helpen.
Dus ik klik hier op Ubuntu.
Als dit de eerste keer is dat je Linux gebruikt, geen zorgen.
We zullen niet veel Linux-trucjes of commando's nodig hebben.
We gaan in principe alles doen vanuit VS code, behalve dat het achter de motorkap natuurlijk Linux wordt, maar ik denk niet dat dat een al te groot probleem voor je zal zijn.
Je kunt de 2204 LTS versie laten zoals hij is.
En nu gaan we een eenvoudige CPU-instantie selecteren.
Op AWS heb je bijvoorbeeld de M5 instance, M5 large, twee CPU's, acht gigabyte geheugen.
Perfect voor ons.
Misschien zelfs te veel voor vandaag, maar in de toekomst moet je de instantie kiezen die perfect bij je behoeften past.
Oké.
Nu moeten we een SSH sleutelpaar gebruiken.
Dus als dit de eerste keer is dat je SSH hier gebruikt, moet je je eigen sleutelpaar aanmaken op AWS, nieuw sleutelpaar aanmaken.
Laten we het test sleutelpaar noemen.
U kunt het PEM-formaat selecteren en een sleutelpaar maken.
En nu ben ik het aan het downloaden, sorry, op mijn machine.
Oké.
Je hoeft de beveiligingsgroep hier niet te wijzigen.
Standaard staat de SSH-poort open, wat in orde is.
Dat is wat we nodig hebben.
Acht gig SSD is perfect voor vandaag.
En we kunnen op launch instance klikken.
Oké.
De instantie is nu klaar.
Als dit je eerste instantie is die je op AWS aanmaakt, moet je misschien AWS support vragen om je quota te upgraden.
Ik weet het niet precies.
Voor erg dure instanties, zoals GPU-instanties, moet je een quota-upgrade aanvragen.
Voor een eenvoudige M5 weet ik het niet zeker.
Maar als je hier een foutmelding krijgt en vraagt om quotaverhoging, dan is dat wat je gaat doen.
Dit is ons voorbeeld.
Zoals je kunt zien, draait het al.
Het was erg snel.
M5 groot.
En hier rechts hebben we het IP-adres dat we gaan gebruiken.
Nu we onze instantie hebben aangemaakt en ons SSH-sleutelpaar op onze machine hebben gedownload, moeten we VS Code openen en de SSH-verbinding met onze externe server maken.
Als dit de eerste keer is dat je een SSH-client onder Windows gebruikt, moet je deze activeren.
Hier is een tutorial van het Windows-team over hoe het moet.
Je kunt gewoon op Google SSH-client voor Windows maken typen en dan vind je een heleboel tutorials.
Hier is de officiële.
Als je een beetje naar beneden bladert, is het heel eenvoudig.
Je moet gewoon iets activeren in de Windows-toepassingen.
Als je Linux gebruikt, is het standaard geïnstalleerd.
Dus ik ben nu in VS Code.
Linksonder zie je deze knop.
Ik klik op huidige venster verbinden met host.
Als dit de eerste keer is dat je deze externe verbindingsmodule gebruikt, gaat VS Code misschien de plugin downloaden.
Het kan dus een paar seconden duren voordat je de functie kunt gebruiken.
Ik configureer de hosts, klik op configureer de hosts.
Ik gebruik Windows vandaag, dus hier staat mijn configuratie.
En hier is het configuratiebestand dat ik moet vullen.
Het belangrijkste is dus dat we het IP-adres van onze instantie ophalen en dit hier plakken.
Perfect.
We kunnen onze verbinding een naam geven, maar die is alleen voor ons.
Laten we het DevHouse noemen.
De gebruikersnaam is de gebruikersnaam die wordt gebruikt voor de SSH-client om verbinding te maken met de instantie.
Aangezien we een Ubuntu-server hebben, is de gebruikersnaam standaard Ubuntu.
En toen ik het sleutelpaar downloadde, SSH sleutelpaar, plaatste ik het op mijn bureaublad onder Windows.
Dus hier gaat VS Code de sleutel ophalen.
Je kunt het bestand opslaan en nu onderaan klikken, het huidige venster opnieuw verbinden met de host.
DevHouse is wat we net hebben gecreëerd.
Je zult hier moeten wachten.
Zeer goed.
Je kunt zien dat VS Code me om sleuteluitwisseling vraagt.
Dus ja, dit is de eerste keer dat we verbinding maken met deze instantie.
Dus om veiligheidsredenen moeten we deze nieuwe vingerafdruk accepteren.
Goed.
Het lijkt niet erg dramatisch, maar hier zijn we nu daadwerkelijk op onze externe AWS-instantie.
En je kunt het zien omdat je linksonder SSH kunt zien.
Om het te controleren kun je bovenaan een terminal openen en op nieuwe terminal klikken.
En hier kun je zien dat deze terminal absoluut niet de terminal van mijn lokale Windows machine is.
Ik zit op een Ubuntu-machine.
En als ik dat wil, kan ik enkele Linux-commando's gebruiken zoals gebruikelijk op Linux, zoals list directories.
We hebben hier niets, dus we kunnen een map maken.
Laten we zeggen dat we een ontwikkelomgeving willen maken om een paar tests te doen.
En nu hebben we hier onze nieuwe testmap gemaakt.
Of je wilt alles met de opdrachtregel doen, of misschien nog beter, je wilt de grafische interface van VS Code gebruiken om zoals gewoonlijk door je bestand te bladeren.
Dus je klikt bovenaan, open map.
En hier zie je de testdirectory die ik zojuist heb gemaakt.
Nu opent VS Code opnieuw, maar nu in de specifieke map die ik noemde.
En vanaf nu kun je gewoon beginnen met ontwikkelen, alsof je op je lokale machine zit, behalve dat je code wordt uitgevoerd op AWS.
Laten we het eens proberen.
Laten we bijvoorbeeld een eenvoudig Python-programma maken met de tekst hallo, nieuw bestand, test.py, print, hallo
Sla het bestand op.
En dan kunnen we in je console het bestand uitvoeren.
Hallo.
Dus je hebt net met succes je eerste code op afstand uitgevoerd op AWS.
Dat is alles voor vandaag.
Je kunt je ontwikkelomgeving op afstand nu zoveel gebruiken als je wilt.
Vergeet niet om je AWS-instantie uit te schakelen als je hem niet meer nodig hebt.
En tot snel.