

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 d'Amazon Neptune avec des carnets graphiques
<a name="graph-notebooks"></a>

[Pour travailler avec des graphes Neptune, vous pouvez utiliser un bloc-notes Neptune ou créer une nouvelle base de données Neptune à l'aide d'un modèle. CloudFormation](get-started-cfn-create.md)

Que vous soyez novice en matière de graphes et que vous souhaitiez apprendre et expérimenter, ou que vous soyez expérimenté et que vous souhaitiez affiner vos requêtes, le [pupitre](#graph-notebooks-workbench) Neptune propose un environnement de développement interactif (IDE) qui peut améliorer votre productivité lorsque vous créez des applications graphiques. Le Workbench fournit une interface conviviale pour interagir avec votre base de données Neptune, écrire des requêtes et visualiser vos données.

En utilisant le CloudFormation modèle pour configurer votre base de données Neptune et le Workbench pour développer vos applications graphiques, vous pouvez démarrer avec Neptune rapidement et efficacement, sans avoir besoin d'outils supplémentaires. Cela vous permet de vous concentrer sur le développement de vos applications plutôt que sur la configuration de l'infrastructure sous-jacente.

**Note**  
 Les blocs-notes Neptune, gérés via Amazon SageMaker AI, ne sont actuellement pas disponibles dans la région Asie-Pacifique (Malaisie) (ap-southeast-5). Cependant, vous pouvez toujours déployer des blocs-notes Neptune via d'autres options non gérées. Reportez-vous à [Configuration manuelle des blocs-notes Neptune](#graph-notebook-manual-setup) pour le déploiement manuel de blocs-notes. 

Neptune fournit [Jupyter](https://jupyter-notebook.readthedocs.io/en/stable/) et des [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/index.html)blocs-notes dans le cadre du [projet open source Neptune Graph Notebook sur et dans le plan de travail Neptune](https://github.com/aws/graph-notebook). GitHub 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 [pupitre Neptune](#graph-notebooks-workbench) vous permet d'exécuter des blocs-notes Jupyter dans un environnement entièrement géré, hébergé dans Amazon SageMaker AI, et charge automatiquement la dernière version du projet de bloc-notes Neptune Graph pour vous.](https://github.com/aws/graph-notebook) Il est facile de configurer le workbench dans la console [Neptune](https://console.aws.amazon.com/neptune) lorsque vous créez une base de données Neptune. 
**Note**  
 Lorsque vous créez une instance de bloc-notes Neptune, deux options vous sont proposées pour accéder au réseau : un accès direct via Amazon SageMaker AI (par défaut) et un accès via un VPC. Quelle que soit l'option, le bloc-notes doit avoir accès à Internet pour récupérer les dépendances des packages afin d'installer le pupitre Neptune. Le manque d'accès à Internet entraînera l'échec de la création d'une instance de bloc-notes Neptune. 
+ Vous pouvez également [installer Jupyter localement](#graph-notebooks-local). 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
<a name="graph-notebooks-workbench"></a>

Neptune propose des types d'instances `T3` et `T4g` que vous pouvez utiliser pour moins de 0,10 USD de l'heure. Les ressources de workbench vous sont facturées SageMaker via Amazon AI, séparément de votre facturation Neptune. Consultez la [page de tarification de Neptune](https://aws.amazon.com/neptune/pricing/). Jupyter et les JupyterLab blocs-notes créés sur le plan de travail Neptune utilisent tous un environnement Amazon Linux 2 et 4. JupyterLab Pour plus d'informations sur la prise en charge des JupyterLab ordinateurs portables, consultez la [documentation Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-jl.html).

Vous pouvez créer un Jupyter ou un JupyterLab bloc-notes à l'aide du plan de travail Neptune de deux manières AWS Management Console  :
+ Utilisez le **menu de configuration du bloc-notes** lors de la création d'un cluster de bases de données Neptune. Pour cela, suivez les étapes décrites dans [Lancement d'un cluster de base de données Neptune à l'aide du AWS Management Console](manage-console-launch-console.md).
+ Utilisez le menu **Blocs-notes** dans le volet de navigation de gauche une fois que le cluster de bases de données a été créé. Pour cela, suivez les étapes ci-dessous.

****Pour créer un Jupyter ou un JupyterLab bloc-notes à l'aide du menu Carnets****

1. [Connectez-vous à la console AWS de gestion et ouvrez la console Amazon Neptune à https://console.aws.amazon.com/neptune/ la maison.](https://console.aws.amazon.com/neptune/home)

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

1. Choisissez **Create Notebook (Créer un bloc-notes)**.

1. Choisissez **Database** comme service Neptune.

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

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

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

1. À moins que vous n'ayez déjà créé un rôle Gestion des identités et des accès AWS (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 base 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.

1. Choisissez **Create Notebook (Créer un bloc-notes)**. Le processus de création peut prendre de 5 à 10 minutes avant que tout soit prêt.

1. **Une fois votre bloc-notes créé, sélectionnez-le, puis choisissez **Open Jupyter** ou Open. JupyterLab**

La console peut créer un rôle Gestion des identités et des accès AWS (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 :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowS3GetObjectS3ListBucket",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::aws-neptune-notebook",
        "arn:aws:s3:::aws-neptune-notebook/*",
        "arn:aws:s3:::aws-neptune-notebook-us-east-1",
        "arn:aws:s3:::aws-neptune-notebook-us-east-1/*"
      ]
    },
    {
      "Sid": "AllowAccessNeptuneDB",
      "Effect": "Allow",
      "Action": "neptune-db:*",
      "Resource": [
        "arn:aws:neptune-db:us-east-1:111122223333:cluster-resource-id/*"
      ]
    }
  ]
}
```

------

Notez que la deuxième déclaration de la politique ci-dessus répertorie une ou plusieurs ressources du [cluster](iam-data-resources.md) Neptune. IDs

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

------
#### [ JSON ]

****  

```
{
  "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](ml-manual-setup-notebooks.md).

### Utiliser Python pour connecter un bloc-notes SageMaker IA générique à Neptune
<a name="graph-notebooks-workbench-python"></a>

Connecter un bloc-notes à Neptune est facile si vous avez installé Neptune magics, mais il est également possible de connecter un SageMaker bloc-notes intelligent à Neptune en utilisant Python, même si vous n'utilisez pas de bloc-notes Neptune.

**Étapes à suivre pour se connecter à Neptune dans un bloc-notes doté d'une SageMaker intelligence artificielle**

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 doté d'une intelligence artificielle ordinaire. SageMaker 

1. É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')
```

## Lancement de graph-notebook en tant qu'Amazon Neptune Workbench via CloudFormation
<a name="graph-notebooks-cloudformation"></a>

Vous pouvez déployer des blocs-notes Amazon Neptune Workbench à l'aide de. CloudFormation Le CloudFormation modèle déploie les blocs-notes Neptune Workbench en tant que ressources et inclut les carnets de base « Getting Started ». Le workbench vous permet de travailler avec votre cluster de base de données Amazon Neptune à l'aide de blocs-notes Jupyter hébergés par Amazon. SageMaker Les ressources de Workbench vous sont facturées via Amazon SageMaker, séparément de votre facturation Neptune.

Le CloudFormation modèle et les instructions détaillées, y compris les exigences relatives aux rôles IAM et les autorisations, sont disponibles dans le référentiel [graph-notebook GitHub ](https://github.com/aws/graph-notebook/tree/main/additional-databases/sagemaker/neptune-notebook-cloudformation).

## Activation CloudWatch des journaux sur les ordinateurs portables Neptune
<a name="graph-notebooks-cw-logs"></a>

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

1. Connectez-vous à la [console SageMaker AI AWS Management Console et ouvrez-la](https://console.aws.amazon.com/sagemaker/home).

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

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

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

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

1. Créez la politique suivante :

------
#### [ JSON ]

****  

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

------

1. Enregistrez cette nouvelle politique et associez-la au rôle IAM indiqué à l'étape 4.

1. Cliquez sur **Démarrer** en haut à droite de la page de détails de l'instance SageMaker AI Notebook.

1. 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'affichera sur la page de détails du bloc-notes de la console SageMaker AI, indiquant que l'instance du bloc-notes a mis plus de 5 minutes à démarrer. CloudWatch les journaux relatifs à ce problème se trouvent sous le nom suivant :

```
(your-notebook-name)/LifecycleConfigOnStart
```

## Configuration de bloc-notes de graphe sur votre ordinateur local
<a name="graph-notebooks-local"></a>

Le projet graph-notebook contient des instructions pour configurer les blocs-notes Neptune sur votre ordinateur local :
+ [Conditions préalables](https://github.com/aws/graph-notebook/#prerequisites)
+ [Jupyter et installation JupyterLab ](https://github.com/aws/graph-notebook/#installation)
+ [Connexion à une base de données orientée graphe](https://github.com/aws/graph-notebook/#connecting-to-a-graph-database).

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
<a name="graph-notebooks-local-with-neptune"></a>

Si vous vous connectez à un cluster Neptune sur le back-end, vous souhaiterez peut-être exécuter les blocs-notes dans Amazon AI. SageMaker [La connexion à Neptune depuis l' SageMaker IA peut être plus pratique que depuis une installation locale des ordinateurs portables, et cela vous permettra de travailler plus facilement avec Neptune ML.](machine-learning.md)

Pour obtenir des instructions sur la configuration des blocs-notes dans SageMaker AI, consultez [Launching graph-notebook using Amazon](https://github.com/aws/graph-notebook/blob/main/additional-databases/sagemaker/README.md). SageMaker

Pour obtenir des instructions sur l'installation et la configuration de Neptune lui-même, consultez [Configuration d'Amazon Neptune](neptune-setup.md).

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](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)).

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](https://www.ssh.com/ssh/tunneling/) (é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](https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune) dans le `additional-databases/neptune` dossier du projet [ GitHub graph-notebook](https://github.com/aws/graph-notebook/).

### Utilisation des blocs-notes Neptune avec des bases de données orientées graphe open source
<a name="graph-notebooks-open-source_databases"></a>

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 TinkerPop Gremlin](https://tinkerpop.apache.org/docs/current/reference/#gremlin-server) et la base de données [Blazegraph](https://blazegraph.com/) en sont des exemples. 

Pour utiliser le serveur Gremlin comme base de données principale, procédez comme suit :
+ Le [bloc-notes de connexion à un dossier du serveur Gremlin](https://github.com/aws/graph-notebook/blob/main/additional-databases/gremlin-server/README.md#connecting-graph-notebook-to-a-gremlin-server). GitHub 
+ Le dossier de [configuration Gremlin du graph-notebook](https://github.com/aws/graph-notebook/#gremlin-server). GitHub 

Pour utiliser une instance locale de [Blazegraph](https://github.com/blazegraph/database) comme base de données principale, procédez comme suit :
+ Consultez les [instructions de démarrage rapide de Blazegraph](https://github.com/blazegraph/database/wiki/Quick_Start) pour comprendre l'installation de base et la configuration requises pour exécuter une instance de Blazegraph.
+ Accédez au GitHub dossier de [configuration Graph-notebook Blazegraph](https://github.com/aws/graph-notebook/#blazegraph) contenant les fichiers et les instructions nécessaires pour configurer une instance Blazegraph locale.
+ Dans le GitHub référentiel, accédez au répertoire « blazegraph » et suivez les instructions fournies pour configurer votre instance Blazegraph locale. Cela inclut les étapes de téléchargement du logiciel Blazegraph, de configuration des fichiers nécessaires et de démarrage du serveur Blazegraph. 

Une fois qu'une instance Blazegraph locale est en cours d'exécution, vous pouvez l'intégrer à votre application en tant que base de données principale pour vos données et requêtes basées sur des graphes. Reportez-vous à la documentation et à l'exemple de code fournis dans le référentiel graph-notebook pour savoir comment connecter votre application à l'instance Blazegraph. 

## Migration des blocs-notes Neptune vers la version 4.x JupyterLab
<a name="migrating-neptune-notebooks-jupyterlab"></a>

Cette section décrit différentes approches pour migrer vos blocs-notes Neptune vers les environnements Amazon Linux 4.x et JupyterLab les versions plus récentes. Pour obtenir des informations détaillées sur le JupyterLab versionnement, consultez [Amazon SageMaker AI JupyterLab Versioning](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-jl.html).

### Approches de migration
<a name="migration-approaches"></a>

#### Nouvelle installation
<a name="fresh-installation"></a>

Si vous n'avez pas besoin de conserver les fichiers ou les configurations d'espace de travail existants, vous pouvez :

1. Création d'une nouvelle instance de bloc-notes exécutant JupyterLab 4.x (notebook-al2-v3)

1. Vérifiez que la nouvelle configuration fonctionne comme prévu

1. Arrêtez et supprimez votre ancienne instance de bloc-notes

#### Migration par transfert de fichiers
<a name="file-transfer-migration"></a>

Cette méthode utilise votre système local ou Amazon S3 comme stockage intermédiaire.

**Idéal pour**  

+ [Accès direct à Internet via la configuration réseau Amazon SageMaker AI](https://docs.aws.amazon.com//sagemaker/latest/dg/appendix-notebook-and-internet-access.html#appendix-notebook-and-internet-access-default).
+ Volume modéré de données à migrer
+ Des fichiers spécifiques à préserver plutôt que des configurations d'espace de travail complètes.

##### Méthode 1 : utilisation de l' JupyterLab interface utilisateur
<a name="method-jupyterlab-ui"></a>

**Idéal pour**  

+ Petit nombre de fichiers
+ Migration sélective de fichiers
+ Préférez les drag-and-drop opérations simples

**Étapes**  


1. Téléchargez des fichiers depuis l' JupyterLab instance source :
   + Naviguez et sélectionnez les fichiers que vous souhaitez migrer vers la nouvelle instance dans JupyterLab
   + Cliquez avec le bouton droit et sélectionnez **Télécharger**

1. Téléchargement vers une nouvelle JupyterLab instance :
   + Utilisez le bouton de téléchargement JupyterLab et sélectionnez tous les fichiers que vous souhaitez copier vers la nouvelle instance
   + (Ou) glissez et déposez des fichiers directement

##### Méthode 2 : utilisation d'Amazon S3
<a name="method-s3"></a>

**Idéal pour**  

+ Grand nombre de fichiers
+ Préservation de la structure de vos dossiers
+ Migrations en masse

**Conditions préalables**  
Assurez-vous que le rôle associé au bloc-notes dispose des autorisations appropriées pour télécharger et accéder au compartiment Amazon S3 :

```
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject", "s3:ListBucket"],
"Resource": ["arn:aws:s3:::your-bucket-name/*", "arn:aws:s3:::your-bucket-name"]
}
```

**Note**  
AWS La [CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/index.html) doit être préinstallée sur les ordinateurs portables SageMaker AI.

**Étapes**  


1. Ouvrez un terminal JupyterLab ou saisissez les commandes du terminal dans une cellule du bloc-notes avec un `!` préfixe.

1. Copiez les fichiers de votre ancienne JupyterLab instance vers S3 à l'aide des commandes [Amazon S3 cp](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html) ou [Amazon S3 sync](https://docs.aws.amazon.com//cli/latest/reference/s3/sync.html) CLI :

   ```
   # using AWS s3 cp
   aws s3 cp /home/ec2-user/SageMaker/your-folder s3://your-bucket/backup/ --recursive
   
   # (OR) using AWS s3 sync
   aws s3 sync /home/ec2-user/SageMaker/your-folder s3://your-bucket/backup/
   ```

1. Copiez des fichiers depuis S3 vers votre nouvelle JupyterLab instance :

   ```
   # using AWS s3 cp
   aws s3 cp s3://your-bucket/backup/ /home/ec2-user/SageMaker/your-folder --recursive
   
   # (OR) using AWS s3 sync
   aws s3 sync s3://your-bucket/backup/ /home/ec2-user/SageMaker/your-folder
   ```

**Note**  
`sync`À utiliser pour gérer les structures de dossiers, les mises à jour incrémentielles et `cp` pour les transferts ponctuels.

#### Migration vers Amazon EFS
<a name="amazon-efs-migration"></a>

**Idéal pour**  

+ [Configuration réseau VPC uniquement](https://docs.aws.amazon.com//sagemaker/latest/dg/appendix-notebook-and-internet-access.html#appendix-notebook-and-internet-access-default-vpc)
+ Grands volumes de données

**Étapes**  
Suivez le blog [Mount an EFS file system to a Amazon SageMaker AI notebook](https://aws.amazon.com/blogs//machine-learning/mount-an-efs-file-system-to-an-amazon-sagemaker-notebook-with-lifecycle-configurations/) pour utiliser un système de fichiers Amazon EFS avec vos instances de bloc-notes.

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

1. Lors de la [création du bloc-notes Neptune dans la console](https://docs.aws.amazon.com//neptune/latest/userguide/graph-notebooks.html#graph-notebooks-workbench), sélectionnez **Créer une nouvelle configuration du cycle de vie sous Configuration du cycle de vie**

1. Dans la configuration du cycle de vie du modèle, ajoutez votre commande de montage Amazon EFS (`sudo mount -t nfs ...`) après le script install.sh

Cela garantit que votre système de fichiers Amazon EFS est automatiquement monté chaque fois que votre instance de bloc-notes démarre ou redémarre. Pour résoudre les problèmes de montage, consultez le [document de résolution des problèmes d'Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html).

**Avantages**  

+ Accès fluide aux fichiers dans toutes les instances
+ Accès direct aux fichiers sans transferts intermédiaires
+ Gestion efficace de grands ensembles de données

#### Migration de volumes Amazon EBS
<a name="ebs-volume-migration"></a>

**Idéal lorsque vous devez conserver**  

+ Configurations complètes de l'espace
+ Fichiers cachés
+ Réglages du système
+ Préservation des configurations complètes de l'espace de travail, des fichiers cachés et des paramètres système

Suivez le [guide de migration basé sur l'AWS SageMaker IA pour les volumes Amazon EBS](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-upgrade.html) afin de transférer des fichiers depuis le volume Amazon EBS associé aux instances de bloc-notes.

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
<a name="graph-notebooks-migrating-to-JL3-prereqs"></a>

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
<a name="graph-notebooks-migrating-to-JL3-lifecycle"></a>

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
<a name="graph-notebooks-migrating-to-JL3-synchronizing"></a>

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-v3**.
+ À 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
<a name="graph-notebooks-migrating-to-JL3-afterwards"></a>

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.

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

1. Arrêtez le bloc-notes.

1. Tâche de sélection **Modifier**.

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

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

1. 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 graphiques devraient désormais être migrés vers une nouvelle instance de bloc-notes Neptune qui utilise l'environnement Amazon Linux 2 et 4. JupyterLab **Ils seront accessibles et gérés sur la page Neptune du AWS Management Console, et vous pouvez maintenant reprendre votre travail là où vous vous êtes arrêté en sélectionnant **Open Jupyter ou Open**. JupyterLab**

## Création d'un bloc-notes Neptune dans les instances Amazon AI SageMaker
<a name="create-notebook-next"></a>

****

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation, développez **Notebook**, puis choisissez **Notebook instances**.

1. Choisissez **Create notebook instance (Créer une instance de bloc-notes)**.

1. Dans **les paramètres de l'instance** du **bloc-notes, sous Nom de l'instance** du bloc-notes, attribuez au bloc-notes un nom préfixé par `aws-neptune-` (par exemple,`aws-neptune-my-test-notebook`).

1. Sous **Identifiant de plate-forme**, sélectionnez **Amazon Linux 2, JupyterLab 4**.

1. Sélectionnez **Configuration supplémentaire**.

1. Sous **Configuration du cycle de vie**, choisissez **Créer une nouvelle configuration du cycle de vie**.

1. Dans **Configuration**, sous **Nom, entrez le nom** de l'instance du bloc-notes indiqué à l'étape 4.

1. Dans **Scripts**, sous **Carnet de démarrage**, remplacez le script existant par celui-ci :

   ```
   #!/bin/bash
   
   sudo -u ec2-user -i <<'EOF'
   
   echo "export GRAPH_NOTEBOOK_AUTH_MODE=IAM" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_SSL=True" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_SERVICE=neptune-db for Neptune, or neptune-graph for Neptune Analytics" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_HOST=(Neptune Analytics graph endpoint, public or private)" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_PORT=8182" >> ~/.bashrc
   echo "export NEPTUNE_LOAD_FROM_S3_ROLE_ARN=" >> ~/.bashrc
   echo "export AWS_REGION=(AWS region)" >> ~/.bashrc
   
   aws s3 cp s3://aws-neptune-notebook-(AWS region)/graph_notebook.tar.gz /tmp/graph_notebook.tar.gz
   rm -rf /tmp/graph_notebook
   tar -zxvf /tmp/graph_notebook.tar.gz -C /tmp
   /tmp/graph_notebook/install_jl4x.sh
   
   EOF
   ```

1. Sélectionnez **Create configuration (Créer une configuration)**.

1. Dans **Autorisations et chiffrement**, sous **Rôle IAM**, sélectionnez le rôle que vous avez créé ci-dessus.

1. En **réseau**, si vous utilisez un point de terminaison de graphe privé :

   1. Sous **VPC**, sélectionnez le VPC dans lequel réside le graphe Neptune Analytics.

   1. Sous **Sous-réseau**, sélectionnez un sous-réseau associé au graphe Neptune Analytics.

   1. Sous **Groupe (s) de sécurité**, sélectionnez tous les groupes de sécurité associés au graphe Neptune Analytics.

1. Choisissez **Create notebook instance (Créer une instance de bloc-notes)**.

1. Après 5 ou 10 minutes, lorsque votre nouveau bloc-notes atteint `Ready` son statut, sélectionnez-le. **Choisissez **Open Jupyter** ou Open. JupyterLab**

## Configuration manuelle des blocs-notes Neptune
<a name="graph-notebook-manual-setup"></a>

 Vous pouvez également utiliser les packages AWS open source disponibles pour graph-notebook et graph-explorer pour configurer un environnement de bloc-notes Neptune. Bien qu'il existe plusieurs manières de configurer un bloc-notes à l'aide de packages open source, l'approche recommandée consiste à : 
+  Configurez [un bloc-notes](https://github.com/aws/graph-notebook) sur votre machine locale et un tunnel SSH Amazon EC2 qui connecte votre machine locale à un cluster Neptune sur le même VPC que l'instance Amazon EC2. 
+  Configurez [Graph-Explorer](https://github.com/aws/graph-explorer) sur une instance Amazon EC2 au sein de votre VPC. 

 Pour obtenir des instructions détaillées sur la configuration des packages open-source [graph-notebooks](https://github.com/aws/graph-notebook) et [graph-explorer](https://github.com/aws/graph-explorer), reportez-vous à la documentation officielle et aux référentiels suivants : AWS GitHub 
+  [https://docs.aws.amazon.com//neptune/latest/userguide/graph-notebooks.html#graph-notebooks-local](https://docs.aws.amazon.com//neptune/latest/userguide/graph-notebooks.html#graph-notebooks-local) 
+  [https://docs.aws.amazon.com//neptune/latest/userguide/get-started-connect-ec2-same-vpc.html](https://docs.aws.amazon.com//neptune/latest/userguide/get-started-connect-ec2-same-vpc.html) 
+  [https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune](https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune) 
+  [https://github.com/aws/graph-explorer/blob/main/additionaldocs/getting-started/README.md#amazon-ec2-setup](https://github.com/aws/graph-explorer/blob/main/additionaldocs/getting-started/README.md#amazon-ec2-setup) 

**Configuration de sécurité**  
 Lorsque vous configurez votre environnement, assurez-vous que les configurations de sécurité suivantes sont définies en conséquence : 
+  **Groupe de sécurité du cluster Neptune** : autorisez le trafic TCP entrant sur le port 8182 depuis le groupe de sécurité de votre instance Amazon EC2. 
+  **Groupe de sécurité des instances Amazon EC2** : configurez les règles HTTPS entrantes pour permettre l'accès à Graph Explorer. 

 Nous vous recommandons d'utiliser un seul groupe de sécurité pour votre cluster Neptune et votre instance Amazon EC2. Cela simplifie la configuration et réduit les problèmes de connectivité potentiels. Cependant, pensez à ajouter une règle d'autoréférencement pour permettre la communication entre les ressources au sein du groupe. 