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
DockerSettingsdel 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 --regionregion\ sagemaker create-domain --domain-namedomain-name\ --vpc-idvpc-id\ --subnet-idssubnet-ids\ --auth-mode IAM \ --default-user-settings "ExecutionRole=execution-role" \ --domain-settings '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}' \ --query DomainArn \ --output text # update domain aws --regionregion\ sagemaker update-domain --domain-iddomain-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 --regionregion\ sagemaker update-domain --domain-iddomain-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 rootlessRootlessDocker 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.
VpcOnlyTrustedAccountsviene 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.
-
(Facoltativo) Se il dominio è stato creato in modalità
VPC-onlycon accesso limitato a Internet, crea un gateway NAT pubblico con accesso al sito web Docker. Per istruzioni, consulta NAT gateways. -
Accedi al terminale dell’applicazione Studio in cui desideri installare Docker.
-
Per restituire il sistema operativo dell’applicazione, utilizza il comando seguente dal terminale:
cat /etc/os-release -
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 versione1.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.
-
-
Utilizza il socket Docker esposto per le interazioni Docker all’interno delle applicazioni Studio. Per impostazione predefinita, è esposto il socket seguente:
unix:///docker/proxy.sockLa variabile di ambiente dell’applicazione Studio seguente per il valore
USERpredefinito 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.
-
Accedi al terminale dell’applicazione Studio in cui desideri installare Docker.
-
Utilizza il comando seguente dal terminale per restituire il sistema operativo dell’applicazione:
cat /etc/os-release -
Scarica i file
.debDocker 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.
-
-
Carica i file
.debnel file system Amazon EFS o nel file system Amazon EBS dell’applicazione. -
Installa manualmente i pacchetti
docker-ce-cliedocker-compose-plugin.debdal terminale dell’applicazione Studio. Per ulteriori informazioni e istruzioni, consulta la fase 5 in Install from a packagesul sito web della documentazione Docker. -
Utilizza il socket Docker esposto per le interazioni Docker all’interno delle applicazioni Studio. Per impostazione predefinita, è esposto il socket seguente:
unix:///docker/proxy.sockLa variabile di ambiente dell’applicazione Studio seguente per il valore
USERpredefinito utilizza questo socket esposto:DOCKER_HOST