Ajout d’un système de fichiers personnalisé à un domaine - Amazon SageMaker AI

Ajout d’un système de fichiers personnalisé à un domaine

Lorsque vous créez un domaine, Amazon SageMaker AI ajoute un volume Amazon Elastic File System (Amazon EFS) par défaut au domaine. SageMaker AI crée ce volume pour vous. Vous avez également la possibilité d’ajouter un système de fichiers Amazon EFS personnalisé ou un système de fichiers Amazon FSx pour Lustre personnalisé que vous avez créé. Une fois que vous l’avez ajouté, votre système de fichiers est mis à la disposition des utilisateurs appartenant à votre domaine. Vos utilisateurs peuvent accéder au système de fichiers lorsqu’ils utilisent Amazon SageMaker Studio. Ils peuvent attacher le système de fichiers aux espaces qu’ils créent pour les applications prises en charge suivantes :

  • JupyterLab

  • Éditeur de code

Après avoir exécuté un espace et démarré l’application, vos utilisateurs peuvent accéder à toutes les données, codes ou autres artefacts contenus dans votre système de fichiers.

Vous pouvez permettre à vos utilisateurs d’accéder à votre système de fichiers de différentes manières :

  • Par le biais d’espaces partagés : un espace partagé peut être créé par n’importe quel utilisateur appartenant à votre domaine. Il peut ensuite être utilisé par n’importe quel utilisateur appartenant à votre domaine.

  • Par le biais d’espaces privés : un espace privé peut être créé par n’importe quel utilisateur appartenant à votre domaine. Ensuite, il ne peut être utilisé que par cet utilisateur.

  • Exclusivement en tant qu’utilisateur individuel : si vous ne souhaitez pas permettre à tous vos utilisateurs d’accéder au système de fichiers, vous pouvez permettre à un seul utilisateur spécifique d’y accéder. Dans ce cas, le système de fichiers n’est disponible que dans les espaces privés créés par cet utilisateur spécifique.

Vous pouvez ajouter un système de fichiers personnalisé à l’aide de l’API Amazon SageMaker, des kits AWS SDK ou de l’AWS CLI. Vous ne pouvez pas ajouter un système de fichiers personnalisé à l’aide de la console SageMaker AI.

Prérequis

