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 IAMNeptuneSageMakerIAMRole
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
-
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ôleNeptuneSageMakerIAMRole
que vous venez de créer. -
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.
Sur la page Gérer les rôles IAM, sélectionnez Ajouter un rôle et ajoutez
NeptuneSageMakerIAMRole
. Ajoutez ensuite le rôleNeptuneLoadFromS3
.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
Ouvrez la console Amazon SageMaker à l'adresse https://console.aws.amazon.com/sagemaker/.
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.
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.
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.
Sélectionnez Modifier en haut à droite, puis Continuer.
-
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 Tâche de sélection Update (Mise à jour).
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.
-
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" } ] }
Enregistrez cette nouvelle politique et attachez-la au rôle IAM à l'étape 8.
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.