Aggiunta di un file system personalizzato a un dominio - Amazon SageMaker AI

Aggiunta di un file system personalizzato a un dominio

Quando crei un dominio, Amazon SageMaker AI aggiunge un volume Amazon Elastic File System (Amazon EFS) predefinito al dominio. SageMaker AI crea questo volume automaticamente. Hai anche la possibilità di aggiungere un file system Amazon EFS o Amazon FSx per Lustre personalizzato creato da te. Dopo averlo aggiunto, il file system diventa disponibile agli utenti che appartengono al dominio. Gli utenti possono accedere al file system quando usano Amazon SageMaker Studio. Possono collegare il file system agli spazi che creano per le applicazioni supportate seguenti:

  • JupyterLab

  • Editor di codici

Dopo aver eseguito uno spazio e avviato l’applicazione, gli utenti possono accedere a qualsiasi dato, codice o altro artefatto contenuto nel file system.

Puoi consentire agli utenti di accedere al file system nei seguenti modi:

  • Attraverso spazi condivisi: uno spazio condiviso può essere creato e utilizzato da qualsiasi utente appartenente al dominio.

  • Attraverso spazi privati: uno spazio privato può essere creato da qualsiasi utente appartenente al dominio e può essere utilizzato solo da quell’utente.

  • Esclusivamente a un singolo utente: se non desideri consentire a tutti gli utenti di accedere al file system, puoi concedere l’accesso solo a un utente specifico. In tal caso, il file system sarà disponibile solo negli spazi privati creati dall’utente specifico.

Puoi aggiungere un file system personalizzato utilizzando l’API Amazon SageMaker, gli SDK AWS o la AWS CLI. Non puoi aggiungere un file system personalizzato con la console SageMaker AI.

Prerequisiti

Prima di aggiungere un file system personalizzato a un dominio, devi soddisfare i requisiti seguenti:

  • Disponi di un dominio in SageMaker AI. Per poter aggiungere un file system, è necessario l’ID dominio. Puoi cercare l’ID utilizzando la console SageMaker AI. Inoltre puoi eseguire il comando list-domains con l’opzione AWS CLI.

  • Hai un file system Amazon EFS o FSx per Lustre nel tuo Account AWS.

    For Amazon EFS
    • Per la procedura per creare un Amazon EFS, consulta Create your Amazon EFS file system in Amazon Elastic File System User Guide.

    • Per poter accedere al file system, Studio deve disporre di una destinazione di montaggio in ciascuna delle sottoreti associate al dominio. Per ulteriori informazioni sull’assegnazione di destinazioni di montaggio alle sottoreti, consulta Creating and managing mount targets and security groups in Amazon Elastic File System User Guide.

    • Per ogni destinazione di montaggio, devi aggiungere il gruppo di sicurezza creato da Amazon SageMaker AI nel Account AWS al momento della creazione del dominio. Il formato del nome del gruppo di sicurezza è security-group-for-inbound-nfs-domain-id. Per istruzioni su come ottenere l’ID dominio, consulta Visualizzazione dei domini.

    • Le autorizzazioni IAM devono consentirti di utilizzare l’azione elasticfilesystem:DescribeMountTargets. Per ulteriori informazioni su questa azione, consulta Azioni, risorse e chiavi di condizione per Amazon Elastic File System in Informazioni di riferimento sull’autorizzazione del servizio.

    For FSx for Lustre
    • Per la procedura per creare un file system FSx per Lustre, consulta Getting started with Amazon FSx per Lustre in Amazon FSx per Lustre User Guide. Verifica che il file system FSx per Lustre si trovi:

      • Nello stesso Amazon VPC del tuo dominio.

      • In una delle sottoreti presenti nel tuo dominio.

    • Prima che Studio possa accedere al file system FSx per Lustre, è necessario aggiungere il gruppo di sicurezza del dominio a tutte le interfacce di rete elastiche (ENI) del file system FSx per Lustre. Senza questa fase, la creazione dell’app non riesce e restituisce un errore. Utilizza le istruzioni seguenti per aggiungere il gruppo di sicurezza del dominio alle ENI del file system FSx per Lustre.

      Aggiunta del gruppo di sicurezza del dominio alle ENI del file system FSx per Lustre (console)
      1. Passa alla console di Amazon FSx.

      2. Seleziona File system.

      3. Scegli il file system FSx per Lustre utilizzando il link corrispondente in ID del file system.

      4. Se non è già selezionata, scegli la scheda Rete e sicurezza.

      5. In Sottorete, scegli Per vedere tutte le ENI, consulta la console di Amazon EC2. Questa opzione aprirà la console di Amazon EC2 e mostrerà tutti le ENI collegate al tuo file system FSx per Lustre.

      6. Per ogni ENI:

        1. Scegli l’ENI selezionando il link corrispondente in ID interfaccia di rete.

        2. Scegli Azioni in alto a destra nella pagina di riepilogo per espandere un menu a discesa.

        3. Nel menu a discesa, seleziona Scegli gruppo di sicurezza.

        4. Cerca il gruppo di sicurezza del tuo dominio.

          Il formato del nome del gruppo di sicurezza è security-group-for-inbound-nfs-domain-id. Per istruzioni su come ottenere l’ID dominio, consulta Visualizzazione dei domini.

        5. Seleziona Aggiungi gruppo di sicurezza.

