Usar a AWS CLI para configurar o Neptune ML em um cluster de banco de dados - 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á.

Usar a AWS CLI para configurar o Neptune ML em um cluster de banco de dados

Além do modelo de início rápido do AWS CloudFormation e do AWS Management Console, também é possível configurar o Neptune ML usando a AWS CLI.

1. Criar um grupo de parâmetros de cluster de banco de dados para o novo cluster do Neptune ML

Os seguintes comandos AWS CLI criam um grupo de parâmetros do cluster de banco de dados e o configuram para funcionar com o Neptune ML:

Como criar e configurar um grupo de parâmetros de cluster de banco de dados para o Neptune ML
  1. Crie um grupo de parâmetros de cluster de banco de dados:

    aws neptune create-db-cluster-parameter-group \ --db-cluster-parameter-group-name (name of the new DB cluster parameter group) \ --db-parameter-group-family neptune1 --description "(description of your machine learning project)" \ --region (AWS region, such as us-east-1)
  2. Crie um parâmetro de cluster de banco de dados neptune_ml_iam_role definido como o ARN do SageMakerExcecutionIAMRole para o cluster de banco de dados usar ao chamar o SageMaker para criar trabalhos e obter previsões de modelos de ML hospedados:

    aws neptune modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name (name of the new DB cluster parameter group) \ --parameters "ParameterName=neptune_ml_iam_role, \ ParameterValue=ARN of the SageMakerExcecutionIAMRole, \ Description=NeptuneMLRole, \ ApplyMethod=pending-reboot" \ --region (AWS region, such as us-east-1)

    Definir esse parâmetro permite ao Neptune acessar o SageMaker sem precisar transmitir o perfil com cada chamada.

    Para obter informações sobre como criar o SageMakerExcecutionIAMRole, consulte Criar um perfil NeptuneSageMakerIAMRole personalizado.

  3. Por fim, use describe-db-cluster-parameters para conferir se todos os parâmetros no novo grupo de parâmetros do cluster de banco de dados estão definidos da forma desejada:

    aws neptune describe-db-cluster-parameters \ --db-cluster-parameter-group-name (name of the new DB cluster parameter group) \ --region (AWS region, such as us-east-1)

Anexar o novo grupo de parâmetros de cluster de banco de dados ao cluster de banco de dados a ser usado com o Neptune ML

Agora é possível anexar o novo grupo de parâmetros do cluster de banco de dados que você acabou de criar a um cluster de banco de dados existente usando o seguinte comando:

aws neptune modify-db-cluster \ --db-cluster-identifier (the name of your existing DB cluster) \ --apply-immediately --db-cluster-parameter-group-name (name of your new DB cluster parameter group) \ --region (AWS region, such as us-east-1)

Para tornar todos os parâmetros efetivos, você pode então reinicializar o cluster de banco de dados:

aws neptune reboot-db-instance --db-instance-identifier (name of the primary instance of your DB cluster) \ --profile (name of your AWS profile to use) \ --region (AWS region, such as us-east-1)

Ou, se estiver criando um cluster de banco de dados para usar com o Neptune ML, você poderá usar o seguinte comando para criar o cluster com o novo grupo de parâmetros anexado e, depois, criar uma instância principal (de gravador):

cluster-name=(the name of the new DB cluster) aws neptune create-db-cluster --db-cluster-identifier ${cluster-name} --engine graphdb \ --engine-version 1.0.4.1 \ --db-cluster-parameter-group-name (name of your new DB cluster parameter group) \ --db-subnet-group-name (name of the subnet to use) \ --region (AWS region, such as us-east-1) aws neptune create-db-instance --db-cluster-identifier ${cluster-name} --db-instance-identifier ${cluster-name}-i \ --db-instance-class (the instance class to use, such as db.r5.xlarge) --engine graphdb \ --region (AWS region, such as us-east-1)

Anexar o NeptuneSageMakerIAMRole ao cluster de banco de dados para que ele possa acessar os recursos do SageMaker e do Amazon S3.

Por fim, siga as instruções em Criar um perfil NeptuneSageMakerIAMRole personalizado para criar um perfil do IAM que permitirá ao cluster de banco de dados se comunicar com o SageMaker e o Amazon S3. Depois, use o seguinte comando para anexar o perfil NeptuneSageMakerIAMRole que você criou ao cluster de banco de dados:

aws neptune add-role-to-db-cluster --db-cluster-identifier ${cluster-name} --role-arn arn:aws:iam::(the ARN number of the role's ARN):role/NeptuneMLRole \ --region (AWS region, such as us-east-1)

Criar dois endpoints para o SageMaker na VPC do Neptune

O Neptune ML precisa de dois endpoints do SageMaker na VPC do cluster de banco de dados do Neptune:

  • com.amazonaws.(AWS region, like us-east-1).sagemaker.runtime

  • com.amazonaws.(AWS region, like us-east-1).sagemaker.api

Se você não usou o modelo do AWS CloudFormation de início rápido, que os cria automaticamente, poderá usar os seguintes comandos da AWS CLI para criá-los:

Este cria o endpoint sagemaker.runtime:

create-vpc-endpoint --vpc-id (the ID of your Neptune DB cluster's VPC) --service-name com.amazonaws.(AWS region, like us-east-1).sagemaker.runtime --subnet-ids (the subnet ID or IDs that you want to use) --security-group-ids (the security group for the endpoint network interface, or omit to use the default) --private-dns-enabled

E este cria o endpoint sagemaker.api:

aws create-vpc-endpoint --vpc-id (the ID of your Neptune DB cluster's VPC) --service-name com.amazonaws.(AWS region, like us-east-1).sagemaker.api --subnet-ids (the subnet ID or IDs that you want to use) --security-group-ids (the security group for the endpoint network interface, or omit to use the default) --private-dns-enabled

Você também pode usar o console da VPC para criar esses endpoints. Consulte Secure prediction calls in Amazon SageMaker with AWS PrivateLink e Securing all Amazon SageMaker API calls with AWS PrivateLink.

Criar um parâmetro de endpoint de inferência do SageMaker no grupo de parâmetros de cluster de banco de dados

Para evitar a necessidade de especificar o endpoint de inferência do SageMaker do modelo que você está usando em cada consulta feita a ele, crie um parâmetro de cluster de banco de dados denominado neptune_ml_endpoint no grupo de parâmetros do cluster de banco de dados para o Neptune ML. Defina o parâmetro como o id do endpoint da instância em questão.

É possível usar o seguinte comando da AWS CLI para fazer isso:

aws neptune modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name neptune-ml-demo \ --parameters "ParameterName=neptune_ml_endpoint, \ ParameterValue=(the name of the SageMaker inference endpoint you want to query), \ Description=NeptuneMLEndpoint, \ ApplyMethod=pending-reboot" \ --region (AWS region, such as us-east-1)