Skip to main content
NetApp Solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

1 parte: Integración de Amazon FSx para NetApp ONTAP (FSx ONTAP) como bloque de S3 privado en AWS SageMaker

Colaboradores

Esta sección proporciona una guía sobre la configuración de FSx ONTAP como un bucket S3 privado usando AWS SageMaker.

Autor(es):
Jian Jian (KEN), científico sénior de datos y aplicado, NetApp

Introducción

Usando SageMaker como ejemplo, esta página proporciona una guía para configurar FSx ONTAP como un bucket privado de S3.

Si quiere más información sobre FSx ONTAP, eche un vistazo a esta presentación ("Enlace de vídeo")

Guía del usuario

Creación de servidores

Cree una instancia de SageMaker Notebook

  1. Abra la consola de AWS. En el panel de búsqueda, busque en SageMaker y haga clic en el servicio Amazon SageMaker.

    Abra la consola de AWS

  2. Abra las instancias del bloc de notas * en la pestaña del bloc de notas, haga clic en el botón naranja * Crear instancia del bloc de notas *.

    Consola de instancia de AWS SageMaker Notebook

  3. En la página de creación, ingrese el Nombre de la instancia del bloc de notas Expanda el panel Red Deje otras entradas predeterminadas y seleccione un VPC, Subred y Grupo(s) de seguridad. (Este vPC y subred se utilizarán para crear el sistema de archivos FSX ONTAP más adelante) Haga clic en el botón naranja Crear instancia de bloc de notas en la parte inferior derecha.

    Crear instancia de bloc de notas

Crear un sistema de archivos FSX ONTAP

  1. Abra la consola de AWS. En el panel de búsqueda, busca FSX y haz clic en el servicio FSX.

    Panel FSX

  2. Haga clic en Crear sistema de archivos.

    Crear sistema de archivos

  3. Seleccione la primera tarjeta FSX ONTAP y haga clic en Siguiente.

    Seleccione el tipo de sistema de archivos

  4. En la página de configuración de detalles.

    1. Seleccione la opción Standard create.

      Panel Crear sistema de archivos

    2. Introduzca el Nombre del sistema de archivos y la Capacidad de almacenamiento SSD.

      Especifique los detalles del sistema de archivos

    3. Asegúrese de usar VPC y subnet igual a la instancia SageMaker Notebook.

      Configuración de seguridad de  de red

    4. Introduzca el nombre de la máquina virtual Storage y especifique una contraseña para su SVM (máquina virtual de almacenamiento).

      Configuración de máquina virtual de almacenamiento predeterminada

    5. Deja otras entradas predeterminadas y haz clic en el botón naranja Siguiente en la parte inferior derecha.

      Confirme la configuración

    6. Haga clic en el botón naranja Crear sistema de archivos en la parte inferior derecha de la página de revisión.

      Revise la configuración y confirme la creación

  5. Puede tardar unos 20-40 minutos en activar el sistema de archivos FSX.

    Inspeccione la consola FSX

Configuración del servidor

Configuración de ONTAP

  1. Abra el sistema de archivos FSX creado. Por favor, asegúrese de que el estado es disponible.

    Espere la creación del backend

  2. Seleccione la pestaña Administración y mantenga el Punto final de administración - dirección IP y el Nombre de usuario del administrador de ONTAP.

    Consola de detalles del sistema de archivos

  3. Abra la instancia creada de SageMaker Notebook y haga clic en Abrir JupyterLab.

    Consola de instancia de AWS SageMaker Notebook

  4. En la página Jupyter Lab, abre un nuevo Terminal.

    Página de bienvenida de Jupyter Lab

  5. Introduzca el comando ssh ssh <nombre de usuario admin>@<IP de servidor ONTAP> para iniciar sesión en el sistema de archivos FSx ONTAP. (El nombre de usuario y la dirección IP se recuperan del paso 2) Utilice la contraseña utilizada al crear la máquina virtual Storage.

    Terminal Jupyter Lab

  6. Ejecute los comandos en el siguiente orden. Utilizamos fsxn-ONTAP como nombre para el FSX ONTAP private S3 bucket name. Utilice el nombre de máquina virtual de almacenamiento para el argumento -Vserver.

    vserver object-store-server create -vserver fsxn-svm-demo -object-store-server fsx_s3 -is-http-enabled true -is-https-enabled false
    
    vserver object-store-server user create -vserver fsxn-svm-demo -user s3user
    
    vserver object-store-server group create -name s3group -users s3user -policies FullAccess
    
    vserver object-store-server bucket create fsxn-ontap -vserver fsxn-svm-demo -type nas -nas-path /vol1

    Salida de terminal Jupyter Lab

  7. Ejecute los siguientes comandos para recuperar la IP de punto final y las credenciales para FSX ONTAP private S3.

    network interface show -vserver fsxn-svm-demo -lif nfs_smb_management_1
    
    set adv
    
    vserver object-store-server user show
  8. Conserve la IP del extremo y las credenciales para usarlo en el futuro.

    Terminal Jupyter Lab

