Adición de un sistema de archivos personalizado a un dominio - Amazon SageMaker AI

Adición de un sistema de archivos personalizado a un dominio

Al crear un dominio, Amazon SageMaker AI añade un volumen de Amazon Elastic File System (Amazon EFS) predeterminado al dominio. SageMaker AI crea este volumen en su nombre. También tiene la opción de añadir un sistema de archivos personalizado de Amazon EFS o de Amazon FSx para Lustre que haya creado usted. Tras añadirlo, el sistema de archivos estará disponible para los usuarios que pertenezcan a su dominio. Los usuarios pueden acceder al sistema de archivos cuando utilizan Amazon SageMaker Studio. Pueden asociar el sistema de archivos a los espacios que creen para las siguientes aplicaciones compatibles:

  • JupyterLab

  • Editor de código

Tras ejecutar un espacio e iniciar la aplicación, los usuarios pueden acceder a cualquier dato, código u otro artefacto que contenga el sistema de archivos.

Puede permitir a los usuarios acceder al sistema de archivos de las siguientes formas:

  • A través de espacios compartidos: cualquier usuario que pertenezca a su dominio puede crear un espacio compartido. Luego, puede usarlo cualquier usuario que pertenezca a su dominio.

  • A través de espacios privados: cualquier usuario que pertenezca a su dominio puede crear un espacio privado. En ese caso, solo lo podrá usar ese usuario.

  • Exclusivamente como usuario individual: si no desea que todos sus usuarios accedan al sistema de archivos, puede permitir que solo lo haga un usuario específico. Si lo hace, el sistema de archivos solo estará disponible en los espacios privados que cree ese usuario específico.

Puede añadir un sistema de archivos personalizado mediante la API de Amazon SageMaker, los AWS SDK o la AWS CLI. No puede añadir un sistema de archivos personalizado desde la consola de SageMaker AI.

Requisitos previos

Para poder añadir un sistema de archivos personalizado a un dominio, debe cumplir los siguientes requisitos:

  • Debe tener un dominio en SageMaker AI. Para añadir un sistema de archivos, necesita el ID de dominio. Puede buscar el ID desde la consola de SageMaker AI. También puede ejecutar el comando list-domains con la AWS CLI.

  • Debe tener un sistema de archivos de Amazon EFS o FSx para Lustre en su Cuenta de AWS.

    For Amazon EFS
    • Para conocer los pasos necesarios para crear un sistema de archivos de Amazon EFS, consulte Create your Amazon EFS file system en la Guía del usuario de Amazon Elastic File System.

    • Para que Studio pueda acceder al sistema de archivos, debe tener un destino de montaje en cada una de las subredes que asocie al dominio. Para obtener más información sobre la asignación de destinos de montaje a subredes, consulte Creating and managing mount targets and security groups en la Guía del usuario de Amazon Elastic File System.

    • Para cada destino de montaje, debe añadir el grupo de seguridad que Amazon SageMaker AI creó en su Cuenta de AWS al crear el dominio. El nombre del grupo de seguridad tiene el formato security-group-for-inbound-nfs-domain-id. Para obtener instrucciones acerca de cómo obtener el ID de dominio, consulte Visualización de dominios.

    • Sus permisos de IAM deben permitirle utilizar la acción elasticfilesystem:DescribeMountTargets. Para obtener más información sobre esta acción, consulte Actions, resources, and condition keys for Amazon Elastic File System en la Referencia de autorizaciones de servicios.

    For FSx for Lustre
    • Para conocer los pasos necesarios para crear un sistema de archivos de FSx para Lustre, consulte Getting with Amazon FSx for Lustre en la Guía del usuario de Amazon FSx para Lustre. Asegúrese de que el sistema de archivos de FSx para Lustre exista en:

      • la misma Amazon VPC que su dominio,

      • una de las subredes presentes en su dominio.

    • Para que Studio pueda acceder al sistema de archivos de FSx para Lustre, debe añadir el grupo de seguridad de su dominio a todas las interfaces de red elásticas (ENI) de su sistema de archivos de FSx para Lustre. Sin este paso, se producirá un error al crear la aplicación. Utilice las instrucciones siguientes para añadir el grupo de seguridad de dominio a las ENI de su sistema de archivos de FSx para Lustre.

      Adición del grupo de seguridad de dominio en las ENI del sistema de archivos de FSx para Lustre (consola)
      1. Vaya a la consola de Amazon FSx.

      2. Elija Sistemas de archivos.

      3. Elija su sistema de archivos de FSx para Lustre mediante el enlace correspondiente en ID del sistema de archivos.

      4. Si aún no la ha seleccionado, elija la pestaña Redes y seguridad.

      5. En Subred, elija Para ver todas las interfaces de red elásticas, consulte la consola de Amazon EC2. Esta acción le llevará a la consola de Amazon EC2 donde se mostrarán todas las ENI conectadas a su sistema de archivos de FSx para Lustre.

      6. Para cada ENI:

        1. Elija la ENI seleccionando el enlace correspondiente en ID de la interfaz de red.

        2. Elija Acciones en la parte superior derecha de la página de resumen para expandir el menú desplegable.

        3. En el menú desplegable, seleccione Elegir grupo de seguridad.

        4. Busque el grupo de seguridad de su dominio.

          El nombre del grupo de seguridad tiene el formato security-group-for-inbound-nfs-domain-id. Para obtener instrucciones acerca de cómo obtener el ID de dominio, consulte Visualización de dominios.

        5. Seleccione Agregar grupo de seguridad.

Adición de un sistema de archivos personalizado a un dominio con la AWS CLI

