在不使用快速入门 Amazon CloudFormation 模板的情况下设置 Neptune ML - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在不使用快速入门 Amazon CloudFormation 模板的情况下设置 Neptune ML

1. 从正常运行的 Neptune 数据库集群开始

如果您不使用 Amazon CloudFormation 快速入门模板来设置 Neptune ML,则需要使用现有的 Neptune 数据库集群。如果您愿意,您可以使用已经拥有的一个集群,或者克隆一个您已经在使用的集群,也可以创建一个新集群(请参阅创建数据库集群)。

2. 安装 Neptune-Export 服务

如果您还没有这样做,请安装 Neptune-Export 服务,如使用 Neptune-Export 服务导出 Neptune 数据中所述。

使用以下设置向安装过程创建的 NeptuneExportSecurityGroup 安全组添加入站规则:

  • 类型Custom TCP

  • 协议:TCP

  • 端口范围80 - 443

  • 来源(Neptune 数据库集群安全组 ID

3. 创建自定义 NeptuneLoadFromS3 IAM 角色

如果您尚未这样做,请创建自定义 NeptuneLoadFromS3 IAM 角色,如创建 IAM 角色以访问 Amazon S3中所述。

创建自定义 NeptuneSageMakerIAMRole 角色

使用 IAM 控制台通过以下策略创建自定义 NeptuneSageMakerIAMRole

{ "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" } ] }

创建此角色时,请编辑信任关系,使其内容如下所示:

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

最后,复制分配给这个新 NeptuneSageMakerIAMRole 角色的 ARN。

重要
  • 请确保 NeptuneSageMakerIAMRole 中的 Amazon S3 权限与上述权限一致。

  • 通用 ARN arn:aws:s3:::* 用于上述策略中的 Amazon S3 资源。如果由于某种原因无法使用通用 ARN,则必须将 arn:aws:s3:::graphlytics* 和 Neptune ML 命令将使用的任何其他客户 Amazon S3 资源的 ARN 添加到资源部分。

配置数据库集群以启用 Neptune ML

要为 Neptune ML 设置数据库集群
  1. Neptune 控制台中,导航到参数组,然后导航到与要使用的数据库集群关联的数据库集群参数组。将 neptune_ml_iam_role 参数设置为分配给您刚刚创建的 NeptuneSageMakerIAMRole 角色的 ARN。

  2. 导航到数据库,然后选择要用于 Neptune ML 的数据库集群。选择操作,然后选择管理 IAM 角色

  3. 管理 IAM 角色页面上,选择添加角色并添加 NeptuneSageMakerIAMRole。然后添加 NeptuneLoadFromS3 角色。

  4. 重启数据库集群的写入器实例。

在您的 Neptune VPC 中创建两个 SageMaker 端点

最后,要让 Neptune 引擎访问必要的 SageMaker 管理 API,您需要在 Neptune VPC 中创建两个 SageMaker 端点,如在 Neptune VPC 中为 SageMaker 创建两个端点中所述。

手动为 Neptune ML 配置 Neptune 笔记本

Neptune SageMaker 笔记本预装了各种适用于 Neptune ML 的示例笔记本。您可以在开源图形笔记本 GitHub 存储库中预览这些示例。

您可以使用现有的 Neptune 笔记本之一,或者如果您愿意,也可以按照使用 Neptune Workbench 托管 Neptune 笔记本中的说明创建自己的笔记本。

您也可以按照以下步骤配置默认 Neptune 笔记本以与 Neptune ML 结合使用:

修改 Neptune ML 的笔记本
  1. 通过 https://console.aws.amazon.com/sagemaker/ 打开 Amazon SageMaker 控制台。

  2. 在左侧的导航窗格上,选择笔记本,然后选择笔记本实例。查找要用于 Neptune ML 的 Neptune 笔记本的名称,然后将其选中以进入其详细信息页面。

  3. 如果笔记本实例正在运行,请选择笔记本详细信息页面右上角的停止按钮。

  4. 笔记本实例设置中,在生命周期配置下,选择指向打开笔记本生命周期的页面的链接。

  5. 选择右上角的编辑,然后选择继续

  6. 启动笔记本选项卡中,修改脚本以包含其它导出命令,并填写 Neptune ML IAM 角色和导出服务 URI 的字段,具体取决于您的 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. 选择更新

  8. 返回笔记本实例页面。在权限和加密下,有一个对应于 IAM 角色 ARN 的字段。选择此字段中的链接可转到运行此笔记本实例的 IAM 角色。

  9. 创建一个新的内联策略,如下所示:

    { "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. 保存此新策略,并将其附加到步骤 8 中的 IAM 角色。

  11. 选择 SageMaker 笔记本实例详细信息页面右上角的启动以启动笔记本实例。