Configuración del cliente

  1. En la instancia de SageMaker Notebook, cree un nuevo cuaderno Jupyter.

    Abra un nuevo cuaderno Jupyter

  2. Utilice el siguiente código como solución de solución para cargar archivos en el cubo privado de S3 de FSx ONTAP. Para obtener un ejemplo de código completo, consulte este cuaderno. "fsxn_demo.ipynb"

    # Setup configurations
    # -------- Manual configurations --------
    seed: int = 77                                              # Random seed
    bucket_name: str = 'fsxn-ontap'                             # The bucket name in ONTAP
    aws_access_key_id = '<Your ONTAP bucket key id>'            # Please get this credential from ONTAP
    aws_secret_access_key = '<Your ONTAP bucket access key>'    # Please get this credential from ONTAP
    fsx_endpoint_ip: str = '<Your FSx ONTAP IP address>'        # Please get this IP address from FSx ONTAP
    # -------- Manual configurations --------
    
    # Workaround
    ## Permission patch
    !mkdir -p vol1
    !sudo mount -t nfs $fsx_endpoint_ip:/vol1 /home/ec2-user/SageMaker/vol1
    !sudo chmod 777 /home/ec2-user/SageMaker/vol1
    
    ## Authentication for FSx ONTAP as a Private S3 Bucket
    !aws configure set aws_access_key_id $aws_access_key_id
    !aws configure set aws_secret_access_key $aws_secret_access_key
    
    ## Upload file to the FSx ONTAP Private S3 Bucket
    %%capture
    local_file_path: str = <Your local file path>
    
    !aws s3 cp --endpoint-url http://$fsx_endpoint_ip /home/ec2-user/SageMaker/$local_file_path  s3://$bucket_name/$local_file_path
    
    # Read data from FSx ONTAP Private S3 bucket
    ## Initialize a s3 resource client
    import boto3
    
    # Get session info
    region_name = boto3.session.Session().region_name
    
    # Initialize Fsxn S3 bucket object
    # --- Start integrating SageMaker with FSXN ---
    # This is the only code change we need to incorporate SageMaker with FSXN
    s3_client: boto3.client = boto3.resource(
        's3',
        region_name=region_name,
        aws_access_key_id=aws_access_key_id,
        aws_secret_access_key=aws_secret_access_key,
        use_ssl=False,
        endpoint_url=f'http://{fsx_endpoint_ip}',
        config=boto3.session.Config(
            signature_version='s3v4',
            s3={'addressing_style': 'path'}
        )
    )
    # --- End integrating SageMaker with FSXN ---
    
    ## Read file byte content
    bucket = s3_client.Bucket(bucket_name)
    
    binary_data = bucket.Object(data.filename).get()['Body']

Esto concluye la integración entre FSX ONTAP y la instancia de SageMaker.

Lista de comprobación de depuración útil

  • Asegúrese de que la instancia del bloc de notas de SageMaker y el sistema de archivos de FSX ONTAP estén en la misma VPC.

  • Recuerde ejecutar el comando set dev en ONTAP para establecer el nivel de privilegio en dev.

Preguntas frecuentes (a partir del 27 de septiembre de 2023)

P: ¿Por qué recibo el error “Se ha producido un error (NotImplemented) al llamar a la operación CreateMultipartUpload: El comando S3 que solicitó no está implementado” al cargar archivos a FSX ONTAP?

R: Como depósito privado de S3, FSX ONTAP admite la carga de archivos de hasta 100MB GB. Cuando se utiliza el protocolo S3, los archivos de más de 100MB MB se dividen en 100MB fragmentos y se llama a la función 'CreateMultipartUpload'. Sin embargo, la implementación actual de FSX ONTAP PRIVATE S3 no admite esta función.

P: ¿Por qué recibo el error “Se ha producido un error (ACCESSDENIED) al llamar a las operaciones PutObject: Acceso denegado” al cargar archivos en FSX ONTAP?

R: Para acceder al bucket privado S3 de FSx ONTAP desde una instancia de bloc de notas de SageMaker, cambie las credenciales de AWS a las credenciales de FSx ONTAP. Sin embargo, otorgar permiso de escritura a la instancia requiere una solución provisional que implique montar el bucket y ejecutar el comando shell 'chmod' para cambiar los permisos.

P: ¿Cómo puedo integrar el cubo privado S3 de FSX ONTAP con otros servicios de SageMaker ML?

R: Desafortunadamente, el SDK de servicios de SageMaker no proporciona una forma de especificar el punto final para el cubo privado de S3. Como resultado, FSX ONTAP S3 no es compatible con los servicios de SageMaker como Sagemaker Data Wrangler, Sagemaker Clarify, Sagemaker Glue, Sagemaker Athena, Sagemaker AutoML y otros.