Parte 1 - Integrando o Amazon FSx for NetApp ONTAP (FSx ONTAP) como um bucket S3 privado no AWS SageMaker
Esta seção fornece um guia sobre como configurar o FSx ONTAP como um bucket S3 privado usando o AWS SageMaker.
Introdução
Usando o SageMaker como exemplo, esta página fornece orientação sobre como configurar o FSx ONTAP como um bucket S3 privado.
Para mais informações sobre o FSx ONTAP, consulte esta apresentação ("Link do vídeo" )
Guia do usuário
Criação de servidor
Criar uma instância do SageMaker Notebook
-
Abra o console da AWS. No painel de pesquisa, pesquise SageMaker e clique no serviço Amazon SageMaker.
-
Abra as Instâncias do Notebook na aba Notebook, clique no botão laranja Criar instância do notebook.
-
Na página de criação, insira o Nome da instância do Notebook. Expanda o painel Rede. Deixe as outras entradas padrão e selecione uma VPC, Sub-rede e Grupo(s) de segurança. (Esta VPC e Sub-rede serão usadas para criar o sistema de arquivos FSx ONTAP posteriormente) Clique no botão laranja Criar instância de notebook no canto inferior direito.
Crie um sistema de arquivos FSx ONTAP
-
Abra o console da AWS. No painel de pesquisa, pesquise Fsx e clique no serviço FSx.
-
Clique em Criar sistema de arquivos.
-
Selecione o primeiro cartão FSx ONTAP e clique em Avançar.
-
Na página de configuração de detalhes.
-
Selecione a opção Criação padrão.
-
Digite o Nome do sistema de arquivos e a Capacidade de armazenamento do SSD.
-
Certifique-se de usar a VPC e a sub-rede da mesma forma que a instância do SageMaker Notebook.
-
Digite o nome da máquina virtual de armazenamento e especifique uma senha para sua SVM (máquina virtual de armazenamento).
-
Deixe as outras entradas como padrão e clique no botão laranja Avançar no canto inferior direito.
-
Clique no botão laranja Criar sistema de arquivos no canto inferior direito da página de revisão.
-
-
Pode levar cerca de 20-40 minutos para iniciar o sistema de arquivos FSx.
Configuração do servidor
Configuração ONTAP
-
Abra o sistema de arquivos FSx criado. Certifique-se de que o status é Disponível.
-
Selecione a aba Administração e mantenha o Ponto de extremidade de gerenciamento - Endereço IP e o *Nome de usuário do administrador do ONTAP *.
-
Abra a instância do SageMaker Notebook criada e clique em Abrir JupyterLab.
-
Na página do Jupyter Lab, abra um novo Terminal.
-
Digite o comando ssh ssh <nome de usuário administrador>@< IP do servidor ONTAP > para efetuar login no sistema de arquivos FSx ONTAP . (O nome de usuário e o endereço IP são recuperados na etapa 2) Use a senha usada ao criar a Máquina virtual de armazenamento.
-
Execute os comandos na seguinte ordem. Usamos fsxn-ontap como nome para o nome do bucket S3 privado do FSx ONTAP *. 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
-
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
-
Guarde o IP do endpoint e a credencial para uso futuro.
Configuração do cliente
-
Na instância do SageMaker Notebook, crie um novo notebook Jupyter.
-
Use o código abaixo como uma solução alternativa para carregar arquivos no bucket S3 privado do FSx ONTAP . Para um exemplo de código abrangente, consulte este notebook."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
-
Certifique-se de que a instância do SageMaker Notebook e o sistema de arquivos FSx ONTAP estejam na mesma VPC.
-
Lembre-se de executar o comando set dev no ONTAP para definir o nível de privilégio como dev.
Perguntas frequentes (em 27 de setembro de 2023)
P: Por que estou recebendo o erro "Ocorreu um erro (NotImplemented) ao chamar a operação CreateMultipartUpload: O comando s3 que você solicitou não foi implementado" ao carregar arquivos no FSx ONTAP?
R: Como um bucket S3 privado, o FSx ONTAP suporta o upload de arquivos de até 100 MB. Ao usar o protocolo S3, arquivos maiores que 100 MB são divididos em pedaços de 100 MB, e a função 'CreateMultipartUpload' é chamada. Entretanto, 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: Acesso negado" ao carregar arquivos no FSx ONTAP?
R: Para acessar o bucket S3 privado do FSx ONTAP a partir 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 montar o bucket e executar o comando shell 'chmod' para alterar as permissões.
P: Como posso integrar o bucket S3 privado do FSx ONTAP com outros serviços do SageMaker ML?
R: Infelizmente, o SDK de serviços do SageMaker não fornece uma maneira de especificar o ponto de extremidade para o bucket privado do S3. Como resultado, o FSx ONTAP S3 não é compatível com serviços do SageMaker, como Sagemaker Data Wrangler, Sagemaker Clarify, Sagemaker Glue, Sagemaker Athena, Sagemaker AutoML e outros.