Amazon SageMaker Domain in alleen VPC-modus ter ondersteuning van SageMaker Studio met automatische uitschakeling Lifecycle Configuration en SageMaker Canvas met Terraform | Amazon-webservices

Amazon SageMaker Domain in alleen VPC-modus ter ondersteuning van SageMaker Studio met automatische uitschakeling Lifecycle Configuration en SageMaker Canvas met Terraform | Amazon-webservices

Amazon SageMaker-domein ondersteunt SageMaker machine learning (ML)-omgevingen, waaronder SageMaker Studio en SageMaker Canvas. SageMaker Studio is een volledig geïntegreerde ontwikkelomgeving (IDE) die één enkele webgebaseerde visuele interface biedt waar u toegang hebt tot speciaal gebouwde tools om alle ML-ontwikkelingsstappen uit te voeren, van het voorbereiden van gegevens tot het bouwen, trainen en implementeren van uw ML-modellen, waardoor de datawetenschap wordt verbeterd teamproductiviteit tot wel 10x. SageMaker-canvas breidt de toegang tot machine learning uit door bedrijfsanalisten een visuele interface te bieden waarmee ze zelf nauwkeurige ML-voorspellingen kunnen genereren, zonder dat daarvoor enige ML-ervaring nodig is of dat ze ook maar één regel code hoeven te schrijven.

HashiCorp Terraform is een infrastructuur als code (IaC)-tool waarmee u uw infrastructuur kunt organiseren in herbruikbare codemodules. AWS-klanten vertrouwen op IaC voor het ontwerpen, ontwikkelen en beheren van hun cloudinfrastructuur, zoals SageMaker Domains. IaC zorgt ervoor dat de infrastructuur en diensten van klanten consistent, schaalbaar en reproduceerbaar zijn, terwijl het de best practices op het gebied van ontwikkelingsoperaties (DevOps) volgt. Met Terraform kunt u uw SageMaker Domain en de ondersteunende infrastructuur op een consistente en herhaalbare manier ontwikkelen en beheren.

In dit bericht demonstreren we de Terraform-implementatie voor het implementeren van een SageMaker-domein en de Amazon virtuele privécloud (Amazon VPC) waarmee het associeert. De oplossing gebruikt Terraform om het volgende te creëren:

  • Een VPC met subnetten, beveiligingsgroepen en VPC-eindpunten ter ondersteuning van de alleen-VPC-modus voor het SageMaker-domein.
  • Een SageMaker-domein in de modus Alleen VPC met een gebruikersprofiel.
  • Een AWS Key Management Service (AWS KMS)-sleutel om het Amazon Elastic File System (Amazon EFS)-volume van SageMaker Studio te coderen.
  • Een levenscyclusconfiguratie gekoppeld aan het SageMaker-domein om inactieve Studio-notebookinstanties automatisch af te sluiten.
  • Een SageMaker Domain-uitvoeringsrol en IAM-beleid om SageMaker Studio- en Canvas-functionaliteiten mogelijk te maken.

De oplossing die in dit bericht wordt beschreven, is hier beschikbaar GitHub repo.

Overzicht oplossingen

De volgende afbeelding toont SageMaker Domain in de modus Alleen VPC.

sagemaker_domein_vpc_only

Door SageMaker Domain in uw VPC te starten, kunt u de gegevensstroom vanuit uw SageMaker Studio- en Canvas-omgevingen beheren. Hierdoor kunt u de internettoegang beperken, verkeer monitoren en inspecteren met behulp van standaard AWS-netwerk- en beveiligingsmogelijkheden, en verbinding maken met andere AWS-bronnen via VPC-eindpunten.

VPC-vereisten om de modus Alleen VPC te gebruiken