Para añadir un sistema de archivos personalizado a un dominio o perfil de usuario con la AWS CLI, pase una definición CustomFileSystemConfigs cuando utilice cualquiera de los siguientes comandos:

En los siguientes ejemplos, se muestra cómo añadir un sistema de archivos a un dominio o perfil de usuario existente.

Adición de un sistema de archivos al que se puede acceder en espacios compartidos
  • Actualice la configuración de espacio predeterminada de su dominio. En el siguiente ejemplo, se añade la configuración del sistema de archivos a la configuración de espacio predeterminada:

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

    En este ejemplo, se pasa la configuración del sistema de archivos como un archivo JSON, que se muestra en un ejemplo posterior.

Adición de un sistema de archivos al que se puede acceder en espacios privados
  • Actualice la configuración de usuario predeterminada de su dominio. En el siguiente ejemplo, se añade la configuración del sistema de archivos a la configuración de usuario predeterminada:

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

    En este ejemplo, se pasa la configuración del sistema de archivos como un archivo JSON, que se muestra en un ejemplo posterior.

Adición de un sistema de archivos al que solo puede acceder un usuario individual
  • Actualice el perfil del usuario. En el siguiente ejemplo, se añade la configuración del sistema de archivos a un perfil de usuario:

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

    En este ejemplo, se pasa la configuración del sistema de archivos como un archivo JSON, que se muestra en el siguiente ejemplo.

ejemplo archivo de configuración del sistema de archivos

El archivo de los ejemplos anteriores, file-system-settings.json, tiene la siguiente configuración:

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

Esta configuración de ejemplo tiene las siguientes claves:

CustomFileSystemConfigs

Configuración para sistemas de archivos personalizados (solo se admiten los sistemas de archivos de Amazon EFS).

FSxLustreFileSystemConfig

Configuración de sistemas de archivos de FSx para Lustre personalizados.

FileSystemId

El ID de su sistema de archivos de Amazon EFS.

FileSystemPath

La ruta al directorio del sistema de archivos al que pueden acceder los usuarios del dominio en sus espacios de Studio. Los usuarios autorizados solo pueden acceder a este directorio y a los que están por debajo. La ruta predeterminada es la raíz del sistema de archivos: /.

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

Esta configuración de ejemplo tiene las siguientes claves:

CustomFileSystemConfigs

Configuración para sistemas de archivos personalizados (solo se admiten los sistemas de archivos de Amazon EFS).

EFSFileSystemConfig

Configuración para sistemas de archivos de Amazon EFS.

FileSystemId

El ID de su sistema de archivos de Amazon EFS.

FileSystemPath

La ruta al directorio del sistema de archivos al que pueden acceder los usuarios del dominio en sus espacios de Studio. Los usuarios autorizados solo pueden acceder a este directorio y a los que están por debajo. La ruta predeterminada es la raíz del sistema de archivos: /.

Al asignar un sistema de archivos a la configuración de espacio predeterminada de un dominio, también debe incluir el rol de ejecución en la configuración:

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

Esta configuración de ejemplo tiene la siguiente clave:

ExecutionRole

El rol de ejecución predeterminado para los usuarios del dominio.

Si desea aplicar permisos de POSIX a su sistema de archivos, también puede pasar la siguiente configuración a los comandos create-domain o create-user-profile:

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

Esta configuración de ejemplo tiene las siguientes claves:

CustomPosixUserConfig

Las identidades de POSIX predeterminadas que se utilizan para las operaciones del sistema de archivos. Puede usar esta configuración para aplicar su estructura de permisos de POSIX existente a los perfiles de usuario que acceden al sistema de archivos personalizado. En lo que se refiere a los permisos de POSIX, puede controlar qué usuarios pueden acceder al sistema de archivos y a qué archivos o datos pueden acceder.

También puede aplicar la configuración CustomPosixUserConfig al crear un perfil de usuario mediante el comando create-user-profile. La configuración que se aplica a un perfil de usuario anula la que se aplica al dominio asociado.

nota

Puede aplicar la configuración CustomPosixUserConfig al utilizar los comandos create-domain y create-user-profile. Sin embargo, no puede aplicar esta configuración cuando:

  • Utiliza el comando update-domain para un dominio que ya esté asociado a un perfil de usuario. Puede aplicar esta configuración solo a los dominios que no tienen perfiles de usuario.

  • Utilice el comando update-user-profile. Para aplicar esta configuración a un perfil que ya ha creado, elimine el perfil y cree uno nuevo que tenga la configuración actualizada.

Uid

El ID de usuario de POSIX. El valor predeterminado es 200001.

Gid

El ID del grupo de POSIX. El valor predeterminado es 1001.

Asociación de un sistema de archivos personalizado a un espacio con la AWS CLI

Tras añadir un sistema de archivos personalizado a un dominio, los usuarios del dominio pueden asociar el sistema de archivos a los espacios que creen. Por ejemplo, pueden asociar el sistema de archivos cuando utilizan Studio o el comando create-space con la AWS CLI.

Asociación de un sistema de archivos personalizado a un espacio
  • Añada la configuración del sistema de archivos a la configuración del espacio. En el siguiente comando de ejemplo, se asocia un sistema de archivos a un espacio nuevo.

    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

    En este ejemplo, el archivo space-settings.json tiene los siguientes parámetros, que incluyen la configuración de CustomFileSystems con la clave 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 enlace simbólico en la siguiente ruta: /home/sagemaker-user/custom-file-systems/file-system-type/file-system-id. Con esto, los usuarios del dominio pueden navegar hasta el sistema de archivos personalizado desde su directorio principal, /home/sagemaker-user.