Perché il mio notebook Amazon SageMaker Studio in modalità solo VPC non si connette alla mia app KernelGateway?

Ultimo aggiornamento: 09/12/2022

Ho problemi di connettività tra il mio notebook Amazon SageMaker Studio in modalità solo VPC e la mia app KernelGateway.

Breve descrizione

È possibile che si verifichino gli errori riportati di seguito quando si utilizza SageMaker Studio solo in modalità VPC e non si riesce ad avviare l'app KernelGateway:

Sarai in grado di avviare SageMaker Studio, ma il kernel fallirà con il seguente errore:

SageMaker Studio is unable to connect KernelGateway App. In VPCOnly mode, please ensure that security groups allow TCP traffic within the security group

Solitamente, questo errore viene visualizzato perché il gruppo di sicurezza non è auto-referenziato per consentire la connettività tra le istanze all'interno del dominio SageMaker.

Ad esempio, supponiamo di poter avviare SageMaker Studio, ma il caricamento richiede molto tempo e il kernel non si avvia:

Failed to start kernel
Failed to launch app [None]. SageMaker Studio is unable to reach SageMaker endpoint. Please ensure your VPC has connectivity to SageMaker via Internet or VPC Endpoint. If you are using VPC Endpoints, please ensure Security Groups allows traffic between Studio and VPC endpoints.

Questo errore si verifica quando il tuo dominio esclusivo VPC non può connettersi a Internet o agli endpoint Amazon Virtual Private Cloud (Amazon VPC). Ciò può essere dovuto a diversi motivi, ad esempio:

  • I gruppi di sicurezza non sono configurati correttamente.
  • La tua sottorete non ha gli endpoint VPC corretti.
  • Il dominio è connesso a una sottorete privata e nessun gateway NAT attivo viene aggiunto alla tabella di instradamento.
  • Hai configurato SageMaker Studio per connettersi a sottoreti pubbliche.

Risoluzione

Verifica che i gruppi di sicurezza per SageMaker Studio includano le regole richieste

Assicurati che il traffico AWS Network File System (AWS NFS) tra il dominio e il volume Amazon Elastic File System (Amazon EFS) sia consentito tramite TCP sulla porta 2049. I tuoi dati di SageMaker Studio vengono archiviati utilizzando Amazon EFS. Pertanto, dovrai disporre delle regole per consentire le connessioni in entrata e in uscita per scopi di archiviazione.

Per consentire il traffico in entrata da Amazon EFS alle tue risorse, procedi come segue:

  1. Apri la console Amazon VPC.
  2. Nel pannello di navigazione, seleziona Security Groups (Gruppi di sicurezza).
  3. Seleziona il gruppo di sicurezza che desideri aggiornare.
  4. Scegli Actions (Operazioni), quindi seleziona Edit inbound rules (Modifica regole in ingresso).
  5. Scegli Add rule (Aggiungi regola), quindi effettua le seguenti operazioni:
    Per Type (Tipo), scegli NFS.
    Per Source (Origine), scegli Custom (Personalizzato), quindi inserisci l'ID Amazon EFS.
  6. Scegli Save rules (Salva regole).

Per consentire la connettività tra le app JupyterServer e KernelGateway, è necessario consentire il traffico TCP all'interno del gruppo di sicurezza. Poiché il dominio Studio è stato creato in modalità solo VPC, dovrai specificare almeno un gruppo di sicurezza per le risorse del dominio SageMaker Studio. Questo gruppo di sicurezza deve consentire il traffico in entrata su TCP sulle porte 8192-65535 e tutto il traffico in uscita su 0.0.0.0/0.

Per consentire la connettività tra le app JupyterServer e KernelGateway, procedi come segue:

  1. Apri la console Amazon VPC.
  2. Nel pannello di navigazione, seleziona Security Groups (Gruppi di sicurezza).
  3. Seleziona il gruppo di sicurezza che desideri aggiornare.
  4. Scegli Actions (Operazioni), quindi seleziona Edit inbound rules (Modifica regole in ingresso).
  5. Scegli Add rule (Aggiungi regola), quindi effettua le seguenti operazioni:
    In Type (Tipo), scegli Custom TCP (TCP personalizzato).
    Per Port range (Intervallo porte), immetti 8192-65535.
    Per Source (Origine), scegli Custom (Personalizzato), quindi inserisci l'ID del gruppo di sicurezza del gruppo di sicurezza che stai modificando.
  6. Scegli Save rules (Salva regole).

Quando accedi a una risorsa nel tuo Amazon VPC dal tuo notebook SageMaker Studio, il traffico proveniente dall'account del servizio SageMaker viene indirizzato attraverso la tua interfaccia di rete elastica. Tieni presente che entrambe le app JupyterServer e KernelGateway si trovano nel VPC del tuo account di servizio SageMaker e che comunicano tra loro attraverso le interfacce di rete elastiche collegate al tuo VPC. Sebbene queste app facciano parte dell'account del servizio di dominio SageMaker Studio, vengono eseguite su istanze di Amazon Elastic Compute Cloud (Amazon EC2) diverse. Per stabilire una connessione tra loro, le app utilizzano le porte temporanee. Non esiste una porta specifica su cui si connettono queste app. Pertanto, è consigliabile consentire l'apertura di tutte le porte TCP in gruppi di sicurezza auto-referenziali. Per ulteriori informazioni, consulta la sezione Dive deep into Amazon SageMaker Studio notebooks architecture (Approfondimento sull'architettura dei notebook di Amazon SageMaker Studio).

Verifica di aver creato gli endpoint VPC richiesti