Voor het maken van een SageMaker-domein in de modus Alleen VPC is een VPC met de volgende configuraties vereist:

  1. Ten minste twee privé-subnetten, elk in een andere beschikbaarheidszone, om hoge beschikbaarheid te garanderen.
  2. Zorg ervoor dat uw subnetten het vereiste aantal benodigde IP-adressen hebben. Wij raden tussen de twee en vier IP-adressen per gebruiker aan. De totale IP-adrescapaciteit voor een Studio-domein is de som van de beschikbare IP-adressen voor elk subnet dat wordt opgegeven bij het maken van het domein.
  3. Stel een of meer beveiligingsgroepen in met regels voor inkomend en uitgaand verkeer die samen het volgende verkeer toestaan:
    • NFS-verkeer via TCP op poort 2049 tussen het domein en het Amazon EFS-volume.
    • TCP-verkeer binnen de beveiligingsgroep. Dit is vereist voor connectiviteit tussen de JupyterServer-app en de KernelGateway-apps. U moet toegang toestaan ​​tot ten minste poorten in het bereik 8192–65535.
  4. Maak een gateway-eindpunt voor Amazon Simple Storage Service (Amazon S3). SageMaker Studio heeft toegang nodig tot Amazon S3 vanaf uw VPC met behulp van Gateway VPC-eindpunten. Nadat u het gateway-eindpunt hebt gemaakt, moet u dit als doel toevoegen aan uw routetabel voor verkeer dat is bestemd van uw VPC naar Amazon S3.
  5. Maak interface-VPC-eindpunten (AWS PrivateLink) zodat Studio toegang heeft tot de volgende services met de bijbehorende servicenamen. U moet ook een beveiligingsgroep voor uw VPC aan deze eindpunten koppelen om al het binnenkomende verkeer vanaf poort 443 toe te staan:
    • SageMaker-API: com.amazonaws.region.sagemaker.api. Dit is vereist om te communiceren met de SageMaker API.
    • SageMaker-runtime: com.amazonaws.region.sagemaker.runtime. Dit is vereist om Studio-notebooks te kunnen gebruiken en modellen te kunnen trainen en hosten.
    • SageMaker-functiewinkel: com.amazonaws.region.sagemaker.featurestore-runtime. Dit is vereist om SageMaker Feature Store te gebruiken.
    • SageMaker-projecten: com.amazonaws.region.servicecatalog. Dit is vereist om SageMaker Projects te gebruiken.

Extra VPC-eindpunten om SageMaker Canvas te gebruiken

Als u SageMaker Canvas wilt gebruiken, moet u naast de eerder genoemde VPC-eindpunten ook de volgende interface-VPC-eindpunten maken:

  • Amazon-voorspelling en Amazon-voorspellingsquery: com.amazonaws.region.forecast en com.amazonaws.region.forecastquery. Deze zijn vereist om Amazon Forecast te gebruiken.
  • Amazon-erkenning: com.amazonaws.region.rekognition. Dit is vereist om Amazon Rekognition te gebruiken.
  • Amazon Textract: com.amazonaws.region.textract. Dit is vereist om Amazon Textract te gebruiken.
  • Amazon begrijpt: com.amazonaws.region.comprehend. Dit is vereist om Amazon Comprehend te gebruiken.
  • AWS Security Token-service (AWS STS): com.amazonaws.region.sts. Dit is nodig omdat SageMaker Canvas AWS STS gebruikt om verbinding te maken met gegevensbronnen.
  • Amazon Athena en AWS-lijm: com.amazonaws.region.athena en com.amazonaws.region.glue. Dit is vereist om verbinding te maken met AWS Glue Data Catalog via Amazon Athena.
  • Amazone roodverschuiving: com.amazonaws.region.redshift-data. Dit is vereist om verbinding te maken met de Amazon Redshift-gegevensbron.

Om alle VPC-eindpunten te bekijken voor elke service die u kunt gebruiken met SageMaker Canvas, gaat u naar Configureer Amazon SageMaker Canvas in een VPC zonder internettoegang.

AWS KMS-codering voor het EFS-volume van SageMaker Studio

De eerste keer dat een gebruiker in uw team zich aanmeldt bij SageMaker Studio, maakt SageMaker een EFS-volume voor het team. Er wordt een thuismap in het volume gemaakt voor elke gebruiker die als onderdeel van uw team in Studio komt. Notebook-bestanden en gegevensbestanden worden in deze mappen opgeslagen.

U kunt het EFS-volume van uw SageMaker Studio coderen met een KMS-sleutel, zodat de gegevens van uw thuismappen in rust worden gecodeerd. Deze Terraform-oplossing maakt een KMS-sleutel en gebruikt deze om het EFS-volume van SageMaker Studio te coderen.

SageMaker Domain Lifecycle Configuration om inactieve Studio-notebooks automatisch af te sluiten

sagemaker_auto_shutdown

Levenscyclusconfiguraties zijn shell-scripts die worden geactiveerd door levenscyclusgebeurtenissen van Amazon SageMaker Studio, zoals het starten van een nieuw Studio-notebook. U kunt Lifecycle Configurations gebruiken om aanpassingen voor uw Studio-omgeving te automatiseren.

