Amazon SageMaker-Domäne im Nur-VPC-Modus zur Unterstützung von SageMaker Studio mit Lifecycle-Konfiguration für automatisches Herunterfahren und SageMaker Canvas mit Terraform | Amazon Web Services

Amazon SageMaker-Domäne im Nur-VPC-Modus zur Unterstützung von SageMaker Studio mit Lifecycle-Konfiguration für automatisches Herunterfahren und SageMaker Canvas mit Terraform | Amazon Web Services

Amazon SageMaker-Domäne unterstützt SageMaker-Umgebungen für maschinelles Lernen (ML), einschließlich SageMaker Studio und SageMaker Canvas. SageMaker-Studio ist eine vollständig integrierte Entwicklungsumgebung (IDE), die eine einzige webbasierte visuelle Schnittstelle bietet, über die Sie auf speziell entwickelte Tools zugreifen können, um alle ML-Entwicklungsschritte durchzuführen, von der Datenvorbereitung bis zum Aufbau, Training und Einsatz Ihrer ML-Modelle, um die Datenwissenschaft zu verbessern Steigerung der Teamproduktivität um das bis zu 10-fache. SageMaker-Leinwand erweitert den Zugang zum maschinellen Lernen, indem es Geschäftsanalysten eine visuelle Schnittstelle bietet, die es ihnen ermöglicht, selbst genaue ML-Vorhersagen zu generieren – ohne dass dafür ML-Erfahrung erforderlich ist oder eine einzige Codezeile geschrieben werden muss.

HashiCorp Terraform ist ein Infrastructure-as-Code (IaC)-Tool, mit dem Sie Ihre Infrastruktur in wiederverwendbaren Codemodulen organisieren können. AWS-Kunden verlassen sich beim Entwurf, der Entwicklung und der Verwaltung ihrer Cloud-Infrastruktur, wie z. B. SageMaker Domains, auf IaC. IaC stellt sicher, dass die Infrastruktur und Dienste der Kunden konsistent, skalierbar und reproduzierbar sind und befolgt dabei Best Practices im Bereich Entwicklungsbetrieb (DevOps). Mit Terraform können Sie Ihre SageMaker-Domäne und die unterstützende Infrastruktur auf konsistente und wiederholbare Weise entwickeln und verwalten.

In diesem Beitrag demonstrieren wir die Terraform-Implementierung zum Bereitstellen einer SageMaker-Domäne und des Amazon Virtual Private Cloud (Amazon VPC), mit dem es verknüpft ist. Die Lösung verwendet Terraform, um Folgendes zu erstellen:

  • Eine VPC mit Subnetzen, Sicherheitsgruppen sowie VPC-Endpunkten zur Unterstützung des Nur-VPC-Modus für die SageMaker-Domäne.
  • Eine SageMaker-Domäne im Nur-VPC-Modus mit einem Benutzerprofil.
  • Ein AWS Key Management Service (AWS KMS)-Schlüssel zum Verschlüsseln des Amazon Elastic File System (Amazon EFS)-Volumes von SageMaker Studio.
  • Eine an die SageMaker-Domäne angehängte Lebenszykluskonfiguration zum automatischen Herunterfahren inaktiver Studio-Notebook-Instanzen.
  • Eine SageMaker-Domänenausführungsrolle und IAM-Richtlinien zur Aktivierung der SageMaker Studio- und Canvas-Funktionen.

Die in diesem Beitrag beschriebene Lösung finden Sie hier GitHub Repo.

Lösungsüberblick

Das folgende Bild zeigt die SageMaker-Domäne im Nur-VPC-Modus.

sagemaker_domain_vpc_only

Durch das Starten von SageMaker Domain in Ihrer VPC können Sie den Datenfluss aus Ihren SageMaker Studio- und Canvas-Umgebungen steuern. Auf diese Weise können Sie den Internetzugriff einschränken, den Datenverkehr mithilfe standardmäßiger Netzwerk- und Sicherheitsfunktionen von AWS überwachen und prüfen sowie über VPC-Endpunkte eine Verbindung zu anderen AWS-Ressourcen herstellen.

VPC-Anforderungen für die Verwendung des Nur-VPC-Modus

