在 Neptune 数据库集群上设置 Neptune ML - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

在 Neptune 数据库集群上设置 Neptune ML

如果您未使用Amazon CloudFormation用于设置 Neptune ML 的快速入门模板,需要采取一些步骤来在数据库集群上启用 Neptune ML、设置数据库集群参数以及附加必要的 IAM 角色。

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

以下是Amazon 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 (Amazon region, such as us-east-1)
  2. 创建neptune_ml_iam_role数据库集群参数设置为的 ARNSageMakerExcecutionIAMRole让您的数据库集群在调用 SageMaker 创建作业和从托管机器学习模型获取预测时使用:

    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 (Amazon region, such as us-east-1)

    设置此参数允许 Neptune 访问 SageMaker,而无需在每次通话时传递角色。

    有关如何创建SageMakerExcecutionIAMRole请参阅为 Neptune ML 设置 IAM 角色和策略.

  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 (Amazon 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 (Amazon 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 Amazon profile to use) \ --region (Amazon 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 (Amazon 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 (Amazon region, such as us-east-1)

将附加到NeptuneSageMakerIAMRole转到数据库集群,以便它可以访问 SageMaker 和 Amazon S3 资源

最后,将附加到NeptuneSageMakerIAMRole这将允许数据库集群与 SageMaker 和 Amazon S3 进行通信(有关如何创建该角色的信息,请参阅手动设置 IAM 设置):

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 (Amazon region, such as us-east-1)

在 Neptune VPC 中为 SageMaker 创建两个终端节点

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

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

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

如果您还没使用快速入门Amazon CloudFormation模板,为您自动创建这些设置,您可以使用以下命令Amazon CLI创建它们的命令:

这个创建了sagemaker.runtime终端节点:

create-vpc-endpoint --vpc-id (the ID of your Neptune DB cluster's VPC) --service-name com.amazonaws.(Amazon 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.(Amazon 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 SageMaker 中安全预测呼叫AmazonPrivateLink使用保护所有 Amazon SageMaker API 调用AmazonPrivateLink.

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

为避免必须指定模型的 SageMaker 推理终端节点,请创建一个名为的数据库集群参数,请创建一个名为的数据库集群参数。neptune_ml_endpointNeptune ML 的数据库集群参数组中。将参数设置为id有问题的实例终端节点。

您可以使用以下命令Amazon 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 (Amazon region, such as us-east-1)