Deze Terraform-oplossing creëert een SageMaker Lifecycle-configuratie om inactieve bronnen die kosten met zich meebrengen binnen Studio te detecteren en te stoppen met behulp van een Jupyter-extensie die automatisch wordt afgesloten. Onder de motorkap worden de volgende middelen gecreëerd of geconfigureerd om het gewenste resultaat te bereiken:

  1. Maak een S3-bucket en upload de nieuwste versie van de extensie voor automatisch afsluiten sagemaker_studio_autoshutdown-0.1.5.tar.gz. Later zal het script voor automatisch afsluiten het bestand s3 cp opdracht om het extensiebestand uit de S3-bucket te downloaden bij het opstarten van Jupyter Server. Raadpleeg de volgende GitHub-opslagplaatsen voor meer informatie over de extensie voor automatische uitschakeling en automatisch afsluitscript.
  2. Maak een aws_sagemaker_studio_lifecycle_config bron “auto_shutdown”. Deze bron codeert de autoshutdown-script.sh met basis 64 en maak een levenscyclusconfiguratie voor het SageMaker-domein.
  3. Voor de standaardgebruikersinstellingen van SageMaker Domain specificeert u de levenscyclusconfiguratie arn en stelt u deze in als standaard.

SageMaker-uitvoeringsrol IAM-machtigingen

Als beheerde service voert SageMaker namens u bewerkingen uit op de AWS-hardware die wordt beheerd door SageMaker. SageMaker kan alleen bewerkingen uitvoeren die de gebruiker toestaat.

Een SageMaker-gebruiker kan deze machtigingen verlenen met een IAM-rol (ook wel een uitvoeringsrol genoemd). Wanneer u een SageMaker Studio-domein aanmaakt, kunt u met SageMaker standaard de uitvoeringsrol creëren. U kunt de toegang tot gebruikersprofielen beperken door de SageMaker-gebruikersprofielrol te wijzigen. Deze Terraform-oplossing koppelt het volgende IAM-beleid aan de SageMaker-uitvoeringsrol:

  • SageMaker is gelukt AmazonSageMakerFullAccess beleid. Dit beleid verleent de uitvoeringsrol volledige toegang om SageMaker Studio te gebruiken.
  • Een door de klant beheerd IAM-beleid voor toegang tot de KMS-sleutel die wordt gebruikt om het EFS-volume van SageMaker Studio te coderen.
  • SageMaker is gelukt AmazonSageMakerCanvasFullAccess en AmazonSageMakerCanvasAIServicesAccess beleid. Dit beleid verleent de uitvoeringsrol volledige toegang om SageMaker Canvas te gebruiken.
  • Om tijdreeksanalyse in SageMaker Canvas mogelijk te maken, moet je ook het IAM-vertrouwensbeleid voor Amazon Forecast toevoegen.

Oplossingsoverzicht

In deze blogpost laten we zien hoe u de Terraform-oplossing kunt implementeren. Voordat u de implementatie uitvoert, moet u ervoor zorgen dat u aan de volgende vereisten voldoet:

Voorwaarden

  • Een AWS-account
  • Een IAM-gebruiker met beheerderstoegang

Implementatiestappen

Om gebruikers die deze handleiding volgen een uniforme implementatie-ervaring te bieden, demonstreren we het implementatieproces met AWS CloudShell. Met behulp van CloudShell, een browsergebaseerde shell, kunt u snel scripts uitvoeren met de AWS Command Line Interface (AWS CLI), experimenteren met service-API's met behulp van de AWS CLI en andere tools gebruiken om uw productiviteit te verhogen.

Voer de volgende stappen uit om de Terraform-oplossing te implementeren:

CloudShell-opstartinstellingen

  • Meld u aan bij de AWS Management Console en selecteer de CloudShell-service.
  • Kies in de navigatiebalk in de regiokiezer VS-Oosten (N. Virginia).

Uw browser opent de CloudShell-terminal.

Installeer Terraform

De volgende stappen moeten worden uitgevoerd in een CloudShell-terminal.

Check deze Hashicorp-gids voor actuele instructies om Terraform voor Amazon Linux te installeren:

  • Install yum-config-manager om uw opslagplaatsen te beheren.
sudo yum install -y yum-utils

  • Te gebruiken yum-config-manager om de officiële HashiCorp Linux-repository toe te voegen.
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

  • Installeer Terraform vanuit de nieuwe repository.