Das Erstellen einer SageMaker-Domäne im Nur-VPC-Modus erfordert eine VPC mit den folgenden Konfigurationen:

  1. Mindestens zwei private Subnetze, jedes in einer anderen Availability Zone, um eine hohe Verfügbarkeit sicherzustellen.
  2. Stellen Sie sicher, dass Ihre Subnetze über die erforderliche Anzahl an IP-Adressen verfügen. Wir empfehlen zwischen zwei und vier IP-Adressen pro Benutzer. Die gesamte IP-Adresskapazität für eine Studio-Domäne ist die Summe der verfügbaren IP-Adressen für jedes Subnetz, das bei der Erstellung der Domäne bereitgestellt wurde.
  3. Richten Sie eine oder mehrere Sicherheitsgruppen mit ein- und ausgehenden Regeln ein, die zusammen den folgenden Datenverkehr zulassen:
    • NFS-Verkehr über TCP auf Port 2049 zwischen der Domäne und dem Amazon EFS-Volume.
    • TCP-Verkehr innerhalb der Sicherheitsgruppe. Dies ist für die Konnektivität zwischen der JupyterServer-App und den KernelGateway-Apps erforderlich. Sie müssen den Zugriff auf mindestens die Ports im Bereich 8192–65535 zulassen.
  4. Erstellen Sie einen Gateway-Endpunkt für Amazon Simple Storage Service (Amazon S3). SageMaker Studio muss über Gateway-VPC-Endpunkte von Ihrer VPC aus auf Amazon S3 zugreifen. Nachdem Sie den Gateway-Endpunkt erstellt haben, müssen Sie ihn als Ziel in Ihrer Routing-Tabelle für Datenverkehr hinzufügen, der von Ihrer VPC an Amazon S3 gerichtet ist.
  5. Erstellen Sie Schnittstellen-VPC-Endpunkte (AWS PrivateLink), um Studio den Zugriff auf die folgenden Dienste mit den entsprechenden Dienstnamen zu ermöglichen. Sie müssen diesen Endpunkten außerdem eine Sicherheitsgruppe für Ihre VPC zuordnen, um den gesamten eingehenden Datenverkehr von Port 443 zuzulassen:
    • SageMaker-API: com.amazonaws.region.sagemaker.api. Dies ist für die Kommunikation mit der SageMaker-API erforderlich.
    • SageMaker-Laufzeit: com.amazonaws.region.sagemaker.runtime. Dies ist erforderlich, um Studio-Notebooks auszuführen und Modelle zu trainieren und zu hosten.
    • SageMaker Feature Store: com.amazonaws.region.sagemaker.featurestore-runtime. Dies ist für die Nutzung des SageMaker Feature Store erforderlich.
    • SageMaker-Projekte: com.amazonaws.region.servicecatalog. Dies ist erforderlich, um SageMaker-Projekte zu verwenden.

Zusätzliche VPC-Endpunkte zur Verwendung von SageMaker Canvas

Zusätzlich zu den zuvor erwähnten VPC-Endpunkten müssen Sie zur Verwendung von SageMaker Canvas auch die folgenden Schnittstellen-VPC-Endpunkte erstellen:

  • Amazon Forecast und Amazon Forecast-Abfrage: com.amazonaws.region.forecast und com.amazonaws.region.forecastquery. Diese sind für die Nutzung von Amazon Forecast erforderlich.
  • Amazon-Anerkennung: com.amazonaws.region.rekognition. Dies ist für die Nutzung von Amazon Rekognition erforderlich.
  • Amazon-Text: com.amazonaws.region.textract. Dies ist für die Nutzung von Amazon Textract erforderlich.
  • Amazon verstehen: com.amazonaws.region.comprehend. Dies ist für die Nutzung von Amazon Comprehend erforderlich.
  • AWS Security Token Service (AWS STS): com.amazonaws.region.sts. Dies ist erforderlich, da SageMaker Canvas AWS STS verwendet, um eine Verbindung zu Datenquellen herzustellen.
  • Amazon Athena und AWS Glue: com.amazonaws.region.athena und com.amazonaws.region.glue. Dies ist erforderlich, um über Amazon Athena eine Verbindung zum AWS Glue Data Catalog herzustellen.
  • Amazon Redshift: com.amazonaws.region.redshift-data. Dies ist erforderlich, um eine Verbindung zur Amazon Redshift-Datenquelle herzustellen.

