Einrichten von Studio für die Ausführung mit Subnetzen ohne Internetzugang innerhalb einer VPC - Amazon SageMaker AI

Einrichten von Studio für die Ausführung mit Subnetzen ohne Internetzugang innerhalb einer VPC

In diesem Handbuch wird Ihnen gezeigt, wie Sie eine Verbindung zu Bereichen Amazon SageMaker Studio aus Visual Studio Code herstellen können, wenn Ihre Amazon SageMaker-AI-Domain in privaten Subnetzen ohne Internetzugang ausgeführt wird. Sie erfahren mehr über die Konnektivitätsanforderungen und Einrichtungsoptionen, um sichere Remoteverbindungen in isolierten Netzwerkumgebungen herzustellen.

Sie können Amazon SageMaker Studio so konfigurieren, dass es nur im VPC-Modus mit Subnetzen ohne Internetzugang ausgeführt wird. Diese Einrichtung verbessert die Sicherheit Ihrer Machine-Learning-Workloads, indem sie in einer isolierten Netzwerkumgebung arbeitet, in der der gesamte Datenverkehr über die VPC fließt. Um externe Kommunikation zu ermöglichen und gleichzeitig die Sicherheit zu gewährleisten, verwenden Sie VPC-Endpunkte für AWS-Services und konfigurieren Sie VPC PrivateLink für erforderliche AWS-Abhängigkeiten.

Netzwerkanforderungen für den Remotezugriff in Studio

Einschränkungen des VPC-Modus Studio im VPC-Modus unterstützt nur private Subnetze. Studio kann nicht mit Subnetzen arbeiten, die direkt mit einem Internet-Gateway (IGW) verbunden sind. Remoteverbindungen mit VS Code haben dieselben Einschränkungen wie SageMaker AI. Weitere Informationen finden Sie unter Verbinden von Studio-Notebooks in einer VPC mit externen Ressourcen.

VPC-PrivateLink-Anforderungen Wenn SageMaker AI in privaten Subnetzen ausgeführt wird, konfigurieren Sie diese SSM-VPC-Endpunkte zusätzlich zu den für SageMaker erforderlichen Standard-VPC-Endpunkten. Weitere Informationen finden Sie unter Verbinden von Studio über einen VPC-Endpunkt.

  • com.amazonaws.REGION.ssm

  • com.amazonaws.REGION.ssmmessages

Spezifische Netzwerkanforderungen für VS Code

Die Remoteverbindung mit VS Code erfordert die Remote-Entwicklung mit VS Code, wofür ein bestimmter Netzwerkzugang erforderlich ist, um den Remoteserver und die Erweiterungen zu installieren. Vollständige Netzwerkanforderungen finden Sie in den häufig gestellten Fragen zur Remote-Entwicklung in der Visual Studio Code-Dokumentation. Im Folgenden finden Sie eine Zusammenfassung der Anforderungen:

  • Für die Installation und Aktualisierung des VS-Code-Remoteservers ist der Zugriff auf die Server-Endpunkte von Microsoft VS Code erforderlich.

  • Für die Installation von VS Code-Erweiterungen über das Erweiterungsfenster ist der Zugriff auf den Visual Studio Marketplace und die zugehörigen CDN-Endpunkte erforderlich (alternativ können Erweiterungen auch manuell mithilfe von VSIX-Dateien ohne Internetverbindung installiert werden).

  • Einige Erweiterungen benötigen möglicherweise Zugriff auf zusätzliche Endpunkte, um ihre spezifischen Abhängigkeiten herunterzuladen. Die spezifischen Konnektivitätsanforderungen finden Sie in der Dokumentation der Erweiterung.

Einrichten des Studio-Remotezugriffsnetzwerks

Sie haben zwei Möglichkeiten, Ihren lokalen Visual-Studio-Code mit Studio-Bereichen in privaten Subnetzen zu verbinden:

  • HTTP-Proxy

  • Vorgefertigte VS-Code-Remoteserver und -Erweiterungen

Einrichten eines HTTP-Proxys mit kontrollierter Zulassungsliste

