Utilisation des bloc-notes Neptune pour un 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.

Utilisation des bloc-notes Neptune pour un démarrage rapide

Il n'est pas nécessaire d'utiliser des blocs-notes Neptune pour travailler avec un graphe Neptune. Si vous le souhaitez, vous pouvez créer immédiatement une nouvelle base de données Neptune à l'aide d'un modèle AWS CloudFormation

En même temps, que vous débutiez dans le domaine des graphes et que vous souhaitiez élargir vos connaissances et vous faire la main, ou que vous soyez expérimenté et que vous souhaitiez affiner vos requêtes, le workbench Neptune propose un environnement de développement interactif (IDE) qui contribue à améliorer votre productivité lors de la création d'applications orientées graphe.

Neptune fournit des blocs-notes Jupyter et JupyterLab dans le cadre du projet open source Neptune Graph Notebook sur GitHub et dans le workbench Neptune. Ces blocs-notes offrent des exemples de didacticiels d'application et des extraits de code dans un environnement de codage interactif où vous pouvez vous familiariser avec la technologie des graphes et Neptune. Vous pouvez les utiliser pour comprendre comment configurer, renseigner et interroger des graphes à l'aide de différents langages de requête, de différents jeux de données et même de différentes bases de données sur le backend.

Vous pouvez héberger ces blocs-notes de différentes manières :

  • Le workbench Neptune vous permet d'exécuter des blocs-notes Jupyter dans un environnement entièrement géré, hébergé sur Amazon SageMaker, et charge automatiquement la dernière version du projet de bloc-notes de graphe Neptune pour vous. Il est facile de configurer le workbench dans la console Neptune lorsque vous créez une base de données Neptune.

  • Vous pouvez également installer Jupyter localement. Cela vous permet d'exécuter les blocs-notes à partir de votre ordinateur portable connecté soit à Neptune, soit à une instance locale de l'une des bases de données orientées graphe open source. Dans ce dernier cas, vous pouvez expérimenter la technologie des graphes autant que vous le souhaitez sans avoir à dépenser un centime. Puis, lorsque vous serez prêt, vous pourrez passer en douceur à l'environnement de production géré proposé par Neptune.

Utilisation du workbench Neptune pour héberger des blocs-notes Neptune

Neptune propose des types d'instances T3 et T4g que vous pouvez utiliser pour moins de 0,10 USD de l'heure. Les ressources du workbench vous sont facturées via Amazon SageMaker, séparément de votre facturation Neptune. Consultez la page de tarification de Neptune. Les blocs-notes Jupyter et JupyterLab créés sur le workbench Neptune utilisent tous un environnement Amazon Linux 2 et JupyterLab 3. Pour plus d'informations sur la compatibilité de JupyterLab avec les bloc-notes, consultez la documentation Amazon SageMaker.

Vous pouvez créer un bloc-notes Jupyter ou JupyterLab à l'aide du workbench Neptune de deux manières dans la AWS Management Console :

Pour créer un bloc-notes Jupyter ou Jupyterlab à l'aide du menu Blocs-notes
  1. Connectez-vous à la console de gestion AWS et ouvrez la console Amazon Neptune à l'adresse https://console.aws.amazon.com/neptune/home.

  2. Dans le panneau de navigation de gauche, choisissez Bloc-notes.

  3. Choisissez Créer un bloc-notes.

  4. Dans la liste Cluster, choisissez votre cluster de bases de données Neptune. Si vous n'avez pas encore de cluster de bases de données, choisissez Créer un cluster pour en créer un.

  5. Sélectionnez un type d'instance de bloc-notes.

  6. Donnez un nom à votre bloc-notes et éventuellement une description.

  7. À moins que vous ayez déjà créé un rôle AWS Identity and Access Management (IAM) pour vos blocs-notes, choisissez Créer un rôle IAM et entrez un nom de rôle IAM.

    Note

    Si vous choisissez de réutiliser un rôle IAM créé pour un bloc-notes précédent, la politique de rôle doit contenir les autorisations appropriées pour accéder au cluster de bases de données Neptune que vous utilisez. Pour ce faire, vérifiez que les composants de l'ARN de la ressource sous l'action neptune-db:* correspondent à ce cluster. Des autorisations mal configurées entraînent des erreurs de connexion lorsque vous essayez d'exécuter les commandes de magie de bloc-notes.

  8. Choisissez Créer un bloc-notes. Le processus de création peut prendre de 5 à 10 minutes avant que tout soit prêt.

  9. Une fois le bloc-notes créé, sélectionnez-le, puis choisissez Ouvrir Jupyter ou Ouvrir JupyterLab.

