Amazon SageMaker Domain i endast VPC-läge för att stödja SageMaker Studio med automatisk avstängning Lifecycle Configuration och SageMaker Canvas med Terraform | Amazon webbtjänster

Amazon SageMaker Domain i endast VPC-läge för att stödja SageMaker Studio med automatisk avstängning Lifecycle Configuration och SageMaker Canvas med Terraform | Amazon webbtjänster

Amazon SageMaker-domän stöder SageMaker-miljöer för maskininlärning (ML), inklusive SageMaker Studio och SageMaker Canvas. SageMaker Studio är en helt integrerad utvecklingsmiljö (IDE) som tillhandahåller ett enda webbaserat visuellt gränssnitt där du kan komma åt specialbyggda verktyg för att utföra alla ML-utvecklingssteg, från att förbereda data till att bygga, träna och distribuera dina ML-modeller, vilket förbättrar datavetenskap teamproduktivitet med upp till 10x. SageMaker Canvas utökar tillgången till maskininlärning genom att förse affärsanalytiker med ett visuellt gränssnitt som gör att de kan generera korrekta ML-förutsägelser på egen hand – utan att kräva någon ML-erfarenhet eller att behöva skriva en enda rad kod.

HashiCorp Terraform är ett verktyg för infrastruktur som kod (IaC) som låter dig organisera din infrastruktur i återanvändbara kodmoduler. AWS-kunder litar på IaC för att designa, utveckla och hantera sin molninfrastruktur, som SageMaker Domains. IaC säkerställer att kundernas infrastruktur och tjänster är konsekventa, skalbara och reproducerbara samtidigt som de följer bästa praxis inom området utvecklingsverksamhet (DevOps). Med Terraform kan du utveckla och hantera din SageMaker-domän och dess stödjande infrastruktur på ett konsekvent och repeterbart sätt.

I det här inlägget visar vi Terraform-implementeringen för att distribuera en SageMaker-domän och Amazon Virtual Private Cloud (Amazon VPC) den associerar med. Lösningen kommer att använda Terraform för att skapa:

  • En VPC med undernät, säkerhetsgrupper, såväl som VPC-slutpunkter för att stödja VPC-läge för SageMaker-domänen.
  • En SageMaker-domän i endast VPC-läge med en användarprofil.
  • En AWS Key Management Service (AWS KMS)-nyckel för att kryptera SageMaker Studios volym för Amazon Elastic File System (Amazon EFS).
  • En livscykelkonfiguration kopplad till SageMaker-domänen för att automatiskt stänga av inaktiva Studio-notebook-instanser.
  • En SageMaker Domain-exekveringsroll och IAM-policyer för att aktivera SageMaker Studio och Canvas-funktioner.

Lösningen som beskrivs i det här inlägget finns tillgänglig här GitHub repo.

Lösningsöversikt

Följande bild visar SageMaker Domain i endast VPC-läge.

sagemaker_domain_vpc_only

Genom att starta SageMaker Domain i din VPC kan du styra dataflödet från dina SageMaker Studio- och Canvas-miljöer. Detta gör att du kan begränsa internetåtkomst, övervaka och inspektera trafik med standard AWS-nätverks- och säkerhetsfunktioner, och ansluta till andra AWS-resurser via VPC-slutpunkter.

VPC-krav för att använda endast VPC-läge

