Skip to main content
NetApp Solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

1re partie : intégration d'Amazon FSX pour NetApp ONTAP (FSX ONTAP) en tant que compartiment S3 privé dans AWS SageMaker

Contributeurs

Cette section fournit un guide sur la configuration de FSX ONTAP en tant que compartiment S3 privé à l'aide d'AWS SageMaker.

Auteur(s):
Jian Jian (Ken), scientifique senior en données et applications, NetApp

Introduction

Utilisation de SageMaker à titre d'exemple, cette page fournit des conseils sur la configuration de FSX ONTAP en tant que compartiment S3 privé.

Pour plus d'informations sur FSX ONTAP, consultez cette présentation ("Lien vidéo")

Guide de l'utilisateur

Création du serveur

Créez une instance de bloc-notes SageMaker

  1. Ouvrez la console AWS. Dans le panneau de recherche, recherchez SageMaker et cliquez sur le service Amazon SageMaker.

    Ouvrez la console AWS

  2. Ouvrez Notebook instances sous l'onglet Notebook, cliquez sur le bouton orange Créer une instance de bloc-notes.

    Console d'instance d'ordinateur portable AWS SageMaker

  3. Dans la page de création, entrez le nom de l'instance Notebook développez le panneau Network et conservez les autres entrées par défaut et sélectionnez un groupe VPC, Subnet et Security Group(s). (Ce VPC et Subnet seront utilisés ultérieurement pour créer le système de fichiers FSX ONTAP) cliquez sur le bouton orange Créer une instance de bloc-notes en bas à droite.

    Créer une instance de bloc-notes

Créez un système de fichiers FSX ONTAP

  1. Ouvrez la console AWS. Dans le panneau de recherche, recherchez FSX et cliquez sur le service FSX.

    Panneau FSX

  2. Cliquez sur Créer un système de fichiers.

    Créer un système de fichiers

  3. Sélectionnez la première carte FSX ONTAP et cliquez sur Suivant.

    Sélectionnez le type de système de fichiers

  4. Dans la page de configuration détaillée.

    1. Sélectionnez l'option création standard.

      Panneau Créer un système de fichiers

    2. Entrez le Nom du système de fichiers et la capacité de stockage SSD.

      Spécifiez les détails du système de fichiers

    3. Assurez-vous d'utiliser le VPC et le subnet de la même manière que l'instance SageMaker Notebook.

      Réseau  configuration de la sécurité

    4. Entrer le nom Storage Virtual machine et spécifier un mot de passe pour votre SVM (Storage Virtual machine).

      Configuration par défaut de la machine virtuelle de stockage

    5. Laissez les autres entrées par défaut et cliquez sur le bouton orange Suivant en bas à droite.

      Confirmer la configuration

    6. Cliquez sur le bouton orange Créer un système de fichiers en bas à droite de la page de revue.

      Vérifiez la configuration et confirmez la création

  5. Le démarrage du système de fichiers FSX peut prendre environ 20-40 minutes.

    Inspectez la console FSX

Configuration du serveur

Configuration ONTAP

  1. Ouvrez le système de fichiers FSX créé. Veuillez vous assurer que l'état est disponible.

    Attendez la création du back-end

  2. Sélectionnez l'onglet Administration et conservez le noeud final de gestion - adresse IP et le nom d'utilisateur de l'administrateur ONTAP.

    Console de détails du système de fichiers

  3. Ouvrez l'instance SageMaker Notebook créée et cliquez sur Ouvrir JupyterLab.

    Console d'instance d'ordinateur portable AWS SageMaker

  4. Dans la page Jupyter Lab, ouvrez un nouveau terminal.

    Page d'accueil de Jupyter Lab

  5. Entrez la commande ssh ssh <nom d'utilisateur admin>@<adresse IP du serveur ONTAP> pour vous connecter au système de fichiers FSX ONTAP. (Le nom d'utilisateur et l'adresse IP sont extraits de l'étape 2) Veuillez utiliser le mot de passe utilisé lors de la création de la machine virtuelle de stockage.

    Terminal Jupyter Lab

  6. Exécutez les commandes dans l'ordre suivant. Nous utilisons fsxn-ONTAP comme nom du compartiment privé FSX ONTAP S3. 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

    Sortie terminal Jupyter Lab

  7. Exécutez les commandes ci-dessous pour récupérer l'adresse IP du terminal et les informations d'identification du serveur privé FSX ONTAP S3.

    network interface show -vserver fsxn-svm-demo -lif nfs_smb_management_1
    
    set adv
    
    vserver object-store-server user show
  8. Conservez l'adresse IP et les informations d'identification du point de terminaison pour une utilisation ultérieure.

    Terminal Jupyter Lab

Configuration du client

  1. Dans l'instance de SageMaker Notebook, créez un nouveau bloc-notes Jupyter.

    Ouvrez un nouveau bloc-notes Jupyter

  2. Le code ci-dessous constitue une solution adaptée pour télécharger des fichiers vers un compartiment S3 privé FSX ONTAP. Pour obtenir un exemple de code complet, reportez-vous à cet ordinateur portable. "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

  • Vérifiez que l'instance de l'ordinateur portable SageMaker et le système de fichiers FSX ONTAP sont 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 reçois-je l'erreur "une erreur s'est produite (NotImplemented) lors de l'appel de l'opération CreateMultipartUpload : la commande s3 demandée n'est pas implémentée" lors du téléchargement de fichiers vers FSX ONTAP ?

R : en tant que compartiment 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 blocs de 100 Mo et la fonction 'CreateMultipartUpload' est appelée. Toutefois, la mise en œuvre actuelle de FSX ONTAP S3 privé ne prend pas en charge cette fonction.

Q: Pourquoi reçois-je l'erreur "une erreur s'est produite (AccessDenied) lors de l'appel des opérations PutObject: Access denied" lors du téléchargement de fichiers vers FSX ONTAP?

R : pour accéder au compartiment S3 privé FSX ONTAP à partir d'une instance d'ordinateur portable SageMaker, basculez les informations d'identification AWS vers 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 compartiment et l'exécution de la commande shell 'chmod' pour modifier les autorisations.

Q : Comment puis-je intégrer le compartiment S3 privé FSX ONTAP avec d'autres services de ML SageMaker ?

R: Malheureusement, le SDK des services SageMaker ne permet pas de spécifier le noeud final pour le compartiment 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.