

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 빠른 시작 CloudFormation 템플릿을 사용하지 않고 Neptune ML 설정
<a name="machine-learning-manual-setup"></a>

 이 가이드에서는 AWS CloudFormation 빠른 시작 템플릿을 사용하지 않고 Amazon Neptune ML을 설정하기 위한 step-by-step 지침을 제공합니다. 작동 중인 Neptune DB 클러스터가 이미 있다고 가정하고 Neptune-Export 서비스 설치, 사용자 지정 IAM 역할 생성, Neptune ML을 활성화하도록 DB 클러스터 구성 등 필요한 설정을 다룹니다. 이 설명서에서는 Neptune 엔진이 필요한 SageMaker AI 관리 API에 접근할 수 있도록 Neptune VPC 내에 두 개의 SageMaker AI 엔드포인트를 생성하는 방법도 설명합니다. 이 지침에 따라 CloudFormation 템플릿에 의존하지 않고도 기존 Neptune 인프라에서 Neptune ML을 설정할 수 있습니다.

## 제대로 작동하는 Neptune DB 클러스터로 시작
<a name="ml-manual-setup-prereq"></a>

 CloudFormation 빠른 시작 템플릿을 사용하여 Neptune ML을 설정하지 않는 경우 작업하려면 기존 Neptune DB 클러스터가 필요합니다. 원하는 경우 이미 보유한 클러스터를 사용하거나, 이미 사용 중인 클러스터를 복제하거나, 새로 만들 수 있습니다([Neptune 클러스터 생성](get-started-create-cluster.md) 참조).

## Neptune-Export 서비스 설치
<a name="ml-manual-setup-export-svc"></a>

아직 설치하지 않았다면 [Neptune-Export 서비스를 사용하여 Neptune 데이터 내보내기](export-service.md)에 설명된 대로 Neptune-Export 서비스를 설치합니다.

설치 시 생성되는 `NeptuneExportSecurityGroup` 보안 그룹에 다음과 같은 설정으로 인바운드 규칙을 추가합니다.
+ *유형*: `Custom TCP`
+ *프로토콜*: `TCP`
+ *포트 범위*: `80 - 443`
+ *소스*: {{(Neptune DB 클러스터 보안 그룹 ID)}}

## 사용자 지정 NeptuneLoadFromS3 IAM 역할 생성
<a name="ml-manual-setup-s3-role"></a>

아직 생성하지 않았다면 [Amazon S3에 액세스할 수 있는 IAM 역할 생성](bulk-load-tutorial-IAM-CreateRole.md)에 설명된 대로 사용자 지정 `NeptuneLoadFromS3` IAM 역할을 생성합니다.

## 사용자 지정 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을 활성화하도록 DB 클러스터 구성
<a name="ml-manual-setup-cluster-config"></a>

**Neptune ML용 DB 클러스터를 설정하려면**

1. [Neptune 콘솔](https://console.aws.amazon.com/neptune)에서 **파라미터 그룹**으로 이동한 다음, 사용할 DB 클러스터와 연결된 DB 클러스터 파라미터 그룹으로 이동합니다. 방금 생성한 `NeptuneSageMakerIAMRole` 역할에 할당된 ARN으로 `neptune_ml_iam_role` 파라미터를 설정합니다.

1. 데이터베이스로 이동한 후 Neptune ML에 사용할 DB 클러스터를 선택합니다. **작업**을 선택한 후 **IAM 역할 관리**를 선택합니다.

1. **IAM 역할 관리** 페이지에서 **역할 추가**를 선택하고 `NeptuneSageMakerIAMRole`을 추가합니다. 그런 다음 `NeptuneLoadFromS3` 역할을 추가합니다.

1. DB 클러스터의 라이터 인스턴스를 재부팅합니다.

## Neptune VPC에서 2개의 SageMaker AI 엔드포인트 생성
<a name="ml-manual-setup-endpoints"></a>

마지막으로, Neptune 엔진이 필수 SageMaker AI 관리 API에 액세스할 수 있게 하려면 [Neptune VPC에서 SageMaker AI를 위한 2개의 엔드포인트 생성](machine-learning-cluster-setup.md#machine-learning-sm-endpoints)에서 설명한 대로 Neptune VPC에 2개의 SageMaker AI 엔드포인트를 생성해야 합니다.