Configuration de Neptune ML sans utiliser le modèle AWS CloudFormation de démarrage rapide - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de Neptune ML sans utiliser le modèle AWS CloudFormation de démarrage rapide

1. Utilisation d'un cluster de bases de données Neptune fonctionnel

Si vous n'utilisez pas le modèle de démarrage rapide AWS CloudFormation pour configurer Neptune ML, vous avez besoin d'un cluster de bases de données Neptune existant à utiliser. Si vous le souhaitez, vous pouvez en utiliser un que vous possédez déjà, ou en cloner un que vous utilisez déjà, ou encore en créer un nouveau (voir Créer un cluster de bases de données).

2. Installation du service d'exportation Neptune

Si vous ne l'avez pas encore fait, installez le service d'exportation Neptune, comme expliqué dans Utilisation du service d'exportation Neptune pour exporter des données Neptune.

Ajoutez une règle entrante au groupe de sécurité NeptuneExportSecurityGroup créé par l'installation, avec les paramètres suivants :

  • Type : Custom TCP

  • Protocole : TCP

  • Plage de ports : 80 - 443

  • Source : (ID du groupe de sécurité du cluster de bases de données Neptune)

3. Création d'un rôle IAM NeptuneLoadFromS3 personnalisé

Si vous ne l'avez pas encore fait, créez un rôle IAM NeptuneLoadFromS3 personnalisé, comme expliqué dans Création d'une politique IAM pour accéder à Amazon S3.

Création d'un rôle NeptuneSageMakerIAMRole personnalisé

Utilisez la console IAM pour créer un NeptuneSageMakerIAMRole personnalisé, en utilisant la politique suivante :

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

Lors de la création de ce rôle, modifiez la relation d'approbation afin qu'elle se présente comme suit :

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

Enfin, copiez l'ARN attribué à ce nouveau rôle NeptuneSageMakerIAMRole.

Important
  • Veillez à ce que les autorisations Amazon S3 figurant dans NeptuneSageMakerIAMRole correspondent aux autorisations ci-dessus.

  • L'ARN universel arn:aws:s3:::* est utilisé pour la ressource Amazon S3 dans la politique ci-dessus. Si, pour une raison ou une autre, l'ARN universel ne peut pas être utilisé, arn:aws:s3:::graphlytics* et l'ARN de toute autre ressource Amazon S3 du client que les commandes NeptuneML utiliseront doivent être ajoutés à la section des ressources.

Configuration de votre cluster de bases de données de façon à activer Neptune ML

Pour configurer votre cluster de bases de données pour Neptune ML
  1. Dans la console Neptune, accédez à Groupes de paramètres, puis au groupe de paramètres du cluster de bases de données associé au cluster de bases de données que vous allez utiliser. Définissez le paramètre neptune_ml_iam_role sur l'ARN attribué au rôle NeptuneSageMakerIAMRole que vous venez de créer.

  2. Accédez à Bases de données, puis sélectionnez le cluster de bases de données que vous utiliserez pour Neptune ML. Sélectionnez Actions, puis Gérer les rôles IAM.

  3. Sur la page Gérer les rôles IAM, sélectionnez Ajouter un rôle et ajoutez NeptuneSageMakerIAMRole. Ajoutez ensuite le rôle NeptuneLoadFromS3.

  4. Redémarrez l'instance d'enregistreur de votre cluster de bases de données.

Création de deux points de terminaison SageMaker dans votre VPC Neptune

Enfin, pour permettre au moteur Neptune d'accéder aux API de gestion SageMaker nécessaires, vous devez créer deux points de terminaison SageMaker dans votre VPC Neptune, comme expliqué dans Création de deux points de terminaison pour SageMaker dans votre VPC Neptune.

Configuration manuelle d'un bloc-notes Neptune pour Neptune ML

Les blocs-notes Neptune SageMaker sont fournis avec divers exemples de blocs-notes préchargés pour Neptune ML. Vous pouvez voir un aperçu de ces exemples dans le référentiel GitHub de bloc-notes de graphe open source.

Vous pouvez utiliser l'un des blocs-notes Neptune existants ou, si vous le souhaitez, créer le vôtre en suivant les instructions fournies dans Utilisation du workbench Neptune pour héberger des blocs-notes Neptune.

Vous pouvez également configurer un bloc-notes Neptune par défaut à utiliser avec Neptune ML en procédant comme suit :

Modification d'un bloc-notes pour Neptune ML
  1. Ouvrez la console Amazon SageMaker à l'adresse https://console.aws.amazon.com/sagemaker/.

  2. Dans le panneau de navigation de gauche, choisissez Bloc-notes, puis Instances de blocs-notes. Recherchez le nom du bloc-notes Neptune que vous souhaitez utiliser pour Neptune ML et sélectionnez-le pour accéder à sa page de détails.

  3. Si l'instance de bloc-notes est en cours d'exécution, sélectionnez le bouton Arrêter en haut à droite de la page de détails du bloc-notes.

  4. Dans Paramètres d'instances de blocs-notes, sous Configuration du cycle de vie, sélectionnez le lien pour ouvrir la page du cycle de vie du bloc-notes.

  5. Sélectionnez Modifier en haut à droite, puis Continuer.

  6. Dans l'onglet Démarrer un bloc-notes, modifiez le script pour inclure des commandes d'exportation supplémentaires et pour remplir les champs correspondant à votre rôle IAM Neptune ML et à l'URI du service d'exportation, similaires à ce qui suit selon votre 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. Tâche de sélection Update (Mise à jour).

  8. Revenez à la page d'instance de bloc-notes. Sous Autorisations et chiffrement, il existe un champ pour l'ARN du rôle IAM. Sélectionnez le lien dans ce champ pour accéder au rôle IAM avec lequel cette instance de bloc-notes sera exécutée.

  9. Créez une nouvelle politique en ligne comme celle-ci :

    { "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. Enregistrez cette nouvelle politique et attachez-la au rôle IAM à l'étape 8.

  11. Sélectionnez Démarrer en haut à droite de la page de détails de l'instance de bloc-notes SageMaker pour démarrer l'instance de bloc-notes.