sudo yum -y install terraform

  • Controleer of de installatie heeft gewerkt door de beschikbare subopdrachten van Terraform op te sommen.
terraform -help

Verwachte resultaten:

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. …

Kloon de coderepository

Voer de volgende stappen uit in een CloudShell-terminal.

  • Kloon de repository en navigeer naar de map 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

  • Download de extensie voor automatisch afsluiten en plaats deze in het assets/auto_shutdown_template map:
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

Implementeer de Terraform-oplossing

Voer in de CloudShell-terminal de volgende Terraform-opdrachten uit:

terraform init

U zou een succesbericht moeten zien zoals:

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...

Nu kunt u uitvoeren:

terraform plan

Nadat u tevreden bent met de middelen die volgens het plan moeten worden gemaakt, kunt u het volgende uitvoeren:

terraform apply

Voer "ja“ wanneer u wordt gevraagd de implementatie te bevestigen.

Indien succesvol geïmplementeerd, zou u een uitvoer moeten zien die er als volgt uitziet:

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

Toegang tot SageMaker Studio en Canvas

We hebben nu een Studio-domein gekoppeld aan onze VPC en een gebruikersprofiel in dit domein.

sagemaker_domein

Om de SageMaker Studio-console te gebruiken, zoekt u in het Studio-configuratiescherm uw gebruikersnaam op (deze zou defaultuser) en kies Studio openen.

We maakten het! Nu kunt u uw browser gebruiken om verbinding te maken met de SageMaker Studio-omgeving. Na een paar minuten is Studio klaar met het maken van uw omgeving en wordt u begroet met het startscherm.

studio_landing_pagina

Om de SageMaker Canvas-console te gebruiken, zoekt u in het Canvas-configuratiescherm uw gebruikersnaam (zou moeten zijn defaultuser) en kies Canvas openen.

Nu kunt u uw browser gebruiken om verbinding te maken met de SageMaker Canvas-omgeving. Na een paar minuten is Canvas klaar met het maken van uw omgeving en wordt u begroet met het opstartscherm.

canvas_landingspagina

Ontdek gerust de volledige functionaliteit die SageMaker Studio en Canvas te bieden hebben! Raadpleeg het gedeelte Conclusie voor aanvullende workshops en tutorials die u kunt gebruiken om meer te leren over SageMaker.

Opruimen

Voer de volgende opdracht uit om uw bronnen op te schonen:

terraform destroy

Tip: Als u het Amazon EFS-retentiebeleid instelt als “Retain” (de standaard), u zult problemen tegenkomen tijdens “terraform destroy” omdat Terraform probeert de subnetten en VPC te verwijderen terwijl het EFS-volume en de bijbehorende beveiligingsgroepen (gemaakt door SageMaker) nog steeds bestaan. Om dit op te lossen, verwijdert u eerst het EFS-volume handmatig en verwijdert u vervolgens de subnetten en VPC handmatig in de AWS-console.

Conclusie

De oplossing in dit bericht biedt u de mogelijkheid om een ​​SageMaker-domein te maken ter ondersteuning van ML-omgevingen, waaronder SageMaker Studio en SageMaker Canvas met Terraform. SageMaker Studio biedt een volledig beheerde IDE die het zware werk in het ML-proces wegneemt. Met SageMaker Canvas kunnen onze zakelijke gebruikers eenvoudig ML-modellen verkennen en bouwen om nauwkeurige voorspellingen te doen zonder code te schrijven. Met de mogelijkheid om Studio en Canvas binnen een VPC te starten en het gebruik van een KMS-sleutel om het EFS-volume te versleutelen, kunnen klanten SageMaker ML-omgevingen gebruiken met verbeterde beveiliging. Auto shutdown Lifecycle Configuration helpt klanten kosten te besparen op inactieve Studio-notebookinstanties.

Ga deze oplossing testen en laat ons weten wat u ervan vindt. Zie het volgende voor meer informatie over het gebruik van SageMaker Studio en Sagemaker Canvas:


Over de auteur

chen_yang_awsChen Yang is een Machine Learning-ingenieur bij Amazon Web Services. Ze maakt deel uit van het AWS Professional Services-team en richt zich op het bouwen van veilige machine learning-omgevingen voor klanten. In haar vrije tijd houdt ze van hardlopen en wandelen in de Pacific Northwest.

Tijdstempel:

Meer van AWS-machine learning