在不使用快速入門 AWS CloudFormation 範本的情況下設定 Neptune ML - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在不使用快速入門 AWS CloudFormation 範本的情況下設定 Neptune ML

1. 從運作中的 Neptune 資料庫叢集開始

如果您不使用 AWS CloudFormation 快速入門範本來設定 Neptune ML,則需要現有的 Neptune 資料庫叢集才能使用。如果想要的話,您可以使用已有的叢集,或複製您已使用中的叢集,或者您可以建立新的叢集 (請參閱 建立資料庫叢集)。

2. 安裝 Neptune-Export 服務

如果您尚未安裝,請安裝 Neptune-Export 服務,如 使用 Neptune-Export 服務匯出 Neptune 資料 中所述。

使用下列設定,將傳入規則新增至安裝所建立的 NeptuneExportSecurityGroup 安全群組:

  • Type (類型)Custom TCP

  • Protocol (通訊協定)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,則 NeptuneML 命令將使用的任何其他客戶 Amazon S3 資源的 arn:aws:s3:::graphlytics* 和 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 工作台託管 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. 選取 Update (更新)。

  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 筆記本執行個體詳細資訊頁面右上方的啟動,以啟動記事本執行個體。