Um alle VPC-Endpunkte für jeden Dienst anzuzeigen, den Sie mit SageMaker Canvas verwenden können, gehen Sie bitte zu Konfigurieren Sie Amazon SageMaker Canvas in einer VPC ohne Internetzugang.

AWS KMS-Verschlüsselung für das EFS-Volume von SageMaker Studio

Wenn ein Benutzer Ihres Teams zum ersten Mal SageMaker Studio nutzt, erstellt SageMaker ein EFS-Volume für das Team. Für jeden Benutzer, der als Teil Ihres Teams bei Studio einsteigt, wird im Volume ein Home-Verzeichnis erstellt. In diesen Verzeichnissen werden Notebook-Dateien und Datendateien gespeichert.

Sie können das EFS-Volume Ihres SageMaker Studios mit einem KMS-Schlüssel verschlüsseln, sodass die Daten Ihrer Home-Verzeichnisse im Ruhezustand verschlüsselt sind. Diese Terraform-Lösung erstellt einen KMS-Schlüssel und verwendet ihn zum Verschlüsseln des EFS-Volumes von SageMaker Studio.

SageMaker Domain Lifecycle-Konfiguration zum automatischen Herunterfahren inaktiver Studio-Notebooks

sagemaker_auto_shutdown

Lebenszykluskonfigurationen sind Shell-Skripte, die durch Amazon SageMaker Studio-Lebenszyklusereignisse ausgelöst werden, beispielsweise das Starten eines neuen Studio-Notizbuchs. Sie können Lebenszykluskonfigurationen verwenden, um die Anpassung Ihrer Studio-Umgebung zu automatisieren.

Diese Terraform-Lösung erstellt eine SageMaker-Lebenszykluskonfiguration, um ungenutzte Ressourcen, die in Studio Kosten verursachen, mithilfe einer Jupyter-Erweiterung zum automatischen Herunterfahren zu erkennen und zu stoppen. Unter der Haube werden die folgenden Ressourcen erstellt oder konfiguriert, um das gewünschte Ergebnis zu erzielen:

  1. Erstellen Sie einen S3-Bucket und laden Sie die neueste Version der Auto-Shutdown-Erweiterung hoch sagemaker_studio_autoshutdown-0.1.5.tar.gz. Später wird das Auto-Shutdown-Skript ausgeführt s3 cp Befehl zum Herunterladen der Erweiterungsdatei aus dem S3-Bucket beim Start von Jupyter Server. Weitere Informationen hierzu finden Sie in den folgenden GitHub-Repos Erweiterung zur automatischen Abschaltung und Skript zum automatischen Herunterfahren.
  2. Erstellen Sie ein aws_sagemaker_studio_lifecycle_config Ressource „auto_shutdown“. Diese Ressource wird die kodieren autoshutdown-script.sh mit Base 64 und erstellen Sie eine Lebenszykluskonfiguration für die SageMaker-Domäne.
  3. Geben Sie für die Standardbenutzereinstellungen der SageMaker-Domäne den Lifecycle-Konfigurations-Arn an und legen Sie ihn als Standard fest.

IAM-Berechtigungen für die SageMaker-Ausführungsrolle

Als verwalteter Dienst führt SageMaker in Ihrem Namen Vorgänge auf der von SageMaker verwalteten AWS-Hardware aus. SageMaker kann nur Vorgänge ausführen, die der Benutzer zulässt.