Aggiunta di un file system personalizzato a un dominio con la AWS CLI

Per aggiungere un file system personalizzato a un dominio o a un profilo utente con la AWS CLI, passa una definizione CustomFileSystemConfigs quando utilizzi uno dei seguenti comandi:

Gli esempi seguenti mostrano come aggiungere un file system a un dominio o a un profilo utente esistente.

Per aggiungere un file system accessibile in spazi condivisi
  • Aggiorna le impostazioni di spazio predefinite per il tuo dominio. L’esempio seguente aggiunge le impostazioni del file system alle impostazioni di spazio predefinite:

    aws sagemaker update-domain --domain-id domain-id \ --default-space-settings file://file-system-settings.json

    Questo esempio passa la configurazione del file system come file JSON, come illustrato in un esempio successivo.

Per aggiungere un file system accessibile in spazi privati
  • Aggiorna le impostazioni utente predefinite per il tuo dominio. L’esempio seguente aggiunge le impostazioni del file system alle impostazioni utente predefinite:

    aws sagemaker update-domain --domain-id domain-id \ --default-user-settings file://file-system-settings.json

    Questo esempio passa la configurazione del file system come file JSON, come illustrato in un esempio successivo.

Per aggiungere un file system accessibile solo a un singolo utente
  • Aggiorna il profilo utente per l’utente. L’esempio seguente aggiunge le impostazioni del file system a un profilo utente:

    aws sagemaker update-user-profile --domain-id domain-id \ --user-profile-name user-profile-name \ --user-settings file://file-system-settings.json

    Questo esempio passa la configurazione del file system come file JSON, come illustrato nell’esempio seguente.

Esempio file di impostazioni del file system

Il file negli esempi precedenti, file-system-settings.json, presenta le impostazioni seguenti:

For your FSx for Lustre file systems
{ "CustomFileSystemConfigs": [ { "FSxLustreFileSystemConfig": { "FileSystemId": "file-system-id", "FileSystemPath": "/" } } ] }

Questa configurazione di esempio ha le chiavi seguenti:

CustomFileSystemConfigs

Impostazioni per i file system personalizzati (sono supportati solo i file system Amazon EFS).

FSxLustreFileSystemConfig

Impostazioni per i file system FSx per Lustre personalizzati.

FileSystemId

L’ID del file system Amazon EFS.

FileSystemPath

Il percorso per la directory del file system accessibile agli utenti del dominio nei rispettivi spazi in Studio. Gli utenti autorizzati possono accedere solo a questa directory e a quelle sottostanti. Il percorso predefinito è il root del file system: /.

For your Amazon EFS file systems
{ "CustomFileSystemConfigs": [ { "EFSFileSystemConfig": { "FileSystemId": "file-system-id", "FileSystemPath": "/" } } ] }

Questa configurazione di esempio ha le chiavi seguenti:

CustomFileSystemConfigs