Pour pouvoir ajouter un système de fichiers personnalisé à un domaine, vous devez remplir les conditions suivantes :

  • Vous avez un domaine dans SageMaker AI. Avant de pouvoir ajouter un système de fichiers, vous avez besoin de l’ID du domaine. Vous pouvez rechercher l’ID à l’aide de la console SageMaker AI. Vous pouvez également exécuter la commande list-domains avec l’AWS CLI.

  • Vous avez un système de fichiers Amazon EFS ou FSx pour Lustre dans votre Compte AWS.

    For Amazon EFS
    • Pour connaître les étapes de création d’un Amazon EFS, consultez Création de votre système de fichiers Amazon EFS dans le Guide de l’utilisateur Amazon Elastic File System.

    • Avant que Studio puisse accéder à votre système de fichiers, il doit disposer d’une cible de montage dans chacun des sous-réseaux que vous associez au domaine. Pour plus d’informations sur l’attribution de cibles de montage à des sous-réseaux, consultez Création et gestion de cibles de montage et de groupes de sécurité dans le Guide de l’utilisateur Amazon Elastic File System.

    • Pour chaque cible de montage, vous devez ajouter le groupe de sécurité créé par Amazon SageMaker AI dans votre Compte AWS lors de la création du domaine. Le nom du groupe de sécurité est au format security-group-for-inbound-nfs-domain-id. Pour obtenir des instructions sur la façon d’obtenir l’ID de votre domaine, consultez Visualisation des domaines.

    • Vos autorisations IAM doivent vous permettre d’utiliser l’action elasticfilesystem:DescribeMountTargets. Pour plus d’informations sur cette action, consultez Actions, ressources et clés de condition pour Amazon Elastic File System dans la Référence de l’autorisation de service.

    For FSx for Lustre
    • Pour connaître les étapes de création d’un système de fichiers FSx pour Lustre, consultez Prise en main d’Amazon FSx pour Lustre dans le Guide de l’utilisateur Amazon FSx pour Lustre. Vérifiez que le système de fichiers FSx pour Lustre existe dans :

      • le même réseau Amazon VPC que votre domaine ;

      • l’un des sous-réseaux présents dans votre domaine.

    • Avant que Studio puisse accéder au système de fichiers FSx pour Lustre, vous devez ajouter le groupe de sécurité de votre domaine à toutes les interfaces réseau Elastic (ENI) figurant dans votre système de fichiers FSx pour Lustre. Sans cette étape, la création de l’application échoue et renvoie une erreur. Suivez les instructions ci-dessous pour ajouter le groupe de sécurité de domaine aux interfaces ENI de votre système de fichiers FSx pour Lustre.

      Ajout de votre groupe de sécurité de domaine aux interfaces ENI du système de fichiers FSx pour Lustre (console)
      1. Accédez à la console Amazon FSx.

      2. Choisissez File Systems (Systèmes de fichiers).

      3. Choisissez votre système de fichiers FSx pour Lustre en utilisant le lien correspondant sous ID du système de fichiers.

      4. Si ce n’est pas déjà fait, choisissez l’onglet Réseau et sécurité.

      5. Sous Sous-réseau, choisissez Pour voir toutes les ENI, consultez la console Amazon EC2. Cela vous amène à la console Amazon EC2 et affiche toutes les interfaces ENI liées à votre système de fichiers FSx pour Lustre.

      6. Pour chaque interface ENI :

        1. Choisissez l’ENI en choisissant le lien correspondant sous ID d’interface réseau.

        2. Choisissez Actions en haut à droite de la page de résumé pour développer un menu déroulant.

        3. Dans le menu déroulant, choisissez Choisir un groupe de sécurité.

        4. Recherchez votre groupe de sécurité de domaine.

          Le nom du groupe de sécurité est au format security-group-for-inbound-nfs-domain-id. Pour obtenir des instructions sur la façon d’obtenir l’ID de votre domaine, consultez Visualisation des domaines.

        5. Choisissez Ajouter un groupe de sécurité.

Ajout d’un système de fichiers personnalisé à un domaine à l’aide de l’AWS CLI

Pour ajouter un système de fichiers personnalisé à un domaine ou à un profil utilisateur à l’aide de l’AWS CLI, vous devez transmettre une définition CustomFileSystemConfigs lorsque vous utilisez l’une des commandes suivantes :

Les exemples suivants montrent comment ajouter un système de fichiers à un domaine ou un profil utilisateur existant.

Pour ajouter un système de fichiers accessible dans les espaces partagés
  • Mettez à jour les paramètres d’espace par défaut pour votre domaine. L’exemple suivant ajoute les paramètres du système de fichiers aux paramètres d’espace par défaut :

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

    Cet exemple transmet la configuration du système de fichiers sous forme de fichier JSON, comme indiqué dans un exemple ultérieur.

Pour ajouter un système de fichiers accessible dans les espaces privés
  • Mettez à jour les paramètres d’utilisateur par défaut pour votre domaine. L’exemple suivant ajoute les paramètres du système de fichiers aux paramètres d’utilisateur par défaut :

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

    Cet exemple transmet la configuration du système de fichiers sous forme de fichier JSON, comme indiqué dans un exemple ultérieur.

Pour ajouter un système de fichiers accessible uniquement à un utilisateur individuel
  • Mettez à jour le profil utilisateur de cet utilisateur. L’exemple suivant ajoute les paramètres du système de fichiers à un profil utilisateur :

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

    Cet exemple transmet la configuration du système de fichiers sous forme de fichier JSON, comme indiqué dans l’exemple suivant.

Exemple fichier de paramètres du système de fichiers

Le fichier des exemples précédents, file-system-settings.json, possède les paramètres suivants :

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

Cet exemple de configuration possède les clés suivantes :

CustomFileSystemConfigs

Paramètres pour les systèmes de fichiers personnalisés (seuls les systèmes de fichiers Amazon EFS sont pris en charge).

FSxLustreFileSystemConfig

Paramètres des systèmes de fichiers FSx pour Lustre personnalisés.

FileSystemId