La console peut créer un rôle AWS Identity and Access Management (IAM) pour vos blocs-notes, ou vous pouvez en créer un vous-même. La politique pour ce rôle devrait comprendre les éléments suivants :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::aws-neptune-notebook-(AWS region)", "arn:aws:s3:::aws-neptune-notebook-(AWS region)/*" ] }, { "Effect": "Allow", "Action": "neptune-db:*", "Resource": [ "arn:aws:neptune-db:(AWS region):(AWS account ID):(Neptune resource ID)/*" ] } ] }

Notez que la deuxième déclaration de la politique ci-dessus répertorie un ou plusieurs ID de ressources du cluster Neptune.

En outre, le rôle doit établir la relation de confiance suivante :

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

Là aussi, la temps de préparation peut aller de 5 à 10 minutes.

Vous pouvez configurer le nouveau bloc-notes pour qu'il fonctionne avec Neptune ML, comme expliqué dans Configuration manuelle d'un bloc-notes Neptune pour Neptune ML.

Utilisation de Python pour connecter un bloc-notes SageMaker générique à Neptune

La connexion d'un bloc-notes à Neptune est facile si vous avez installé la magie Neptune, mais il est également possible de connecter un bloc-notes SageMaker à Neptune à l'aide de Python, même si vous n'utilisez pas de bloc-notes Neptune.

Étapes à suivre pour se connecter à Neptune dans une cellule de bloc-notes SageMaker
  1. Installez le client Python Gremlin :

    !pip install gremlinpython

    Les blocs-notes Neptune installent le client Python Gremlin pour vous. Cette étape n'est donc nécessaire que si vous utilisez un bloc-notes SageMaker ordinaire.

  2. Écrivez un code tel que le suivant pour vous connecter et émettre une requête Gremlin :

    from gremlin_python import statics from gremlin_python.structure.graph import Graph from gremlin_python.process.graph_traversal import __ from gremlin_python.process.strategies import * from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection from gremlin_python.driver.aiohttp.transport import AiohttpTransport from gremlin_python.process.traversal import * import os port = 8182 server = '(your server endpoint)' endpoint = f'wss://{server}:{port}/gremlin' graph=Graph() connection = DriverRemoteConnection(endpoint,'g', transport_factory=lambda:AiohttpTransport(call_from_event_loop=True)) g = graph.traversal().withRemote(connection) results = (g.V().hasLabel('airport') .sample(10) .order() .by('code') .local(__.values('code','city').fold()) .toList()) # Print the results in a tabular form with a row index for i,c in enumerate(results,1): print("%3d %4s %s" % (i,c[0],c[1])) connection.close()
Note

S'il se trouve que vous utilisez une version du client Python Gremlin antérieure à la version 3.5.0, la ligne suivante :

connection = DriverRemoteConnection(endpoint,'g', transport_factory=lambda:AiohttpTransport(call_from_event_loop=True))

Serait simplement :

connection = DriverRemoteConnection(endpoint,'g')

Activation des journaux CloudWatch pour les blocs-notes Neptune

Les journaux CloudWatch sont désormais activés par défaut pour les blocs-notes Neptune. Si vous possédez un ancien bloc-notes qui ne génère pas de journaux CloudWatch, procédez comme suit pour les activer manuellement :

  1. Connectez-vous à la AWS Management Console et ouvrez la console SageMaker.

  2. Dans le panneau de navigation de gauche, choisissez Bloc-notes, puis Instances de blocs-notes. Recherchez le nom du bloc-notes Neptune pour lequel vous souhaitez activer les journaux.

  3. Accédez à la page de détails en sélectionnant le nom de cette instance de bloc-notes.

  4. Si l'instance du 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.

  5. 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.

  6. Créez la politique suivante :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogDelivery", "logs:GetLogEvents", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*" } ] }
  7. Enregistrez cette nouvelle politique et associez-la au rôle IAM indiqué à l'étape 4.

  8. Cliquez sur Démarrer en haut à droite de la page de détails de l'instance du bloc-notes SageMaker.

  9. Lorsque les journaux commencent à circuler, vous devriez voir un lien Afficher les journaux sous le champ intitulé Configuration du cycle de vie en bas à gauche de la section Paramètres d'instance du bloc-notes de la page de détails.

Si un bloc-notes ne démarre pas, un message s'affiche sur la page de détails du bloc-notes de la console SageMaker, indiquant que l'instance du bloc-notes a mis plus de cinq minutes à démarrer. Les journaux CloudWatch relatifs à ce problème sont disponibles sous le nom suivant :

(your-notebook-name)/LifecycleConfigOnStart

Configuration de bloc-notes de graphe sur votre ordinateur local

Le projet graph-notebook contient des instructions pour configurer les blocs-notes Neptune sur votre ordinateur local :

Vous pouvez connecter vos blocs-notes locaux soit à un cluster de bases de données Neptune, soit à une instance locale ou distante d'une base de données orientée graphe open source.

Utilisation des blocs-notes Neptune avec des clusters Neptune

Si vous vous connectez à un cluster Neptune sur le backend, il peut être utile d'exécuter les blocs-notes dans Amazon SageMaker. La connexion à Neptune depuis SageMaker peut être plus pratique que la connexion à partir d'une installation locale des blocs-notes, et permet de travailler plus facilement avec Neptune ML.

Pour obtenir des instructions sur la configuration des blocs-notes dans SageMaker, consultez Lancement d'un bloc-notes de graphe à l'aide d'Amazon SageMaker.

Pour obtenir des instructions sur l'installation et la configuration de Neptune lui-même, consultez Configurer Neptune.

Vous pouvez également connecter une installation locale des blocs-notes Neptune à un cluster de bases de données Neptune. Cela peut être un peu plus compliqué, car les clusters de bases de données Amazon Neptune ne peuvent être créés que dans un réseau Amazon Virtual Private Cloud (VPC), qui est par nature isolé du monde extérieur. Il existe plusieurs manières de se connecter à un VPC depuis l'extérieur. L'une d'elles consiste à utiliser un équilibreur de charge. Une autre solution consiste à utiliser l'appairage de VPC (consultez le Guide de l'appairage Amazon Virtual Private Cloud).

Le moyen le plus pratique pour la plupart des utilisateurs est toutefois de se connecter pour configurer un serveur proxy Amazon EC2 au sein du VPC, puis d'utiliser le tunneling SSH (également appelé transfert de port) pour s'y connecter. Vous trouverez des instructions sur la procédure de configuration dans Connecting graph notebook locally to Amazon Neptune dans le dossier additional-databases/neptune du projet GitHub graph-notebook.

Utilisation des blocs-notes Neptune avec des bases de données orientées graphe open source

Pour commencer à utiliser gratuitement la technologie des graphes, vous pouvez également utiliser les blocs-notes Neptune avec diverses bases de données open source sur le backend. Le serveur Gremlin TinkerPop et la base de données Blazegraph en sont des exemples.

Pour utiliser le serveur Gremlin comme base de données backend, suivez les instructions ci-dessous :

Pour utiliser une instance locale de Blazegraph comme base de données backend, suivez ces instructions :

Migration des blocs-notes Neptune de Jupyter vers JupyterLab 3

Les blocs-notes Neptune créés avant le 21 décembre 2022 utilisent l'environnement Amazon Linux 1. Vous pouvez migrer les anciens blocs-notes Jupyter créés avant cette date vers le nouvel environnement Amazon Linux 2 avec JupyterLab 3 en suivant les étapes décrites dans ce billet de blog AWS : Migrate your work to an Amazon SageMaker notebook instance with Amazon Linux 2.

En outre, quelques étapes supplémentaires s'appliquent spécifiquement à la migration des blocs-notes Neptune vers le nouvel environnement :

Prérequis spécifiques à Neptune

Dans le rôle IAM du bloc-notes Neptune source, ajoutez toutes les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:CreateBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::(your ebs backup bucket name)", "arn:aws:s3:::(your ebs backup bucket name)/*" ] }, { "Effect": "Allow", "Action": [ "sagemaker:ListTags" ], "Resource": [ "*" ] }

Assurez-vous de spécifier l'ARN correct pour le compartiment S3 que vous utiliserez pour la sauvegarde.

Configuration du cycle de vie spécifique à Neptune

Lors de la création du deuxième script de configuration du cycle de vie pour restaurer la sauvegarde (à partir de on-create.sh), comme décrit dans le billet de blog, le nom du cycle de vie doit suivre le format aws-neptune-*, comme aws-neptune-sync-from-s3. Cela garantit que le LCC peut être sélectionné lors de la création du bloc-notes dans la console Neptune.

Synchronisation spécifique à Neptune entre un instantané et une nouvelle instance

Dans les étapes décrites dans le billet de blog pour la synchronisation d'un instantané vers une nouvelle instance, voici les modifications spécifiques à Neptune :

  • À l'étape 4, choisissez notebook-al2-v2.

  • À l'étape 5, réutilisez le rôle IAM du bloc-notes Neptune source.

  • Entre les étapes 7 et 8 :

    • Dans Paramètres d'instance du bloc-notes, définissez un nom utilisant le format aws-neptune-*.

    • Ouvrez l'accordéon des paramètres réseau et sélectionnez le même VPC, le même sous-réseau et le même groupe de sécurité que dans le bloc-notes source.

Étapes spécifiques à Neptune après la création du bloc-notes

  1. Sélectionnez le bouton Ouvrir Jupyter correspondant au bloc-notes. Une fois que le fichier SYNC_COMPLETE apparaît dans le répertoire principal, passez à l'étape suivante.

  2. Accédez à la page de l'instance de bloc-notes dans la console SageMaker.

  3. Arrêtez le bloc-notes.

  4. Tâche de sélection Modifier.

  5. Dans les paramètres d'instance du bloc-notes, modifiez le champ Configuration du cycle de vie en sélectionnant le cycle de vie original du bloc-notes Neptune source. Notez qu'il ne s'agit pas du cycle de vie de sauvegarde EBS.

  6. Sélectionnez Mettre à jour les paramètres du bloc-notes.

  7. Redémarrez le bloc-notes.

Avec les modifications décrites ici par rapport aux étapes décrites dans le billet de blog, vos blocs-notes de graphe devraient désormais être migrés vers une nouvelle instance de bloc-notes Neptune qui utilise l'environnement Amazon Linux 2 et JupyterLab 3. Vous pourrez y accéder et les gérer sur la page Neptune de la AWS Management Console. Vous pouvez maintenant reprendre votre travail là où vous vous êtes arrêté en sélectionnant Ouvrir Jupyter ou Ouvrir JupyterLab.