Configurar o Neptune ML sem usar o modelo de início rápido do AWS CloudFormation - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar o Neptune ML sem usar o modelo de início rápido do AWS CloudFormation

1. Começar com um cluster de banco de dados do Neptune funcional

Se você não usar o modelo de início rápido do AWS CloudFormation para configurar o Neptune ML, precisará de um cluster de banco de dados do Neptune existente com o qual trabalhar. Se quiser, poderá usar um existente, clonar um que você já esteja usando ou criar outro (consulte Criar um cluster de banco de dados).

2. Instalar o serviço Neptune-Export

Se você ainda não o fez, instale o serviço Neptune Export, conforme explicado em Usar o serviço Neptune-Export para exportar dados do Neptune.

Adicione uma regra de entrada ao grupo de segurança NeptuneExportSecurityGroup criado pela instalação, com as seguintes configurações:

  • Digite: Custom TCP

  • Protocolo: TCP

  • Intervalo de portas: 80 - 443

  • Fonte: (ID do grupo de segurança do cluster de banco de dados do Neptune)

3. Criar um perfil do IAM NeptuneLoadFromS3 personalizado

Se você ainda não o fez, crie um perfil do IAM NeptuneLoadFromS3 personalizado, conforme explicado em Criar um perfil do IAM para acessar o Amazon S3.

Criar um perfil NeptuneSageMakerIAMRole personalizado

Use o console do IAM para criar um NeptuneSageMakerIAMRole personalizado, usando a seguinte política:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/*" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com" ] } }, "Effect": "Allow" }, { "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:*:*:key/*", "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/*" ], "Effect": "Allow" }, { "Action": [ "sagemaker:AddTags", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeHyperParameterTuningJob", "sagemaker:DescribeModel", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:ListTrainingJobsForHyperParameterTuningJob", "sagemaker:StopHyperParameterTuningJob", "sagemaker:StopProcessingJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob", "sagemaker:UpdateEndpoint", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": [ "arn:aws:sagemaker:*:*:*" ], "Effect": "Allow" }, { "Action": [ "sagemaker:ListEndpointConfigs", "sagemaker:ListEndpoints", "sagemaker:ListHyperParameterTuningJobs", "sagemaker:ListModels", "sagemaker:ListProcessingJobs", "sagemaker:ListTrainingJobs", "sagemaker:ListTransformJobs" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*" ], "Effect": "Allow" } ] }

Ao criar esse perfil, edite o relacionamento de confiança da seguinte forma:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com", "rds.amazonaws.com", "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Por fim, copie o ARN atribuído a esse novo perfil NeptuneSageMakerIAMRole.

Importante
  • Garanta que as permissões do Amazon S3 no NeptuneSageMakerIAMRole correspondam às indicadas acima.

  • O ARN universal, arn:aws:s3:::*, é usado para o recurso do Amazon S3 na política acima. Se, por algum motivo, o ARN universal não puder ser usado, o arn:aws:s3:::graphlytics* e o ARN de qualquer outro recurso do Amazon S3 do cliente que os comandos do NeptuneML usarão deverá ser adicionado à seção de recursos.

Configurar o cluster de banco de dados do para habilitar o Neptune ML

Como configurar o cluster de banco de dados do Neptune ML
  1. No console do Neptune, acesse Grupos de parâmetros e, depois, o grupo de parâmetros do cluster de banco de dados associado ao cluster de banco de dados que você usará. Defina o parâmetro neptune_ml_iam_role como o ARN atribuído ao perfil NeptuneSageMakerIAMRole que você acabou de criar.

  2. Navegue até Bancos de dados e, depois, selecione o cluster de banco de dados que você usará para o Neptune ML. Selecione Ações e, depois, Gerenciar perfis do IAM.

  3. Na página Gerenciar perfis do IAM, selecione Adicionar perfil e adicione o NeptuneSageMakerIAMRole. Depois, adicione o perfil NeptuneLoadFromS3.

  4. Reinicialize a instância de gravador do cluster de banco de dados.

Criar dois endpoints do SageMaker na VPC do Neptune

Por fim, para permitir que o mecanismo do Neptune acesse as APIs de gerenciamento necessárias do SageMaker, é necessário criar dois endpoints do SageMaker na VPC do Neptune, conforme explicado em Criar dois endpoints para o SageMaker na VPC do Neptune.

Configurar manualmente um bloco de anotações Neptune para o Neptune ML

Os blocos de anotações SageMaker no Neptune vêm pré-carregados com uma série de exemplos de bloco de anotações para o Neptune ML. É possível visualizar esses exemplos no repositório do GitHub de blocos de anotações de grafos de código aberto.

É possível usar um dos blocos de anotações Neptune existentes ou, se quiser, criar um de sua preferência, seguindo as instruções em Usar a bancada de trabalho do Neptune para hospedar blocos de anotações Neptune.

Você também pode configurar um bloco de anotações Neptune padrão para uso com o Neptune ML seguindo estas etapas:

Modificar um bloco de anotações para o Neptune ML
  1. Abra o console do Amazon SageMaker em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação à esquerda, selecione Bloco de anotações e, depois, Instâncias do bloco de anotações. Procure o nome do bloco de anotações Neptune que você gostaria de usar para o Neptune ML e selecione-o para acessar a página de detalhes.

  3. Se a instância do bloco de anotações estiver em execução, selecione o botão Interromper, no canto superior direito da página de detalhes do bloco de anotações.

  4. Nas Configurações da instância do bloco de anotações, em Configuração do ciclo de vida, selecione o link para abrir a página do ciclo de vida do bloco de anotações.

  5. Selecione Editar no canto superior direito e, depois, Continuar.

  6. Na guia Iniciar bloco de anotações, modifique o script para incluir comandos de exportação adicionais e preencher os campos do perfil do IAM do Neptune ML e o URI do serviço de exportação, algo parecido com o seguinte, dependendo do shell:

    echo "export NEPTUNE_ML_ROLE_ARN=(your Neptune ML IAM role ARN)" >> ~/.bashrc echo "export NEPTUNE_EXPORT_API_URI=(your export service URI)" >> ~/.bashrc
  7. Selecione Atualizar.

  8. Volte para a página da instância do bloco de anotações. Em Permissões e criptografia, há um campo para o ARN do perfil do IAM. Selecione o link nesse campo para acessar o perfil do IAM com o qual essa instância de bloco de anotações é executada.

  9. Crie uma política em linha como esta:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Resource": "arn:aws:cloudwatch:[AWS_REGION]:[AWS_ACCOUNT_ID]:*", "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:logs:[AWS_REGION]:[AWS_ACCOUNT_ID]:*", "Effect": "Allow" }, { "Action": [ "s3:Put*", "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:[AWS_REGION]:[AWS_ACCOUNT_ID]:*/*", "Effect": "Allow" }, { "Action": [ "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DescribeModel", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint" ], "Resource": "arn:aws:sagemaker:[AWS_REGION]:[AWS_ACCOUNT_ID]:*/*", "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Resource": "[YOUR_NEPTUNE_ML_IAM_ROLE_ARN]"", "Effect": "Allow" } ] }
  10. Salve essa nova política e anexe-a ao perfil do IAM na etapa 8.

  11. Selecione Iniciar no canto superior direito da instância do bloco de anotações do SageMaker para iniciar a instância do bloco de anotações.