ID de votre système de fichiers Amazon EFS.

FileSystemPath

Le chemin d’accès au répertoire du système de fichiers accessible aux utilisateurs du domaine dans leurs espaces dans Studio. Les utilisateurs autorisés ne peuvent accéder qu’à ce répertoire et aux répertoires ci-dessous. Le chemin par défaut est la racine du système de fichiers : /.

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

Cet exemple de configuration possède les clés suivantes :

CustomFileSystemConfigs

Paramètres pour les systèmes de fichiers personnalisés (seuls les systèmes de fichiers Amazon EFS sont pris en charge).

EFSFileSystemConfig

Paramètres des systèmes de fichiers Amazon EFS personnalisés.

FileSystemId

ID de votre système de fichiers Amazon EFS.

FileSystemPath

Le chemin d’accès au répertoire du système de fichiers accessible aux utilisateurs du domaine dans leurs espaces dans Studio. Les utilisateurs autorisés ne peuvent accéder qu’à ce répertoire et aux répertoires ci-dessous. Le chemin par défaut est la racine du système de fichiers : /.

Lorsque vous attribuez un système de fichiers aux paramètres d’espace par défaut d’un domaine, vous devez également inclure le rôle d’exécution dans les paramètres :

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

Cet exemple de configuration possède la clé suivante :

ExecutionRole

Rôle d’exécution par défaut pour les utilisateurs du domaine.

Si vous souhaitez appliquer des autorisations POSIX à votre système de fichiers, vous pouvez également transmettre les paramètres suivants aux commandes create-domain et create-user-profile :

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

Cet exemple de configuration possède les clés suivantes :

CustomPosixUserConfig

Identités POSIX par défaut utilisées pour les opérations du système de fichiers. Vous pouvez utiliser ces paramètres pour appliquer votre structure d’autorisation POSIX existante aux profils utilisateur qui accèdent au système de fichiers personnalisé. Au niveau des autorisations POSIX, vous pouvez contrôler quels utilisateurs peuvent accéder au système de fichiers, et à quels fichiers ou données ils peuvent accéder.

Vous pouvez également appliquer les paramètres CustomPosixUserConfig lorsque vous créez un profil utilisateur à l’aide de la commande create-user-profile. Les paramètres que vous appliquez à un profil utilisateur remplacent ceux que vous appliquez au domaine associé.

Note

Vous pouvez appliquer les paramètres CustomPosixUserConfig lorsque vous utilisez les commandes create-domain et create-user-profile. Toutefois, vous ne pouvez pas appliquer ces paramètres lorsque vous effectuez les opérations suivantes :

  • Vous utilisez la commande update-domain pour un domaine déjà associé à un ou plusieurs profils utilisateur. Vous pouvez appliquer ces paramètres uniquement aux domaines sans profil utilisateur.

  • Utilisez la commande update-user-profile. Pour appliquer ces paramètres au profil que vous avez déjà créé, supprimez le profil et créez-en un nouveau avec les paramètres mis à jour.

Uid

L’ID utilisateur POSIX. La valeur par défaut est 200001.

Gid

L’ID du groupe POSIX. La valeur par défaut est 1001.

Attachement d’un système de fichiers personnalisé à un espace à l’aide de l’AWS CLI

Après avoir ajouté un système de fichiers personnalisé à un domaine, les utilisateurs du domaine peuvent attacher le système de fichiers aux espaces qu’ils créent. Par exemple, ils peuvent attacher le système de fichiers lorsqu’ils utilisent Studio ou la commande create-space avec l’AWS CLI.

Pour attacher un système de fichiers personnalisé à un espace
  • Ajoutez la configuration du système de fichiers aux paramètres d’espace. L’exemple de commande suivant attache un système de fichiers à un nouvel espace.

    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

    Dans cet exemple, le fichier space-settings.json possède les paramètres suivants, qui incluent la configuration CustomFileSystems avec la clé 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 crée un lien symbolique au chemin suivant : /home/sagemaker-user/custom-file-systems/file-system-type/file-system-id. Ainsi, les utilisateurs du domaine peuvent accéder au système de fichiers personnalisé à partir de leur répertoire personnel, /home/sagemaker-user.