Partie 1 - Intégration Amazon FSx for NetApp ONTAP (FSx ONTAP) en tant que compartiment S3 privé dans AWS SageMaker
Cette section fournit un guide sur la configuration de FSx ONTAP en tant que bucket S3 privé à l'aide d'AWS SageMaker.
Introduction
En utilisant SageMaker comme exemple, cette page fournit des conseils sur la configuration de FSx ONTAP en tant que bucket S3 privé.
Pour plus d'informations sur FSx ONTAP, veuillez consulter cette présentation ("Lien vidéo" )
Guide de l'utilisateur
Création de serveur
Créer une instance de bloc-notes SageMaker
-
Ouvrez la console AWS. Dans le panneau de recherche, recherchez SageMaker et cliquez sur le service Amazon SageMaker.
-
Ouvrez les Instances de bloc-notes sous l'onglet Bloc-notes, cliquez sur le bouton orange Créer une instance de bloc-notes.
-
Dans la page de création, saisissez le Nom de l'instance du notebook. Développez le panneau Réseau. Laissez les autres entrées par défaut et sélectionnez un VPC, un Sous-réseau et un ou plusieurs Groupes de sécurité. (Ce VPC et Sous-réseau seront utilisés pour créer ultérieurement le système de fichiers FSx ONTAP ) Cliquez sur le bouton orange Créer une instance de notebook en bas à droite.
Créer un système de fichiers FSx ONTAP
-
Ouvrez la console AWS. Dans le panneau de recherche, recherchez Fsx et cliquez sur le service FSx.
-
Cliquez sur Créer un système de fichiers.
-
Sélectionnez la première carte FSx ONTAP et cliquez sur Suivant.
-
Dans la page de configuration des détails.
-
Sélectionnez l'option Création standard.
-
Saisissez le Nom du système de fichiers et la Capacité de stockage SSD.
-
Assurez-vous d'utiliser le VPC et le sous-réseau identiques à l'instance SageMaker Notebook.
-
Saisissez le nom de la machine virtuelle de stockage et Spécifiez un mot de passe pour votre SVM (machine virtuelle de stockage).
-
Laissez les autres entrées par défaut et cliquez sur le bouton orange Suivant en bas à droite.
-
Cliquez sur le bouton orange Créer un système de fichiers en bas à droite de la page de révision.
-
-
Le démarrage du système de fichiers FSx peut prendre environ 20 à 40 minutes.
Configuration du serveur
Configuration ONTAP
-
Ouvrez le système de fichiers FSx créé. Veuillez vous assurer que le statut est Disponible.
-
Sélectionnez l'onglet Administration et conservez le Point de terminaison de gestion - Adresse IP et le *Nom d'utilisateur de l'administrateur ONTAP *.
-
Ouvrez l'instance SageMaker Notebook créée et cliquez sur Ouvrir JupyterLab.
-
Dans la page Jupyter Lab, ouvrez un nouveau Terminal.
-
Entrez la commande ssh ssh <nom d'utilisateur administrateur>@<IP du serveur ONTAP > pour vous connecter au système de fichiers FSx ONTAP . (Le nom d'utilisateur et l'adresse IP sont récupérés à l'étape 2) Veuillez utiliser le mot de passe utilisé lors de la création de la machine virtuelle de stockage.
-
Exécutez les commandes dans l’ordre suivant. Nous utilisons fsxn-ontap comme nom pour le nom du bucket S3 privé FSx ONTAP *. Veuillez utiliser le *nom de la machine virtuelle de stockage pour l'argument -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
-
Exécutez les commandes ci-dessous pour récupérer l'adresse IP et les informations d'identification du point de terminaison pour FSx ONTAP privé S3.
network interface show -vserver fsxn-svm-demo -lif nfs_smb_management_1 set adv vserver object-store-server user show
-
Conservez l’adresse IP et les informations d’identification du point de terminaison pour une utilisation ultérieure.
Configuration du client
-
Dans l’instance SageMaker Notebook, créez un nouveau notebook Jupyter.
-
Utilisez le code ci-dessous comme solution de contournement pour télécharger des fichiers vers le bucket S3 privé FSx ONTAP . Pour un exemple de code complet, veuillez vous référer à ce bloc-notes."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']
Ceci conclut l'intégration entre FSx ONTAP et l'instance SageMaker.
Liste de contrôle de débogage utile
-
Assurez-vous que l’instance SageMaker Notebook et le système de fichiers FSx ONTAP se trouvent dans le même VPC.
-
N'oubliez pas d'exécuter la commande set dev sur ONTAP pour définir le niveau de privilège sur dev.
FAQ (au 27 septembre 2023)
Q : Pourquoi est-ce que j'obtiens l'erreur « Une erreur s'est produite (NotImplemented) lors de l'appel de l'opération CreateMultipartUpload : la commande s3 que vous avez demandée n'est pas implémentée » lors du téléchargement de fichiers vers FSx ONTAP?
R : En tant que bucket S3 privé, FSx ONTAP prend en charge le téléchargement de fichiers jusqu'à 100 Mo. Lors de l'utilisation du protocole S3, les fichiers de plus de 100 Mo sont divisés en morceaux de 100 Mo et la fonction « CreateMultipartUpload » est appelée. Cependant, l'implémentation actuelle de FSx ONTAP private S3 ne prend pas en charge cette fonction.
Q : Pourquoi est-ce que j'obtiens l'erreur « Une erreur s'est produite (AccessDenied) lors de l'appel des opérations PutObject : Accès refusé » lors du téléchargement de fichiers vers FSx ONTAP?
R : Pour accéder au compartiment S3 privé FSx ONTAP à partir d'une instance SageMaker Notebook, remplacez les informations d'identification AWS par les informations d'identification FSx ONTAP . Cependant, l'octroi d'une autorisation d'écriture à l'instance nécessite une solution de contournement qui implique le montage du bucket et l'exécution de la commande shell « chmod » pour modifier les autorisations.
Q : Comment puis-je intégrer le bucket S3 privé FSx ONTAP avec d’autres services SageMaker ML ?
R : Malheureusement, le SDK des services SageMaker ne fournit pas de moyen de spécifier le point de terminaison du bucket S3 privé. Par conséquent, FSx ONTAP S3 n'est pas compatible avec les services SageMaker tels que Sagemaker Data Wrangler, Sagemaker Clarify, Sagemaker Glue, Sagemaker Athena, Sagemaker AutoML et autres.