1 parte: Integración de Amazon FSx para NetApp ONTAP (FSx ONTAP) como bloque de S3 privado en AWS SageMaker
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
-
Abra la consola de AWS. En el panel de búsqueda, busque en SageMaker y haga clic en el servicio Amazon SageMaker.
-
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 *.
-
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 un sistema de archivos FSX ONTAP
-
Abra la consola de AWS. En el panel de búsqueda, busca FSX y haz clic en el servicio FSX.
-
Haga clic en Crear sistema de archivos.
-
Seleccione la primera tarjeta FSX ONTAP y haga clic en Siguiente.
-
En la página de configuración de detalles.
-
Seleccione la opción Standard create.
-
Introduzca el Nombre del sistema de archivos y la Capacidad de almacenamiento SSD.
-
Asegúrese de usar VPC y subnet igual a la instancia SageMaker Notebook.
-
Introduzca el nombre de la máquina virtual Storage y especifique una contraseña para su SVM (máquina virtual de almacenamiento).
-
Deja otras entradas predeterminadas y haz clic en el botón naranja Siguiente en la parte inferior derecha.
-
Haga clic en el botón naranja Crear sistema de archivos en la parte inferior derecha de la página de revisión.
-
-
Puede tardar unos 20-40 minutos en activar el sistema de archivos FSX.
Configuración del servidor
Configuración de ONTAP
-
Abra el sistema de archivos FSX creado. Por favor, asegúrese de que el estado es disponible.
-
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.
-
Abra la instancia creada de SageMaker Notebook y haga clic en Abrir JupyterLab.
-
En la página Jupyter Lab, abre un nuevo Terminal.
-
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.
-
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
-
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
-
Conserve la IP del extremo y las credenciales para usarlo en el futuro.
Configuración del cliente
-
En la instancia de SageMaker Notebook, cree un nuevo cuaderno Jupyter.
-
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.