Skip to main content
NetApp Solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Parte 1 - integração do Amazon FSX for NetApp ONTAP (FSX ONTAP) como um bucket privado do S3 no AWS SageMaker

Colaboradores

Esta seção fornece um guia sobre como configurar o FSX ONTAP como um bucket privado do S3 usando o AWS SageMaker.

Autor(es): Jian Jian (Ken), cientista Sênior de dados e aplicado, NetApp

Introdução

Usando o SageMaker como exemplo, esta página fornece orientação sobre como configurar o FSX ONTAP como um bucket privado do S3.

Para obter mais informações sobre o FSX ONTAP, dê uma olhada nesta apresentação ("Link de vídeo")

Manual do utilizador

Criação do servidor

Crie uma instância do SageMaker notebook

  1. Abra o console da AWS. No painel de pesquisa, procure o SageMaker e clique no serviço Amazon SageMaker.

    Abra o console da AWS

  2. Abra instâncias do notebook na guia notebook, clique no botão laranja criar instância do notebook.

    Console de instância de notebook do AWS SageMaker

  3. Na página de criação, digite o nome da instância do notebook expanda o painel rede deixe outras entradas padrão e selecione VPC, Subnet e Grupo(s) de segurança. (Este VPC e sub-rede serão usados para criar o sistema de arquivos FSX ONTAP mais tarde) clique no botão laranja criar instância de notebook no canto inferior direito.

    Criar instância de bloco de anotações

Crie um sistema de arquivos FSX ONTAP

  1. Abra o console da AWS. No painel de pesquisa, pesquise no FSX e clique no serviço FSX.

    Painel FSX

  2. Clique em Create file system.

    Criar sistema de arquivos

  3. Selecione o primeiro cartão FSX ONTAP e clique em Avançar.

    Selecione o tipo de sistema de ficheiros

  4. Na página de configuração de detalhes.

    1. Selecione a opção Standard Create.

      Criar painel do sistema de arquivos

    2. Introduza o Nome do sistema de ficheiros e a capacidade de armazenamento SSD.

      Especifique os detalhes do sistema de arquivos

    3. Certifique-se de usar a VPC e a sub-rede iguais à instância SageMaker notebook.

      Configuração de segurança  rede

    4. Digite o nome Storage Virtual Machine e Especifique uma senha para a sua SVM (Storage Virtual Machine).

      Configuração padrão da máquina virtual de armazenamento

    5. Deixe outras entradas padrão e clique no botão laranja Next no canto inferior direito.

      Confirme a configuração

    6. Clique no botão laranja Create file system no canto inferior direito da página de revisão.

      Revise a configuração e confirme a criação

  5. Pode demorar cerca de 20-40 minutos para ativar o sistema de arquivos FSX.

    Inspecione o console FSX

Configuração do servidor

Configuração ONTAP

  1. Abra o sistema de arquivos FSX criado. Certifique-se de que o status é disponível.

    Aguarde a criação do backend

  2. Selecione a guia Administração e mantenha o endpoint de gerenciamento - endereço IP e Nome de usuário do administrador do ONTAP.

    Console de detalhes do sistema de arquivos

  3. Abra a instância criada do SageMaker notebook e clique em abrir o JupyterLab.

    Console de instância do AWS SageMaker notebook

  4. Na página do Jupyter Lab, abra um novo Terminal.

    Página de boas-vindas do Jupyter Lab

  5. Digite o comando ssh ssh ONTAP para fazer login no sistema de arquivos FSX ONTAP. (O nome de usuário e o endereço IP são recuperados a partir da etapa 2) Use a senha usada ao criar a máquina virtual Storage.

    Terminal Jupyter Lab

  6. Execute os comandos na seguinte ordem. Usamos fsxn-ONTAP como o nome do bucket do FSX ONTAP private S3. Use o nome da máquina virtual de armazenamento para o 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

    Saída do terminal Jupyter Lab

  7. Execute os comandos abaixo para recuperar o IP do endpoint e as credenciais do 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. Mantenha o IP e a credencial do endpoint para uso futuro.

    Terminal Jupyter Lab

Configuração do cliente

  1. Na instância do SageMaker notebook, crie um novo notebook Jupyter.

    Abra um novo notebook Jupyter

  2. Use o código abaixo como uma solução alternativa para carregar arquivos para o bucket privado do FSX ONTAP S3. Para um exemplo de código abrangente, consulte este caderno. "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']

Isso conclui a integração entre o FSX ONTAP e a instância do SageMaker.

Lista de verificação de depuração útil

  • Verifique se a instância do SageMaker notebook e o sistema de arquivos FSX ONTAP estão na mesma VPC.

  • Lembre-se de executar o comando set dev no ONTAP para definir o nível de privilégio como dev.

FAQ (a partir de 27 de setembro de 2023)

P: Por que estou recebendo o erro "ocorreu um erro (NotImplementado) ao chamar a operação CreateMultipartUpload: O comando S3 que você solicitou não foi implementado" ao carregar arquivos para o FSX ONTAP?

R: Como um bucket privado do S3, o FSX ONTAP suporta o upload de arquivos até 100MBMB. Ao usar o protocolo S3, os arquivos maiores que 100MB são divididos em 100MB blocos, e a função 'CreateMultipartUpload' é chamada. No entanto, a implementação atual do FSX ONTAP private S3 não suporta esta função.

P: Por que estou recebendo o erro "ocorreu um erro (AccessDenied) ao chamar as operações PutObject: Access denied" ao carregar arquivos para o FSX ONTAP?

R: Para acessar o bucket privado do FSX ONTAP S3 de uma instância do SageMaker notebook, troque as credenciais da AWS para as credenciais do FSX ONTAP. No entanto, conceder permissão de gravação à instância requer uma solução alternativa que envolve a montagem do bucket e a execução do comando shell 'chmod' para alterar as permissões.

P: Como posso integrar o bucket privado do FSX ONTAP S3 com outros serviços do SAGEMAKER ML?

R: Infelizmente, o SDK de serviços do SageMaker não fornece uma maneira de especificar o endpoint para o bucket privado do S3. Como resultado, o FSX ONTAP S3 não é compatível com os serviços do SageMaker, como o Gerenciador de dados do SageMaker, o SageMaker clarify, o SageMaker Glue, o Gerenciador de tarefas, o Gerenciador de tarefas, o AutoML e outros.