Ein SageMaker-Benutzer kann diese Berechtigungen mit einer IAM-Rolle (als Ausführungsrolle bezeichnet) erteilen. Wenn Sie eine SageMaker Studio-Domäne erstellen, ermöglicht Ihnen SageMaker standardmäßig die Erstellung der Ausführungsrolle. Sie können den Zugriff auf Benutzerprofile einschränken, indem Sie die SageMaker-Benutzerprofilrolle ändern. Diese Terraform-Lösung fügt der SageMaker-Ausführungsrolle die folgenden IAM-Richtlinien hinzu:

  • SageMaker hat es geschafft AmazonSageMakerFullAccess Politik. Diese Richtlinie gewährt der Ausführungsrolle vollständigen Zugriff zur Nutzung von SageMaker Studio.
  • Eine vom Kunden verwaltete IAM-Richtlinie für den Zugriff auf den KMS-Schlüssel, der zum Verschlüsseln des EFS-Volumes von SageMaker Studio verwendet wird.
  • SageMaker hat es geschafft AmazonSageMakerCanvasFullAccess und AmazonSageMakerCanvasAIServicesAccess Richtlinien. Diese Richtlinien gewähren der Ausführungsrolle vollen Zugriff zur Nutzung von SageMaker Canvas.
  • Um die Zeitreihenanalyse in SageMaker Canvas zu aktivieren, müssen Sie auch die IAM-Vertrauensrichtlinie für Amazon Forecast hinzufügen.

Lösungsweg

In diesem Blogbeitrag zeigen wir, wie die Terraform-Lösung bereitgestellt wird. Stellen Sie vor der Bereitstellung sicher, dass die folgenden Voraussetzungen erfüllt sind:

Voraussetzungen:

  • Ein AWS-Konto
  • Ein IAM-Benutzer mit Administratorzugriff

Bereitstellungsschritte

Um Benutzern, die diesem Leitfaden folgen, ein einheitliches Bereitstellungserlebnis zu bieten, demonstrieren wir den Bereitstellungsprozess mit AWS CloudShell. Mit CloudShell, einer browserbasierten Shell, können Sie schnell Skripte mit der AWS Command Line Interface (AWS CLI) ausführen, mit Service-APIs mithilfe der AWS CLI experimentieren und andere Tools verwenden, um Ihre Produktivität zu steigern.

Führen Sie die folgenden Schritte aus, um die Terraform-Lösung bereitzustellen:

CloudShell-Starteinstellungen

  • Melden Sie sich bei der AWS-Managementkonsole an und wählen Sie den CloudShell-Dienst aus.
  • Wählen Sie in der Navigationsleiste in der Regionsauswahl die Option aus US-Ost (N. Virginia).

Ihr Browser öffnet das CloudShell-Terminal.

Installieren Sie Terraform

Die nächsten Schritte sollten in einem CloudShell-Terminal ausgeführt werden.

Shau dieser Hashicorp-Leitfaden Aktuelle Anweisungen zur Installation von Terraform für Amazon Linux:

  • Installieren yum-config-manager um Ihre Repositories zu verwalten.
sudo yum install -y yum-utils

  • Verwenden Sie die yum-config-manager um das offizielle HashiCorp Linux-Repository hinzuzufügen.
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

  • Installieren Sie Terraform aus dem neuen Repository.
sudo yum -y install terraform

  • Überprüfen Sie, ob die Installation funktioniert hat, indem Sie die verfügbaren Unterbefehle von Terraform auflisten.
terraform -help

Erwartete Ausgabe:

Usage: terraform [-version] [-help] <command> [args] The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you’re just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage. …

Klonen Sie das Code-Repo

Führen Sie die folgenden Schritte in einem CloudShell-Terminal aus.

  • Klonen Sie das Repo und navigieren Sie zum Ordner sagemaker-domain-vpconly-canvas-with-terraform:
git clone https://github.com/aws-samples/sagemaker-domain-vpconly-canvas-with-terraform.git cd sagemaker-domain-vpconly-canvas-with-terraform

  • Laden Sie die Erweiterung zum automatischen Herunterfahren herunter und platzieren Sie sie im assets/auto_shutdown_template Ordner:
wget https://github.com/aws-samples/sagemaker-studio-auto-shutdown-extension/raw/main/sagemaker_studio_autoshutdown-0.1.5.tar.gz -P assets/auto_shutdown_template

Stellen Sie die Terraform-Lösung bereit

Führen Sie im CloudShell-Terminal die folgenden Terraform-Befehle aus:

terraform init

Sie sollten eine Erfolgsmeldung wie diese sehen:

Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work...

Jetzt können Sie Folgendes ausführen:

terraform plan

Wenn Sie mit den Ressourcen zufrieden sind, die im Plan erstellt werden sollen, können Sie Folgendes ausführen:

