Nozioni di base sulla modalità locale - Amazon SageMaker AI

Nozioni di base sulla modalità locale

Le sezioni seguenti descrivono le fasi necessarie per iniziare a utilizzare la modalità locale in Amazon SageMaker Studio, tra cui:

  • Completamento dei prerequisiti

  • Impostazione di EnableDockerAccess

  • Installazione di Docker

Prerequisiti

Completa i prerequisiti seguenti per utilizzare la modalità locale nelle applicazioni Studio:

  • Per estrarre immagini da un repository Amazon Elastic Container Registry, l’account che ospita l’immagine Amazon ECR deve fornire l’autorizzazione di accesso per il ruolo di esecuzione dell’utente. Anche il ruolo di esecuzione del dominio deve consentire l’accesso ad Amazon ECR.

  • Verifica di disporre della versione più recente di Studio Python SDK utilizzando il comando seguente: 

    pip install -U sagemaker
  • Per utilizzare la modalità locale e le funzionalità Docker, imposta il parametro seguente DockerSettings del dominio dalla AWS Command Line Interface (AWS CLI): 

    EnableDockerAccess : ENABLED
  • Con EnableDockerAccess, puoi anche controllare se gli utenti del dominio possono utilizzare la modalità locale. Per impostazione predefinita, la modalità locale e le funzionalità Docker non sono consentite nelle applicazioni Studio. Per ulteriori informazioni, consulta Impostazione di EnableDockerAccess.

  • Installa la CLI Docker nell’applicazione Studio seguendo la procedura in Installazione di Docker.

  • Per la Configurazione di Docker rootless, verifica che il VPC abbia gli endpoint appropriati e il routing configurato per i registri Docker desiderati.

Impostazione di EnableDockerAccess

Le sezioni seguenti mostrano come impostare EnableDockerAccess quando il dominio dispone di un accesso pubblico a Internet o è in modalità VPC-only.

Nota

Le modifiche a EnableDockerAccess si applicano solo alle applicazioni create dopo l’aggiornamento del dominio. È necessario creare una nuova applicazione dopo l’aggiornamento del dominio.

Accesso pubblico a Internet

I comandi di esempio seguenti mostrano come impostare EnableDockerAccess quando crei un nuovo dominio o aggiorni un dominio esistente con accesso pubblico a Internet:

# create new domain aws --region region \ sagemaker create-domain --domain-name domain-name \ --vpc-id vpc-id \ --subnet-ids subnet-ids \ --auth-mode IAM \ --default-user-settings "ExecutionRole=execution-role" \ --domain-settings '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}' \ --query DomainArn \ --output text # update domain aws --region region \ sagemaker update-domain --domain-id domain-id \ --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'

Modalità VPC-only

Quando utilizzi un dominio in modalità VPC-only, le richieste push e pull delle immagini Docker non vengono instradate tramite il VPC configurato dal cliente, ma tramite il VPC del servizio. Grazie a questa funzionalità, gli amministratori possono configurare un elenco di Account AWS attendibili a cui gli utenti possono inviare richieste di operazioni pull e push Docker in Amazon ECR.

Se viene effettuata una richiesta push o pull di un’immagine Docker a un Account AWS che non è nell’elenco degli Account AWS attendibili, la richiesta non riesce. Le operazioni Docker di pull e push al di fuori di Amazon Elastic Container Registry (Amazon ECR) non sono supportate in modalità VPC-only.

I seguenti Account AWS sono considerati attendibili per impostazione predefinita:

  • L’account che ospita il dominio SageMaker AI.

  • Gli account SageMaker AI che ospitano le seguenti immagini SageMaker:

    • Immagini del framework DLC

    • Immagini di elaborazione Sklearn, Spark e XGBoost

Per configurare un elenco di ulteriori Account AWS attendibili, specifica il valore VpcOnlyTrustedAccounts come descritto di seguito:

aws --region region \ sagemaker update-domain --domain-id domain-id \ --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'
Nota

Quando Configurazione di Docker rootless è abilitato, VpcOnlyTrustedAccounts viene ignorato e il traffico Docker viene instradato attraverso la configurazione VPC, consentendo l’accesso a qualsiasi registro raggiungibile dal VPC.

Configurazione di Docker rootless

Quando RootlessDocker è abilitato, Studio utilizza un daemon Docker rootless che instrada il traffico attraverso il VPC. Ciò offre una maggiore sicurezza e consente l’accesso a ulteriori registri Docker. Le differenze principali con RootlessDocker sono:

  • Le porte dei container sono accessibili utilizzando l’IP del gateway Docker (172.17.0.1) anziché localhost.

  • La configurazione del VPC determina quali registri sono accessibili per le operazioni Docker. VpcOnlyTrustedAccounts viene ignorato e il traffico Docker viene instradato attraverso la configurazione del VPC.