Se le risorse di SageMaker Studio non richiedono l'accesso a Internet, non è necessario aggiungere un gateway NAT. Tuttavia, per eseguire i notebook Studio sono necessari i seguenti endpoint:

  • API SageMaker: com.amazonaws.<aws-region>.sagemaker.api
  • SageMaker runtime: com.amazonaws.<aws-region>.sagemaker.runtime

Assicurati di creare i seguenti endpoint per accedere ad Amazon Simple Storage Service (Amazon S3) e ai modelli del progetto:

  • Per Amazon S3: com.amazonaws.<aws-region>.s3
  • Per i modelli del progetto Amazon SageMaker: com.amazonaws.<aws-region>.servicecatalog

Assicurati di associare i gruppi di sicurezza per il tuo VPC a questi endpoint VPC procedendo come segue:

  1. Apri la console Amazon VPC.
  2. Nel pannello di navigazione, scegli Endpoints (Endpoint).
  3. Scegli l'endpoint che desideri aggiornare.
  4. Scegli Actions (Operazioni), quindi seleziona Manage security groups (Gestisci gruppi di sicurezza).
  5. Seleziona il gruppo di sicurezza che deve essere associato a questo endpoint.
  6. Scegli Save (Salva).

Per ulteriori informazioni, consulta quanto segue:

Verifica dell'uso di un gateway NAT se vi è bisogno di connettività Internet

Se le risorse di SageMaker Studio richiedono l'accesso a Internet, assicurati innanzitutto che SageMaker Studio sia configurato per connettersi a sottoreti private. Quindi, crea un gateway NAT e consenti il traffico proveniente dal gateway NAT attraverso la tabella di instradamento della tua sottorete privata. Per ulteriori informazioni, consulta Come posso configurare un gateway NAT per una sottorete privata in Amazon VPC? Il dominio SageMaker Studio connesso a una sottorete pubblica non consente la connessione a Internet.

Verifica che i requisiti di rete per il tuo VPC siano soddisfatti

Se hai avviato SageMaker Studio in modalità solo VPC, assicurati che il tuo VPC soddisfi i seguenti requisiti:

  • Le sottoreti devono avere un numero sufficiente di indirizzi IP disponibili per l'istanza.
  • Per consentire l'accesso a Internet, durante la creazione del dominio assicurati di associare il tuo dominio SageMaker a una sottorete privata. Inoltre, utilizza il gateway NAT per l'accesso a Internet.
  • Se utilizzi un endpoint VPC per eseguire le API SageMaker, assicurati che gli attributi Enable DNS hostnames (Abilita nomi host DNS) e Enable DNS Support (Abilita supporto DNS) siano impostati su true per il tuo VPC. Ciò è necessario affinché il VPC si connetta all'endpoint dell'API SageMaker all'avvio del kernel.

Puoi usare i comandi dell'Interfaccia della linea di comando AWS (AWS CLI) per assicurarti che i gruppi di sicurezza corretti siano collegati al dominio. Per aggiornare DefaultUserSettings del tuo dominio Studio in modo da utilizzare il nuovo gruppo di sicurezza, usa il comando update-domain:

aws sagemaker update-domain –domain-id <value> --default-user-settings SecurityGroups=<list>

Puoi anche riconfigurare il dominio ricreando il dominio collegato ai gruppi di sicurezza necessari. L'output relativo al parametro SecurityGroups riporta tutti i gruppi di sicurezza per il VPC che Studio utilizza per la comunicazione.

Nota: per eseguire il comando precedente, devi eliminare tutte le app con stato InService (In servizio) dai tuoi profili utente.

Una volta completato il comando update-domain, potrai controllare il tuo dominio usando il comando describe-domain:

Esempio:

$ aws sagemaker describe-domain --domain-id d-xyzxyz

Quindi, avvia nuovamente SageMaker Studio e conferma che il notebook si sta avviando correttamente. Puoi anche testare la connettività Internet eseguendo !curl amazon.com dall'interno di una cella del notebook.

Nota: se ricevi un messaggio di errore durante l'esecuzione dei comandi di AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Elimina l'app JupyterServer e avviane una nuova per rendere effettive le impostazioni aggiornate. Puoi usare il tuo profilo utente di SageMaker Studio dopo aver aggiornato le impostazioni di Amazon VPC. Per ulteriori informazioni, consulta Requisiti per utilizzare la modalità solo VPC in Connessione dei notebook SageMaker Studio in un VPC a risorse esterne.

Altre considerazioni

Se anche solo un utente riscontra questo problema, controlla se l'app predefinita è stata avviata prima del completamento degli aggiornamenti del VPC. In questo caso, l'app JupyterServer predefinita non viene aggiornata automaticamente per utilizzare la nuova configurazione VPC, con conseguenti problemi di connettività. Inoltre, controlla se l'app JupyterServer predefinita è stata avviata alcune settimane o mesi prima. Ciò potrebbe comportare che l'app abbia file di log e file temporanei di grandi dimensioni. Prova a ricreare l'app predefinita per liberare spazio o per assicurarti che l'app utilizzi la configurazione VPC aggiornata.

Il problema potrebbe verificarsi se gli utenti di SageMaker Studio sono configurati con un ruolo di esecuzione diverso. Assicurati che le autorizzazioni del ruolo di esecuzione degli utenti includano le policy richieste. Tali policy devono attivare il ruolo di esecuzione per eseguire l'operazione DescribeApp necessaria per creare i notebook Studio. Dopo aver aggiornato queste autorizzazioni per il ruolo di esecuzione, prova a fornire i notebook Studio in modalità solo VPC.


Questo articolo è stato utile?


Hai bisogno della fattura o di supporto tecnico?