terraform apply

Eingeben "ja“, wenn Sie aufgefordert werden, die Bereitstellung zu bestätigen.

Bei erfolgreicher Bereitstellung sollten Sie eine Ausgabe sehen, die wie folgt aussieht:

Apply complete! Resources: X added, 0 changed, 0 destroyed.

Zugriff auf SageMaker Studio und Canvas

Wir haben jetzt eine Studio-Domäne, die unserer VPC zugeordnet ist, und ein Benutzerprofil in dieser Domäne.

sagemaker_domain

Um die SageMaker Studio-Konsole zu verwenden, suchen Sie in der Studio-Systemsteuerung nach Ihrem Benutzernamen (so sollte er lauten). defaultuser) und wähle Open Studio.

Wir haben es geschafft! Jetzt können Sie Ihren Browser verwenden, um eine Verbindung zur SageMaker Studio-Umgebung herzustellen. Nach ein paar Minuten ist Studio mit der Erstellung Ihrer Umgebung fertig und Sie werden mit dem Startbildschirm begrüßt.

studio_landing_page

Um die SageMaker Canvas-Konsole zu verwenden, suchen Sie in der Canvas-Systemsteuerung nach Ihrem Benutzernamen (sollte lauten). defaultuser) und wählen Sie „Leinwand öffnen“.

Jetzt können Sie Ihren Browser verwenden, um eine Verbindung zur SageMaker Canvas-Umgebung herzustellen. Nach ein paar Minuten ist Canvas mit der Erstellung Ihrer Umgebung fertig und Sie werden mit dem Startbildschirm begrüßt.

canvas_landing_page

Entdecken Sie die volle Funktionalität von SageMaker Studio und Canvas! Weitere Workshops und Tutorials, mit denen Sie mehr über SageMaker erfahren können, finden Sie im Abschnitt „Fazit“.

Aufräumen

Führen Sie den folgenden Befehl aus, um Ihre Ressourcen zu bereinigen:

terraform destroy

Tipp: Wenn Sie die Amazon EFS-Aufbewahrungsrichtlinie auf „Retain” (Standardeinstellung), treten während „terraform destroy” weil Terraform versucht, die Subnetze und VPC zu löschen, während das EFS-Volume sowie die zugehörigen Sicherheitsgruppen (erstellt von SageMaker) noch vorhanden sind. Um dies zu beheben, löschen Sie zunächst das EFS-Volume manuell und löschen Sie dann die Subnetze und VPC manuell in der AWS-Konsole.

Zusammenfassung

Die Lösung in diesem Beitrag bietet Ihnen die Möglichkeit, eine SageMaker-Domäne zur Unterstützung von ML-Umgebungen zu erstellen, einschließlich SageMaker Studio und SageMaker Canvas mit Terraform. SageMaker Studio bietet eine vollständig verwaltete IDE, die den mühsamen Aufwand im ML-Prozess beseitigt. Mit SageMaker Canvas können unsere Geschäftsanwender ganz einfach ML-Modelle erkunden und erstellen, um genaue Vorhersagen zu treffen, ohne Code schreiben zu müssen. Durch die Möglichkeit, Studio und Canvas innerhalb einer VPC zu starten und einen KMS-Schlüssel zum Verschlüsseln des EFS-Volumes zu verwenden, können Kunden SageMaker ML-Umgebungen mit erhöhter Sicherheit nutzen. Die Lifecycle-Konfiguration für die automatische Abschaltung hilft Kunden, Kosten für inaktive Studio-Notebook-Instanzen zu sparen.

Testen Sie diese Lösung und teilen Sie uns Ihre Meinung mit. Weitere Informationen zur Verwendung von SageMaker Studio und Sagemaker Canvas finden Sie hier:


Über den Autor

chen_yang_awsChen Yang ist Machine Learning Engineer bei Amazon Web Services. Sie ist Teil des AWS Professional Services-Teams und konzentriert sich auf den Aufbau sicherer maschineller Lernumgebungen für Kunden. In ihrer Freizeit läuft und wandert sie gerne im pazifischen Nordwesten.

Zeitstempel:

Mehr von AWS Maschinelles Lernen