Att skapa en SageMaker-domän i endast VPC-läge kräver en VPC med följande konfigurationer:

  1. Minst två privata undernät, var och en i en annan tillgänglighetszon, för att säkerställa hög tillgänglighet.
  2. Se till att dina undernät har det antal IP-adresser som krävs. Vi rekommenderar mellan två och fyra IP-adresser per användare. Den totala IP-adresskapaciteten för en Studio-domän är summan av tillgängliga IP-adresser för varje subnät som tillhandahålls när domänen skapas.
  3. Konfigurera en eller flera säkerhetsgrupper med inkommande och utgående regler som tillsammans tillåter följande trafik:
    • NFS-trafik över TCP på port 2049 mellan domänen och Amazon EFS-volymen.
    • TCP-trafik inom säkerhetsgruppen. Detta krävs för anslutning mellan JupyterServer-appen och KernelGateway-apparna. Du måste tillåta åtkomst till åtminstone portar i intervallet 8192–65535.
  4. Skapa en gateway-slutpunkt för Amazon Simple Storage Service (Amazon S3). SageMaker Studio behöver komma åt Amazon S3 från din VPC med Gateway VPC-slutpunkter. När du har skapat gatewayens slutpunkt måste du lägga till den som ett mål i din rutttabell för trafik som är destinerad från din VPC till Amazon S3.
  5. Skapa gränssnitt VPC-slutpunkter (AWS PrivateLink) för att ge Studio åtkomst till följande tjänster med motsvarande tjänstnamn. Du måste också koppla en säkerhetsgrupp för din VPC till dessa slutpunkter för att tillåta all inkommande trafik från port 443:
    • SageMaker API: com.amazonaws.region.sagemaker.api. Detta krävs för att kommunicera med SageMaker API.
    • SageMaker körtid: com.amazonaws.region.sagemaker.runtime. Detta krävs för att köra Studio-anteckningsböcker och för att träna och vara värd för modeller.
    • SageMaker Feature Store: com.amazonaws.region.sagemaker.featurestore-runtime. Detta krävs för att använda SageMaker Feature Store.
    • SageMaker-projekt: com.amazonaws.region.servicecatalog. Detta krävs för att använda SageMaker Projects.

Ytterligare VPC-slutpunkter för att använda SageMaker Canvas

Utöver de tidigare nämnda VPC-ändpunkterna, för att använda SageMaker Canvas, måste du också skapa följande gränssnitts-VPC-slutpunkter:

  • Amazon Forecast och Amazon Forecast Query: com.amazonaws.region.forecast och com.amazonaws.region.forecastquery. Dessa krävs för att använda Amazon Forecast.
  • Amazon erkännande: com.amazonaws.region.rekognition. Detta krävs för att använda Amazon Rekognition.
  • Amazon Textract: com.amazonaws.region.textract. Detta krävs för att använda Amazon Textract.
  • Amazon förstår: com.amazonaws.region.comprehend. Detta krävs för att använda Amazon Comprehend.
  • AWS Security Token Service (AWS STS): com.amazonaws.region.sts. Detta krävs eftersom SageMaker Canvas använder AWS STS för att ansluta till datakällor.
  • Amazon Athena och AWS Lim: com.amazonaws.region.athena och com.amazonaws.region.glue. Detta krävs för att ansluta till AWS Glue Data Catalog via Amazon Athena.
  • Amazon Redshift: com.amazonaws.region.redshift-data. Detta krävs för att ansluta till Amazon Redshift-datakällan.

För att se alla VPC-slutpunkter för varje tjänst du kan använda med SageMaker Canvas, gå till Konfigurera Amazon SageMaker Canvas i en VPC utan internetåtkomst.

AWS KMS-kryptering för SageMaker Studios EFS-volym

Första gången en användare i ditt team går ombord på SageMaker Studio, skapar SageMaker en EFS-volym för teamet. En hemkatalog skapas i volymen för varje användare som går ombord på Studio som en del av ditt team. Notebook-filer och datafiler lagras i dessa kataloger.

Du kan kryptera din SageMaker Studios EFS-volym med en KMS-nyckel så att dina hemkatalogers data krypteras i vila. Denna Terraform-lösning skapar en KMS-nyckel och använder den för att kryptera SageMaker Studios EFS-volym.

SageMaker Domain Lifecycle Configuration för att automatiskt stänga av inaktiva Studio-datorer

sagemaker_auto_shutdown