Wenn Ihr Studio-Bereich hinter einer Firewall oder einem Proxy liegt, erlauben Sie den Zugriff auf den VS-Code-Server und die mit Erweiterungen verbundenen CDNs und Endpunkte.

  1. Richten Sie ein öffentliches Subnetz ein, um den HTTP-Proxy (z. B. Squid) auszuführen, in dem Sie konfigurieren können, welche Websites zugelassen werden sollen. Stellen Sie sicher, dass der HTTP-Proxy über SageMaker-Bereiche zugänglich ist.

  2. Das öffentliche Subnetz kann sich in derselben VPC befinden, die auch von Studio verwendet wird, oder in einer separaten VPC, die mit allen von Domains von Amazon SageMaker AI verwendeten VPCs gekoppelt ist.

Einrichten von vorgefertigten Remoteservern und Erweiterungen von Visual Studio Code

Wenn Ihre Studio-Bereiche keinen Zugriff auf externe Endpunkte haben, um den VS-Code-Remoteserver und Erweiterungen herunterzuladen, können Sie diese vorab paketieren. Bei diesem Ansatz exportieren Sie einen Tarball, der das .VS Code-server-Verzeichnis für eine bestimmte Version von VS Code enthält. Anschließend verwenden Sie ein Skript von SageMaker AI Lifecycle Configuration (LCC), um den Tarball in das Stammverzeichnis (/home/sagemaker-user) der Studio-Bereiche zu kopieren und zu extrahieren. Diese LCC-basierte Lösung funktioniert sowohl mit von AWS bereitgestellten als auch mit benutzerdefinierten Images. Selbst wenn Sie keine privaten Subnetze verwenden, beschleunigt dieser Ansatz die Einrichtung des VS-Code-Remoteservers und der vorinstallierten Erweiterungen.

Anweisungen zum Vorverpacken Ihres VS-Code-Remoteservers und der Erweiterungen

  1. Installieren Sie VS Code auf Ihrem lokalen Computer.

  2. Starten Sie einen Linux-basierten (x64) Docker-Container mit aktiviertem SSH, entweder lokal oder über einen Studio-Bereich mit Internetzugang. Wir empfehlen, der Einfachheit halber einen temporären Studio-Bereich mit Remotezugriff und Internetverbindung zu nutzen.

  3. Verbinden Sie Ihren installierten VS Code über Remote SSH mit dem lokalen Docker-Container oder verbinden Sie sich über das VS-Code-Remotefeature von Studio mit dem Studio-Bereich. VS Code installiert den Remoteserver während der Verbindung im .VS Code-server im Stammverzeichnis des Remote-Containers. Weitere Informationen finden Sie unter Beispiel für die Verwendung von Dockerfile für das Vorverpacken Ihres Remoteservers von VS Code und der Erweiterungen.

  4. Stellen Sie nach der Remoteverbindung sicher, dass Sie das VS-Code-Standardprofil verwenden.

  5. Installieren Sie die erforderlichen VS-Code-Erweiterungen und überprüfen Sie deren Funktionalität. Erstellen Sie beispielsweise ein Notebook und führen Sie es aus, um Jupyter-Notebook-bezogene Erweiterungen auf dem VS-Code-Remoteserver zu installieren.

    Stellen Sie sicher, dass Sie die AWS Toolkit for Visual Studio Code-Erweiterung installieren, nachdem Sie eine Verbindung zum Remote-Container hergestellt haben.

  6. Archivieren Sie das $HOME/.VS Code-server-Verzeichnis (z. B. VS Code-server-with-extensions-for-1.100.2.tar.gz) entweder im lokalen Docker-Container oder im Terminal des Studio-Bereichs mit Remoteverbindung.

  7. Laden Sie den Tarball auf Amazon S3 hoch.

  8. Erstellen Sie ein LCC-Skript (Beispiel für ein LCC-Skript (LCC-Install-VS Code-Server-v1.100.2)), das:

    • das spezifische Archiv von Amazon S3 herunterlädt.

    • es in das Stammverzeichnis extrahiert, wenn ein Studio-Bereich in einem privaten Subnetz gestartet wird.

  9. (Optional) Erweitern Sie das LCC-Skript, um benutzerspezifische Server-Tarballs von VS Code zu unterstützen, die in benutzerspezifischen Amazon-S3-Ordnern gespeichert sind.

  10. (Optional) Verwenden Sie versionsspezifische LCC-Skripte (Beispiel für ein LCC-Skript (LCC-Install-VS Code-Server-v1.100.2)), die Sie an Ihre Bereiche anhängen können, um die Kompatibilität zwischen Ihrem lokalen VS-Code-Client und dem Remoteserver sicherzustellen.