빠른 시작 AWS CloudFormation 템플릿을 사용하지 않고 Neptune ML 설정 - Amazon Neptune

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

빠른 시작 AWS CloudFormation 템플릿을 사용하지 않고 Neptune ML 설정

1. 제대로 작동하는 Neptune DB 클러스터로 시작

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

2. Neptune-Export 서비스 설치

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

설치 시 생성되는 NeptuneExportSecurityGroup 보안 그룹에 다음과 같은 설정으로 인바운드 규칙을 추가합니다.

  • 유형: Custom TCP

  • 프로토콜: TCP

  • 포트 범위: 80 - 443

  • 소스: (Neptune DB 클러스터 보안 그룹 ID)

3. 사용자 지정 NeptuneLoadFromS3 IAM 역할 생성

아직 생성하지 않았다면 Amazon S3에 액세스하기 위한 IAM 역할 생성에 설명된 대로 사용자 지정 NeptuneLoadFromS3 IAM 역할을 생성합니다.

사용자 지정 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을 활성화하도록 DB 클러스터 구성

Neptune ML용 DB 클러스터를 설정하려면
  1. Neptune 콘솔에서 파라미터 그룹으로 이동한 다음, 사용할 DB 클러스터와 연결된 DB 클러스터 파라미터 그룹으로 이동합니다. 방금 생성한 NeptuneSageMakerIAMRole 역할에 할당된 ARN으로 neptune_ml_iam_role 파라미터를 설정합니다.

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

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

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

Neptune VPC에서 2개의 SageMaker 엔드포인트 생성

마지막으로, Neptune 엔진이 필수 SageMaker 관리 API에 액세스할 수 있게 하려면 Neptune VPC에서 SageMaker를 위한 2개의 엔드포인트 생성에서 설명한 대로 Neptune VPC에 2개의 SageMaker 엔드포인트를 생성해야 합니다.

Neptune ML용 Neptune 노트북을 수동으로 구성

Neptune SageMaker 노트북에는 Neptune ML용 다양한 샘플 노트북이 사전 로드되어 있습니다. 오픈 소스 그래프 노트북 GitHub 리포지토리에서 이러한 샘플을 미리 볼 수 있습니다.

기존 Neptune 노트북 중 하나를 사용하거나, 원하는 경우 Neptune 워크벤치를 사용하여 Neptune 노트북 호스팅의 지침에 따라 직접 노트북을 만들 수 있습니다.

다음 단계에 따라 Neptune ML과 함께 사용할 기본 Neptune 노트북을 구성할 수도 있습니다.

Neptune ML용 노트북 수정
  1. https://console.aws.amazon.com/sagemaker/에서 Amazon SageMaker Console을 엽니다.

  2. 왼쪽 탐색 창에서 노트북을 선택한 다음 노트북 인스턴스를 선택합니다. Neptune ML에 사용할 Neptune 노트북의 이름을 찾아 선택하면 해당 세부 정보 페이지로 이동합니다.

  3. 노트북 인스턴스가 실행 중인 경우 노트북 세부 정보 페이지 오른쪽 상단에 있는 중지 버튼을 선택합니다.

  4. 노트북 인스턴스 설정수명 주기 구성에서 링크를 선택하여 노트북의 수명 주기 페이지를 엽니다.

  5. 오른쪽 상단에서 편집을 선택한 다음 계속을 선택합니다.

  6. 노트북 시작 탭에서 추가 내보내기 명령을 포함하고 셸에 따라 다음과 같이 Neptune ML IAM 역할 및 내보내기 서비스 URI에 대한 필드를 채우도록 스크립트를 수정합니다.

    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 노트북 인스턴스 세부 정보 페이지의 오른쪽 상단에서 시작을 선택하여 노트북 인스턴스를 시작합니다.