In diesem Kurs geht es um die Einrichtung von Remote-Entwicklungsumgebungen (auch bekannt als "Remote-Interpreter"), so dass Sie lokal programmieren, Ihren Code aber auf einem Remote-Server ausführen können.
Remote-Entwicklungsumgebungen haben mehrere große Vorteile:
In diesem Video zeigen wir, wie Sie eine Serverinstanz auf AWS EC2 erstellen und dann die Remote-Entwicklungsumgebung in VSCode einrichten.
Hier ist die Struktur des Kurses:
Hallo, hier ist Julien Salinas von NLP Cloud.
Heute zeige ich Ihnen, wie Sie eine Remote-Entwicklungsumgebung einrichten, damit Sie auf Ihrem lokalen Rechner programmieren, Ihren Code aber auf einem entfernten AWS-Server ausführen können.
Für diesen Kurs gibt es keine Voraussetzungen, also los geht's.
Was verstehen wir unter einer entfernten Entwicklungsumgebung? Es bedeutet eigentlich, dass wir lokal in VS Code programmieren werden, wie die meisten von uns heute.
Wenn Sie eine andere Entwicklungsumgebung verwenden, sollten Sie prüfen, ob Remote-Interpreter oder Remote-Entwicklungsumgebungen unterstützt werden oder nicht, und wir werden den Code tatsächlich remote auf einer AWS-Instanz ausführen.
Wir haben uns heute für AWS entschieden, weil ich weiß, dass die meisten von Ihnen AWS in Ihrem täglichen Produktionsworkflow verwenden. Wenn Sie jedoch GCP oder Azure oder OVH oder Scaleware oder etwas anderes verwenden, wird der Prozess sehr ähnlich sein.
Wie Sie sehen werden, geht es darum, eine Instanz bereitzustellen, die IP-Adresse abzurufen und sie lokal in VS Code zu verwenden, um sich über SSH mit der Instanz zu verbinden.
Warum verwenden wir eigentlich eine Remote-Entwicklungsumgebung? Der erste Grund ist, dass wir in der Lage sein wollen, die Kosten für unsere lokale Entwicklungsumgebung zu senken.
Sie möchten vielleicht kein sehr teures High-End-MacBook Pro Ultra M2 kaufen, und in diesem Fall könnte es für Sie kostengünstiger sein, einen niedrigeren lokalen Rechner zu kaufen, auf dem Sie Ihren Code bei Bedarf aus der Ferne ausführen können.
Ein zweiter sehr wichtiger Grund, insbesondere für Ingenieure im Bereich des maschinellen Lernens, ist die Tatsache, dass Sie manchmal auf High-End-Hardware wie z. B. GPUs zugreifen müssen und diese Hardware nicht unbedingt auf Ihrem lokalen Rechner verfügbar ist.
Wenn Sie z. B. Zugang zu einem A100 NVIDIA-Grafikprozessor oder einem H100 haben möchten, werden Sie sicher nicht in der Lage sein, lokal Zugang zu solchen Grafikprozessoren zu erhalten.
Dies ist, wie wir heute zeigen werden, sehr nützlich, da man sonst keinen Zugang zu bestimmten Maschinen für die GPU-Entwicklung erhält.
Und schließlich ist die Tatsache, dass Sie eine Remote-Umgebung verwenden werden, großartig, weil es sich dabei um eine vollkommen isolierte Umgebung handelt, d. h., wenn Sie bestimmte Bibliotheken, Frameworks oder Treiber installieren möchten, können Sie dies auf Ihrem AWS-Remote-Rechner tun.
Und wenn Sie morgen eine andere Version Ihrer NVIDIA-Treiber, des CUDA-Toolkits oder der Python-Bibliotheken installieren müssen, brauchen Sie nur einen zweiten Server bereitzustellen, und Sie können sicher sein, dass die beiden Server sich nicht gegenseitig stören.
Beide Konfigurationen werden perfekt isoliert sein.
Ähnliches kann man natürlich auch mit Docker oder sogar mit virtuellen Umgebungen, zum Beispiel in Python, erreichen.
Aber stellen Sie sich vor, Sie möchten mehrere Versionen Ihrer NVIDIA-Treiber installieren.
Dies wird sehr viel komplexer sein.
In diesem Fall könnte die Bereitstellung mehrerer entfernter Umgebungen die einzige Lösung für Sie sein.
Das erste, was wir jetzt tun werden, ist eine Verbindung zu unserer AWS-Konsole herzustellen und eine grundlegende AWS-Instanz, eine CPU-Instanz, zu erstellen, die wir dann lokal von VS Code aus verwenden werden.
Jetzt geht's los.
Ich bin jetzt in meiner AWS-Konsole.
Wenn Sie AWS zum ersten Mal nutzen, müssen Sie lediglich ein Konto mit einem E-Mail-Passwort erstellen.
Ich glaube nicht, dass sie zu viele Informationen verlangen.
Und jetzt können Sie eine Instanz in EC2 erstellen.
Wir klicken auf Instanz starten.
Wir können unserer Instanz einen Namen geben.
Nennen wir sie also zum Beispiel Entwicklungsumgebung.
Ja.
Jetzt kommt der wichtige Teil.
Wir müssen ein Betriebssystem für unsere Instanz auswählen.
Sie sollten sich wirklich für Linux entscheiden, und was mich betrifft, so gefällt mir Ubuntu sehr gut, weil es Standard ist und ich sicher bin, dass die neuesten Treiber auf Ubuntu installiert werden, vor allem mit NVIDIA-Treibern, das kann wirklich helfen.
Also klicke ich hier auf Ubuntu.
Wenn Sie zum ersten Mal mit Linux arbeiten, machen Sie sich keine Sorgen.
Wir werden nicht allzu viele Linux-Tricks oder -Befehle benötigen.
Wir werden im Grunde alles von VS-Code aus machen, außer dass natürlich hinter der Haube Linux sein wird, aber ich glaube nicht, dass das ein allzu großes Problem für Sie sein wird.
Sie können die Version 2204 LTS so belassen, wie sie ist.
Jetzt werden wir eine einfache CPU-Instanz auswählen.
Bei AWS haben Sie zum Beispiel die M5-Instanz, M5 large, zwei CPUs, acht Gigabyte Speicher.
Perfekt für uns.
Vielleicht sogar zu viel für heute, aber in Zukunft müssen Sie die Instanz wählen, die Ihren Bedürfnissen perfekt entspricht.
Ja.
Jetzt müssen wir ein SSH-Schlüsselpaar verwenden.
Wenn Sie also zum ersten Mal SSH verwenden, müssen Sie Ihr eigenes Schlüsselpaar auf AWS erstellen.
Nennen wir es Testschlüsselpaar.
Sie können das PEM-Format auswählen und ein Schlüsselpaar erstellen.
Und jetzt lade ich es, Entschuldigung, auf meinen Rechner herunter.
Ja.
Sie brauchen die Sicherheitsgruppe hier nicht zu ändern.
Standardmäßig wird der SSH-Port offen sein, was in Ordnung ist.
Das ist es, was wir brauchen.
Acht Gigabyte SSD sind perfekt für die heutige Zeit.
Und wir können auf Instanz starten klicken.
Ja.
Die Instanz ist jetzt bereit.
Wenn Sie zum ersten Mal eine Instanz auf AWS erstellen, müssen Sie möglicherweise den AWS-Support bitten, Ihre Quote zu erhöhen.
Ich bin mir nicht ganz sicher.
Für sehr teure Instanzen, wie GPU-Instanzen, müssen Sie ein Quota-Upgrade beantragen.
Bei einem einfachen M5-Beispiel bin ich mir nicht sicher.
Aber wenn Sie hier eine Fehlermeldung erhalten, die nach einer Quotenerhöhung fragt, ist es das, was Sie tun werden.
Hier ist unser Beispiel.
Wie Sie sehen können, läuft sie bereits.
Es ging sehr schnell.
M5 groß.
Und hier auf der rechten Seite haben wir die IP-Adresse, die wir verwenden werden.
Nun, da wir unsere Instanz erstellt und unser SSH-Schlüsselpaar auf unseren Rechner heruntergeladen haben, müssen wir VS Code öffnen und die SSH-Verbindung zu unserem Remote-Server herstellen.
Wenn Sie zum ersten Mal einen SSH-Client unter Windows verwenden, müssen Sie ihn aktivieren.
Hier finden Sie eine Anleitung des Windows-Teams, wie das geht.
Geben Sie bei Google einfach "SSH-Client unter Windows erstellen" ein, und Sie werden eine Menge Anleitungen finden.
Hier ist die offizielle Version.
Wenn Sie ein wenig nach unten blättern, ist es sehr einfach.
Sie müssen lediglich etwas in den Windows-Anwendungen aktivieren.
Wenn Sie Linux verwenden, ist es standardmäßig installiert.
Ich bin jetzt also in VS Code.
Unten links sehen Sie diese Schaltfläche.
Ich klicke auf "Aktuelles Fenster mit Host verbinden".
Wenn Sie dieses Fernverbindungsmodul zum ersten Mal verwenden, kann es sein, dass VS Code das Plugin herunterladen wird.
Es kann also ein paar Sekunden dauern, bis Sie auf die Funktion zugreifen können.
Ich konfiguriere die Hosts, indem ich auf "Hosts konfigurieren" klicke.
Ich arbeite heute mit Windows, daher befindet sich meine Konfiguration hier.
Und hier ist die Konfigurationsdatei, die ich ausfüllen muss.
Das Wichtigste ist also, dass wir die IP-Adresse unserer Instanz abrufen und hier einfügen.
Perfekt.
Wir können unserer Verbindung einen Namen geben, aber der gilt nur für uns.
Nennen wir es DevHouse.
Der Benutzername ist der Benutzername, den der SSH-Client für die Verbindung zur Instanz verwendet.
Da wir einen Ubuntu-Server eingerichtet haben, ist der Benutzername standardmäßig Ubuntu.
Als ich das Schlüsselpaar, das SSH-Schlüsselpaar, heruntergeladen habe, habe ich es auf meinem Desktop unter Windows abgelegt.
Hier wird VS Code also den Schlüssel abrufen.
Sie können die Datei speichern und nun unten klicken, um das aktuelle Fenster wieder mit dem Host zu verbinden.
DevHouse ist das, was wir gerade geschaffen haben.
Sie werden hier warten müssen.
Sehr gut.
Sie können sehen, dass VS Code mich nach einem Schlüsselaustausch fragt.
Ja, dies ist das erste Mal, dass wir uns mit dieser Instanz verbinden.
Aus Sicherheitsgründen müssen wir also diesen neuen Fingerabdruck akzeptieren.
Gut.
Es scheint nicht sehr dramatisch, aber hier sind wir nun tatsächlich auf unserer entfernten AWS-Instanz.
Und Sie können es sehen, denn unten links sehen Sie SSH.
Um dies zu überprüfen, können Sie oben ein Terminal öffnen und auf neues Terminal klicken.
Und hier können Sie sehen, dass dieses Terminal absolut nicht das Terminal meines lokalen Windows-Rechners ist.
Ich arbeite mit einem Ubuntu-Rechner.
Und wenn ich möchte, kann ich einige Linux-Befehle wie unter Linux üblich verwenden, z. B. Verzeichnisse auflisten.
Wir haben hier nichts, also können wir ein Verzeichnis erstellen.
Nehmen wir an, wir wollen eine Entwicklungsumgebung erstellen, um ein paar Tests durchzuführen.
Und jetzt haben wir hier unseren neuen Testordner erstellt.
Entweder Sie möchten alles über die Befehlszeile erledigen, oder, vielleicht noch besser, Sie möchten die grafische Oberfläche von VS Code verwenden, um Ihre Datei wie gewohnt zu durchsuchen.
Sie klicken also oben auf "Ordner öffnen".
Und hier sehen Sie das Testverzeichnis, das ich gerade erstellt habe.
Jetzt wird VS Code wieder geöffnet, aber diesmal in dem von mir erwähnten Ordner.
Von nun an können Sie wie gewohnt mit der Entwicklung beginnen, als ob Sie auf Ihrem lokalen Rechner arbeiten würden, nur dass Ihr Code auf AWS ausgeführt wird.
Versuchen wir es also mal.
Erstellen wir zum Beispiel ein einfaches Python-Programm, das sagt: hallo, neue Datei, test.py, print, hallo
Speichern Sie die Datei.
In der Konsole können wir nun die Datei ausführen.
Hallo.
Sie haben also gerade erfolgreich Ihren ersten Remote-Code auf AWS ausgeführt.
Das war's für heute.
Sie können Ihre Remote-Entwicklungsumgebung jetzt so oft nutzen, wie Sie möchten.
Vergessen Sie nicht, Ihre AWS-Instanz abzuschalten, wenn Sie sie nicht mehr benötigen.
Und bis bald.