Per utilizzare Docker rootless, devi impostare sia EnableDockerAccess che RootlessDocker su ENABLED per DockerSettings. Ad esempio, negli esempi Impostazione di EnableDockerAccess precedenti, puoi modificare le impostazioni del dominio per includere:

'{"DockerSettings": {"EnableDockerAccess": "ENABLED", "RootlessDocker": "ENABLED"}}'

Installazione di Docker

Per utilizzare Docker, devi installare manualmente Docker dal terminale dell’applicazione Studio. La procedura per l’installazione di Docker può variare a seconda che il dominio abbia accesso a Internet o meno.

Accesso a Internet

Se il dominio viene creato con accesso pubblico a Internet o in modalità VPC-only con accesso limitato a Internet, utilizza la procedura seguente per l’installazione di Docker.

  1. (Facoltativo) Se il dominio è stato creato in modalità VPC-only con accesso limitato a Internet, crea un gateway NAT pubblico con accesso al sito web Docker. Per istruzioni, consulta NAT gateways.

  2. Accedi al terminale dell’applicazione Studio in cui desideri installare Docker.

  3. Per restituire il sistema operativo dell’applicazione, utilizza il comando seguente dal terminale:

    cat /etc/os-release
  4. Installa Docker seguendo le istruzioni per il sistema operativo dell’applicazione nel repository di esempi della modalità locale di Amazon SageMaker AI.

    Ad esempio, installa Docker in Ubuntu seguendo lo script disponibile all’indirizzo https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh con le seguenti considerazioni:

    • Se i comandi concatenati non riescono, esegui un comando alla volta.

    • Studio supporta solo Docker versione 20.10.X. e Docker Engine API versione 1.41.

    • I seguenti pacchetti non sono necessari per utilizzare la CLI Docker in Studio e la loro installazione può essere ignorata:

      • containerd.io

      • docker-ce

      • docker-buildx-plugin

    Nota

    Non è necessario avviare il servizio Docker nelle applicazioni. L’istanza che ospita l’applicazione Studio esegue il servizio Docker per impostazione predefinita. Tutte le chiamate API Docker vengono instradate automaticamente tramite il servizio Docker.

  5. Utilizza il socket Docker esposto per le interazioni Docker all’interno delle applicazioni Studio. Per impostazione predefinita, è esposto il socket seguente:

    unix:///docker/proxy.sock

    La variabile di ambiente dell’applicazione Studio seguente per il valore USER predefinito utilizza questo socket esposto:

    DOCKER_HOST

Nessun accesso a Internet

Se il dominio viene creato in modalità VPC-only senza accesso a Internet, utilizza la procedura seguente per l’installazione di Docker.

  1. Accedi al terminale dell’applicazione Studio in cui desideri installare Docker.

  2. Utilizza il comando seguente dal terminale per restituire il sistema operativo dell’applicazione:

    cat /etc/os-release
  3. Scarica i file .deb Docker richiesti nel computer locale. Per istruzioni su come scaricare i file richiesti per il sistema operativo dell’applicazione Studio, consulta Install Docker Engine.

    Ad esempio, installa Docker da un pacchetto su Ubuntu seguendo le fasi da 1 a 4 in Install from a package con le seguenti considerazioni:

    • Installa Docker da un pacchetto. Non sono previsti altri metodi di installazione di Docker.

    • Installa i pacchetti più recenti corrispondenti a Docker versione 20.10.X.

    • I pacchetti seguenti non sono necessari per utilizzare la CLI Docker in Studio. Non è necessario installare quanto segue:

      • containerd.io

      • docker-ce

      • docker-buildx-plugin

    Nota

    Non è necessario avviare il servizio Docker nelle applicazioni. L’istanza che ospita l’applicazione Studio esegue il servizio Docker per impostazione predefinita. Tutte le chiamate API Docker vengono instradate automaticamente tramite il servizio Docker.

  4. Carica i file .deb nel file system Amazon EFS o nel file system Amazon EBS dell’applicazione.

  5. Installa manualmente i pacchetti docker-ce-cli e docker-compose-plugin .deb dal terminale dell’applicazione Studio. Per ulteriori informazioni e istruzioni, consulta la fase 5 in Install from a package sul sito web della documentazione Docker.

  6. Utilizza il socket Docker esposto per le interazioni Docker all’interno delle applicazioni Studio. Per impostazione predefinita, è esposto il socket seguente:

    unix:///docker/proxy.sock

    La variabile di ambiente dell’applicazione Studio seguente per il valore USER predefinito utilizza questo socket esposto:

    DOCKER_HOST