

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

# 不使用快速入門 CloudFormation 範本設定 Neptune ML
<a name="machine-learning-manual-setup"></a>

 本指南提供step-by-step說明。 Amazon Neptune AWS CloudFormation 它假設您已經有運作中的 Neptune 資料庫叢集，並涵蓋必要的設定，包括安裝 Neptune-Export 服務、建立自訂 IAM 角色，以及設定資料庫叢集以啟用 Neptune ML。本指南也說明如何在 Neptune VPC 中建立兩個 SageMaker AI 端點，讓 Neptune 引擎存取必要的 SageMaker AI 管理 APIs。透過遵循這些指示，您可以在現有的 Neptune 基礎設施上設定 Neptune ML，而無需依賴 CloudFormation 範本。

## 從運作中的 Neptune 資料庫叢集開始
<a name="ml-manual-setup-prereq"></a>

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

## 安裝 Neptune-Export 服務
<a name="ml-manual-setup-export-svc"></a>

如果您尚未安裝，請安裝 Neptune-Export 服務，如 [使用 Neptune-Export 服務匯出 Neptune 資料](export-service.md) 中所述。

使用下列設定，將傳入規則新增至安裝所建立的 `NeptuneExportSecurityGroup` 安全群組：
+ *Type (類型)*：`Custom TCP`
+ *Protocol (通訊協定)*：`TCP`
+ *連接埠範圍*：`80 - 443`
+ *來源*：{{(Neptune 資料庫叢集安全群組 ID)}}

## 建立自訂 NeptuneLoadFromS3 IAM 角色
<a name="ml-manual-setup-s3-role"></a>

如果您尚未建立，請建立自訂 `NeptuneLoadFromS3` IAM 角色，如 [建立 IAM 角色來存取 Amazon S3](bulk-load-tutorial-IAM-CreateRole.md) 中所述。

## 建立自訂 NeptuneSageMakerIAMRole 角色
<a name="ml-manual-setup-sm-role"></a>

使用 [IAM 主控台](https://console.aws.amazon.com/iam/)搭配下列政策建立自訂 `NeptuneSageMakerIAMRole`：

------
#### [ JSON ]

****  

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

------

建立此角色時，請編輯信任關係，以便其如下所示：

------
#### [ JSON ]

****  

```
{
  "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
<a name="ml-manual-setup-cluster-config"></a>

**為 Neptune ML 設定資料庫叢集**

1. 在 [Neptune 主控台](https://console.aws.amazon.com/neptune)中，導覽至**參數群組**，然後導覽至與您將要使用的資料庫叢集相關聯的資料庫叢集參數群組。將 `neptune_ml_iam_role` 參數設定為指派給您剛建立之 `NeptuneSageMakerIAMRole` 角色的 ARN。

1. 導覽至資料庫，然後選取將要用於 Neptune ML 的資料庫叢集。選取**動作**，然後選取**管理 IAM 角色**。

1. 在**管理 IAM 角色**頁面上，選取**新增角色**，然後新增 `NeptuneSageMakerIAMRole`。然後新增 `NeptuneLoadFromS3` 角色。

1. 重新啟動資料庫叢集的寫入器執行個體。

## 在 Neptune VPC 中建立兩個 SageMaker AI 端點
<a name="ml-manual-setup-endpoints"></a>

最後，若要讓 Neptune 引擎存取必要的 SageMaker AI 管理 APIs，您需要在 Neptune VPC 中建立兩個 SageMaker AI 端點，如中所述[在 Neptune VPC 中為 SageMaker AI 建立兩個端點](machine-learning-cluster-setup.md#machine-learning-sm-endpoints)。