Livscykelkonfigurationer är skalskript som utlöses av Amazon SageMaker Studios livscykelhändelser, som att starta en ny Studio-anteckningsbok. Du kan använda Lifecycle Configurations för att automatisera anpassning för din Studio-miljö.

Denna Terraform-lösning skapar en SageMaker Lifecycle Configuration för att upptäcka och stoppa lediga resurser som medför kostnader inom Studio med hjälp av en Jupyter-tillägg för automatisk avstängning. Under huven skapas eller konfigureras följande resurser för att uppnå önskat resultat:

  1. Skapa en S3-bucket och ladda upp den senaste versionen av tillägget för automatisk avstängning sagemaker_studio_autoshutdown-0.1.5.tar.gz. Senare kommer skriptet för automatisk avstängning att köra s3 cp kommando för att ladda ner tilläggsfilen från S3-bucket på Jupyter Server-starter. Se följande GitHub-repos för mer information om förlängning av automatisk avstängning och skript för automatisk avstängning.
  2. Skapa ett aws_sagemaker_studio_lifecycle_config resurs "auto_shutdown”. Denna resurs kommer att koda autoshutdown-script.sh med bas 64 och skapa en livscykelkonfiguration för SageMaker-domänen.
  3. För SageMaker Domain standardanvändarinställningar, ange Lifecycle Configuration arn och ange den som standard.

SageMaker exekveringsroll IAM-behörigheter

Som en hanterad tjänst utför SageMaker operationer för din räkning på AWS-hårdvaran som hanteras av SageMaker. SageMaker kan endast utföra operationer som användaren tillåter.

En SageMaker-användare kan ge dessa behörigheter med en IAM-roll (kallad en exekveringsroll). När du skapar en SageMaker Studio-domän låter SageMaker dig skapa exekveringsrollen som standard. Du kan begränsa åtkomsten till användarprofiler genom att ändra SageMakers användarprofilroll. Denna Terraform-lösning kopplar följande IAM-policyer till SageMakers exekveringsroll:

  • SageMaker lyckades AmazonSageMakerFullAccess politik. Denna policy ger exekveringsrollen full åtkomst att använda SageMaker Studio.
  • En kundhanterad IAM-policy för åtkomst till KMS-nyckeln som används för att kryptera SageMaker Studios EFS-volym.
  • SageMaker lyckades AmazonSageMakerCanvasFullAccess och AmazonSageMakerCanvasAIServicesAccess politik. Dessa policyer ger exekveringsrollen full åtkomst att använda SageMaker Canvas.
  • För att aktivera tidsserieanalys i SageMaker Canvas måste du också lägga till IAM-förtroendepolicyn för Amazon Forecast.

Lösning genomgång

I det här blogginlägget visar vi hur man distribuerar Terraform-lösningen. Innan du gör implementeringen, se till att du uppfyller följande förutsättningar:

Förutsättningar

  • Ett AWS-konto
  • En IAM-användare med administrativ åtkomst

Distributionssteg

För att ge användare som följer den här guiden en enhetlig implementeringsupplevelse, demonstrerar vi implementeringsprocessen med AWS CloudShell. Med CloudShell, ett webbläsarbaserat skal, kan du snabbt köra skript med AWS Command Line Interface (AWS CLI), experimentera med tjänste-API:er med AWS CLI och använda andra verktyg för att öka din produktivitet.

Utför följande steg för att distribuera Terraform-lösningen:

CloudShell-startinställningar

  • Logga in på AWS Management Console och välj CloudShell-tjänsten.
  • Välj i navigeringsfältet i regionväljaren USA-öst (N. Virginia).

Din webbläsare kommer att öppna CloudShell-terminalen.

Installera Terraform

Nästa steg bör utföras i en CloudShell-terminal.

Kolla upp denna Hashicorp-guide för uppdaterade instruktioner för att installera Terraform för Amazon Linux:

  • installera yum-config-manager för att hantera dina arkiv.