Impostazioni per i file system personalizzati (sono supportati solo i file system Amazon EFS).

EFSFileSystemConfig

Impostazioni per i file system Amazon EFS personalizzati.

FileSystemId

L’ID del file system Amazon EFS.

FileSystemPath

Il percorso per la directory del file system accessibile agli utenti del dominio nei rispettivi spazi in Studio. Gli utenti autorizzati possono accedere solo a questa directory e a quelle sottostanti. Il percorso predefinito è il root del file system: /.

Quando si assegna un file system alle impostazioni di spazio predefinite per un dominio, è necessario includere anche il ruolo di esecuzione nelle impostazioni:

{ "ExecutionRole": "execution-role-arn" }

Questa configurazione di esempio contiene la chiave seguente:

ExecutionRole

Il ruolo di esecuzione predefinito per gli utenti del dominio.

Se desideri applicare le autorizzazioni POSIX al tuo file system, puoi anche passare le impostazioni seguenti ai comandi create-domain o create-user-profile:

{ "CustomPosixUserConfig": { "Uid": UID, "Gid": GID } }

Questa configurazione di esempio ha le chiavi seguenti:

CustomPosixUserConfig

Le identità POSIX predefinite utilizzate per le operazioni del file system. Puoi utilizzare queste impostazioni per applicare la struttura di autorizzazioni POSIX esistente ai profili utente che accedono al file system personalizzato. A livello delle autorizzazioni POSIX, puoi controllare quali utenti possono accedere al file system e a quali file o dati possono accedere.

Puoi anche applicare le impostazioni CustomPosixUserConfig quando crei un profilo utente utilizzando il comando create-user-profile. Le impostazioni applicate a un profilo utente sono prioritarie rispetto a quelle applicate al dominio associato.

Nota

Puoi applicare le impostazioni CustomPosixUserConfig quando utilizzi i comandi create-domain e create-user-profile, ma non quando:

  • Utilizzi il comando update-domain per un dominio già associato a un qualsiasi profilo utente. Puoi applicare queste impostazioni solo ai domini senza profili utente.

  • Utilizza il comando update-user-profile. Per applicare queste impostazioni a un profilo già creato, elimina il profilo e creane uno nuovo con le impostazioni aggiornate.

Uid

L’ID utente POSIX. Il valore predefinito è 200001.

Gid

L’ID del gruppo POSIX. Il valore predefinito è 1001.

Collegamento di un file system personalizzato a uno spazio con la AWS CLI

Dopo aver aggiunto un file system personalizzato a un dominio, gli utenti del dominio possono collegare il file system agli spazi che creano. Ad esempio, possono collegare il file system quando utilizzano Studio o il comando create-space con la AWS CLI.

Per collegare un file system personalizzato a uno spazio
  • Aggiungi la configurazione del file system alle impostazioni dello spazio. Il comando di esempio seguente collega un file system a un nuovo spazio.

    aws sagemaker create-space \ --space-name space-name \ --domain-id domain-id \ --ownership-settings "OwnerUserProfileName=user-profile-name" \ --space-sharing-settings "SharingType=Private" \ --space-settings file://space-settings.json

    In questo esempio, il file space-settings.json ha le impostazioni seguenti, che includono la configurazione CustomFileSystems con la chiave FileSystemId.

    For your FSx for Lustre file systems
    { "AppType": "JupyterLab", "JupyterLabAppSettings": { "DefaultResourceSpec": { "InstanceType": "instance-type" } }, "CustomFileSystems": [ { "FSxLustreFileSystem": { "FileSystemId": "file-system-id" } } ] }
    For your Amazon EFS file systems
    { "AppType": "JupyterLab", "JupyterLabAppSettings": { "DefaultResourceSpec": { "InstanceType": "instance-type" } }, "CustomFileSystems": [ { "EFSFileSystem": { "FileSystemId": "file-system-id" } } ] }

    SageMaker AI crea un link simbolico nel seguente percorso: /home/sagemaker-user/custom-file-systems/file-system-type/file-system-id. Con questo, gli utenti del dominio possono accedere al file system personalizzato dalla loro home directory /home/sagemaker-user.