使用在数据库 AWS CLI 集群上设置 Neptune ML - Amazon Neptune

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用在数据库 AWS CLI 集群上设置 Neptune ML

除了 AWS CloudFormation 快速入门模板和 AWS Management Console,您还可以使用设置 Neptune ML。 AWS CLI

为 Neptune ML 集群创建数据库集群参数组

以下 AWS CLI 命令创建新的数据库集群参数组并将其设置为与 Neptune ML 配合使用:

为 Neptune ML 创建和配置数据库集群参数组
  1. 创建新的数据库集群参数组:

    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. 创建设置为ARN的neptune_ml_iam_role数据库集群参数,SageMakerExcecutionIAMRole供数据库集群在调 SageMaker 用创建任务和从托管的 ML 模型中获取预测时使用:

    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)

    设置此参数允许 Neptune 进行访问, SageMaker 而无需在每次调用时都传递角色。

    有关如何创建 SageMakerExcecutionIAMRole 的信息,请参阅创建自定义 NeptuneSageMakerIAMRole角色

  3. 最后,使用 describe-db-cluster-parameters 检查新数据库集群参数组中的所有参数是否都设置为您希望的值:

    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)

将新的数据库集群参数组附加到将与 Neptune ML 一起使用的数据库集群

现在,您可以使用以下命令,将刚刚创建的新数据库集群参数组附加到现有数据库集群:

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)

要使所有参数生效,您可以重启数据库集群:

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)

或者,如果您要创建与 Neptune ML 结合使用的新数据库集群,则可以使用以下命令创建附加了新参数组的集群,然后创建新的主(写入器)实例:

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)

NeptuneSageMakerIAMRole连接到您的数据库集群以便它可以访问 SageMaker 和 Amazon S3 资源

最后,按照中的说明创建创建自定义 NeptuneSageMakerIAMRole角色允许您的数据库集群与 Amazon S3 通信 SageMaker 的IAM角色。然后,使用以下命令将您创建的 NeptuneSageMakerIAMRole 角色附加到数据库集群:

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)

在你的 Neptune SageMaker 中为其创建两个端点 VPC

Neptune ML 在你的 Neptune 数据库集群中需要两个 SageMaker 终端节点:VPC

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

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

如果您尚未使用快速入门 AWS CloudFormation 模板(它会自动为您创建这些模板),则可以使用以下 AWS CLI 命令来创建它们:

此命令创建 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

而此命令创建 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

您也可以使用VPC控制台创建这些终端节点。请参阅 Amazon 中的安全预测通话 AWS PrivateLink和 SageMaker 使用保护所有 Amazon SageMaker API 通话 AWS PrivateLink

在数据库集群参数组中创建 SageMaker 推理终端节点参数

为避免在每次查询时都要指定模型的 SageMaker 推理终端节点,请在 Neptune ML 的数据库集群参数组neptune_ml_endpoint中创建一个名为 Neptune ML 的数据库集群参数。将此参数设置为相关实例端点的 id

你可以使用以下 AWS CLI 命令来做到这一点:

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)