sudo yum install -y yum-utils

  • Använda yum-config-manager för att lägga till det officiella HashiCorp Linux-förrådet.
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

  • Installera Terraform från det nya förvaret.
sudo yum -y install terraform

  • Kontrollera att installationen fungerade genom att lista Terraforms tillgängliga underkommandon.
terraform -help

Förväntad produktion:

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

Klona kodrepo

Utför följande steg i en CloudShell-terminal.

  • Klona repet och navigera till mappen 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

  • Ladda ner tillägget för automatisk avstängning och placera det i assets/auto_shutdown_template mapp:
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

Implementera Terraform-lösningen

Kör följande Terraform-kommandon i CloudShell-terminalen:

terraform init

Du bör se ett framgångsmeddelande som:

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 kan du köra:

terraform plan

När du är nöjd med de resurser som planen beskriver som ska skapas kan du köra:

terraform apply

Stiga på "ja" när du uppmanas att bekräfta distributionen.

Om den är framgångsrik bör du se en utdata som ser ut så här:

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

Åtkomst till SageMaker Studio och Canvas

Vi har nu en Studio-domän kopplad till vår VPC och en användarprofil i denna domän.

sagemaker_domain

För att använda SageMaker Studio-konsolen, på Studio Kontrollpanel, leta reda på ditt användarnamn (det borde vara defaultuser) och välj Öppen studio.

Vi gjorde det! Nu kan du använda din webbläsare för att ansluta till SageMaker Studio-miljön. Efter några minuter avslutar Studio skapa din miljö och du möts av startskärmen.

studio_landing_page

För att använda SageMaker Canvas-konsolen, på Canvas kontrollpanel, leta reda på ditt användarnamn (bör vara defaultuser) och välj Öppna Canvas.

Nu kan du använda din webbläsare för att ansluta till SageMaker Canvas-miljön. Efter några minuter avslutar Canvas skapa din miljö och du möts av startskärmen.

canvas_landing_page

Utforska gärna den fulla funktionaliteten SageMaker Studio och Canvas har att erbjuda! Se avsnittet Slutsats för ytterligare workshops och handledningar som du kan använda för att lära dig mer om SageMaker.

Städa upp

Kör följande kommando för att rensa upp dina resurser:

terraform destroy

Tips: Om du ställer in Amazon EFS lagringspolicy som "Retain" (standard) kommer du stöta på problem under "terraform destroy” eftersom Terraform försöker ta bort subnäten och VPC när EFS-volymen samt dess associerade säkerhetsgrupper (skapade av SageMaker) fortfarande existerar. För att fixa detta, radera först EFS-volymen manuellt och radera sedan subnäten och VPC manuellt i AWS-konsolen.

Slutsats

Lösningen i det här inlägget ger dig möjligheten att skapa en SageMaker-domän för att stödja ML-miljöer, inklusive SageMaker Studio och SageMaker Canvas med Terraform. SageMaker Studio tillhandahåller en helt hanterad IDE som tar bort de tunga lyften i ML-processen. Med SageMaker Canvas kan våra affärsanvändare enkelt utforska och bygga ML-modeller för att göra exakta förutsägelser utan att skriva någon kod. Med möjligheten att starta Studio och Canvas inuti en VPC och användningen av en KMS-nyckel för att kryptera EFS-volymen, kan kunder använda SageMaker ML-miljöer med förbättrad säkerhet. Autoavstängning Lifecycle Configuration hjälper kunder att spara kostnader på inaktiva Studio-notebook-instanser.

Testa den här lösningen och låt oss veta vad du tycker. För mer information om hur du använder SageMaker Studio och Sagemaker Canvas, se följande:


Om författaren

chen_yang_awsChen Yang är maskininlärningsingenjör på Amazon Web Services. Hon är en del av AWS Professional Services-teamet och har fokuserat på att bygga säkra maskininlärningsmiljöer för kunder. På fritiden tycker hon om att springa och vandra i Pacific Northwest.

Tidsstämpel:

Mer från AWS maskininlärning