

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# グラフノートブックでの Amazon Neptune の使用
<a name="graph-notebooks"></a>

Neptune グラフを操作するには、Neptune グラフノートブックを使用するか、 CloudFormation [テンプレート](get-started-cfn-create.md)を使用して新しい Neptune データベースを作成できます。

グラフを初めて使用する、詳細を知り試してみたい、使用経験がありクエリを改良したいという場合に、Neptune [Workbench](#graph-notebooks-workbench) は、グラフアプリケーションを構築する際の生産性を向上させるインタラクティブ開発環境 (IDE) を提供します。Neptune Workbench には、Neptune データベースの操作、クエリの記述、データの視覚化のための使いやすいインターフェイスが用意されています。

 CloudFormation テンプレートを使用して Neptune データベースをセットアップし、 Workbench を使用してグラフアプリケーションを開発することで、追加のツールを必要とせずに Neptune を迅速かつ効率的に開始できます。これにより、基盤となるインフラストラクチャの設定ではなく、アプリケーションの構築に集中できます。

**注記**  
 Amazon SageMaker AI で管理される Neptune ノートブックは、現在、アジアパシフィック (マレーシア) (ap-southeast-5) リージョンでは利用できません。ただし、非マネージド型の代替オプションを使用して Neptune ノートブックをデプロイすることはできます。ノートブックを手動でデプロイするには、「[Neptune ノートブックを手動でセットアップする](#graph-notebook-manual-setup)」を参照してください。

Neptune は、GitHub 上のオープンソースの [Neptune グラフノートブック](https://github.com/aws/graph-notebook)プロジェクトと Neptune ワークベンチで [Jupyter](https://jupyter-notebook.readthedocs.io/en/stable/) および [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/index.html) ノートブックを提供しています。これらのノートブックには、グラフテクノロジーと Neptune について学ぶことができるインタラクティブなコーディング環境でサンプルアプリケーションチュートリアルとコードスニペットが用意されています。これらを使用して、異なるクエリ言語、異なるデータセット、およびバックエンド上の異なるデータベースを使用して、グラフの設定、構成、入力、およびクエリを実行できます。

これらのノートブックはいくつかの方法でホストできます。
+  [Neptune ワークベンチ](#graph-notebooks-workbench)を使用すると、Amazon SageMaker AI でホストされるフルマネージド環境で Jupyter Notebook を実行し、Neptune [グラフノートブックプロジェクト](https://github.com/aws/graph-notebook)の最新リリースを自動的にロードできます。新しい Neptune データベースを作成するときに、[Neptune コンソール](https://console.aws.amazon.com/neptune)でワークベンチを簡単にセットアップできます。
**注記**  
 Neptune ノートブックインスタンスを作成するときのネットワークアクセスのオプションには、Amazon SageMaker AI を介した直接アクセス (デフォルト) と VPC を介したアクセスの 2 つがあります。どちらのオプションでも、ノートブックは Neptune Workbench をインストールするためのパッケージの依存関係を取得するためにインターネットにアクセスする必要があります。インターネットアクセスがなければ、Neptune ノートブックインスタンスの作成は失敗します。
+ [Jupyter をローカルにインストールする](#graph-notebooks-local)こともできます。これにより、Neptune またはオープンソースのグラフデータベースのローカルインスタンスに接続されたラップトップからノートブックを実行することもできます。後者の場合、無料でグラフテクノロジーを好きなだけ試してみることができます。準備ができたら、Neptune が提供するマネージドプロダクション環境にスムーズに移行できます。

## Neptune ワークベンチを使用して Neptune ノートブックをホストする
<a name="graph-notebooks-workbench"></a>

Neptune は、1 時間あたり 0.10 ドル未満で開始できる `T3` および `T4g` インスタンスタイプを提供します。ワークベンチのリソースに対しては、Neptune の請求とは別に、 Amazon SageMaker AI を通じて請求されます。[Neptune の料金ページ](https://aws.amazon.com/neptune/pricing/)をご覧ください。Neptune ワークベンチで作成された Jupyter ノートブックと JupyterLab ノートブックはすべて、Amazon Linux 2 および JupyterLab 4 環境を使用します。JupyterLab ノートブックサポートの詳細については、「[Amazon SageMaker AI ドキュメント](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-jl.html)」を参照してください。

Jupyter ノートブックまたは JupyterLab ノートブックは、次の 2 つの方法のいずれか AWS マネジメントコンソール で の Neptune ワークベンチを使用して作成できます。
+ 新しい Neptune DB クラスターを作成するときは、**[ノートブック設定]** メニューを使用してください。このためには、「[を使用した Neptune DB クラスターの起動 AWS マネジメントコンソール](manage-console-launch-console.md)」のステップに従います。
+ DB クラスターが作成された後、左側のナビゲーションペインの **[ノートブック]** メニューを使用してください。そのためには、以下の手順を実行します。

****[ノートブック]** メニューを使用して Jupyter または JupyterLab ノートブックを作成するには**

1.  AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) で Amazon Neptune コンソールを開きます。

1. 左側のナビゲーションペインで、[**Notebooks (ノートブック)**] を選択します。

1. [**Create notebook (ノートブックの作成)**] を選択します。

1. Neptune サービスとして**[データベース]**を選択します。

1. **[Cluster]** (クラスター) リストで、Neptune DB クラスターを選択します。DB クラスターをまだ作成していない場合は、[**Create cluster (クラスターの作成)**] を選択して作成します。

1. **[ノートブックインスタンスタイプ]** を選択します。

1. ノートブックに名前を付け、必要に応じて説明を入力します。

1. ノートブック用の AWS Identity and Access Management (IAM) ロールを既に作成していない限り、**IAM ロールの作成**を選択し、IAM ロール名を入力します。
**注記**  
以前のノートブック用に作成した IAM ロールを再利用する場合、ロールポリシーに、使用している Neptune DB クラスターにアクセスするための正しいアクセス許可が含まれている必要があります。これを確認するには、`neptune-db:*` アクションのリソース ARN 内のコンポーネントがそのクラスターと一致することを確認します。アクセス許可の設定を誤ると、notebook magic コマンドを実行しようとすると接続エラーが発生します。

1. [**Create notebook (ノートブックの作成)**] を選択します。作成プロセスでは、すべての準備が整うまでに 5 ～ 10 分かかる場合があります。

1. ノートブックが作成されたら、そのノートブックを選択し、**[Jupyter を開く]** または **[JupyterLab を開く]** を選択します。

コンソールでは、ノートブックの AWS Identity and Access Management (IAM) ロールを作成することも、自分でロールを作成することもできます。このロールのポリシーには、次のものを含める必要があります。

------
#### [ 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}}/*"
      ]
    }
  ]
}
```

------

上記のポリシーの 2 番目のステートメントには、1 つ以上の Neptune [クラスターリソース ID](iam-data-resources.md) がリストされていることに注意してください。

また、ロールは次の信頼関係を確立する必要があります。

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

****  

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

------

繰り返しますが、すべての準備ができるまで、5 ～ 10 分かかることがあります。

「[Neptune ML 用の Neptune ノートブックの手動設定](ml-manual-setup-notebooks.md)」で説明されているように、新しいノートブックを Neptune ML と連携するように設定できます。

### Python を使用して汎用 SageMaker AI ノートブックを Neptune に接続する
<a name="graph-notebooks-workbench-python"></a>

Neptune Magics をインストールしていればノートブックを Neptune に接続するのは簡単ですが、Neptune ノートブックを使っていなくても、Python を使って SageMaker AI ノートブックを Neptune に接続することができます。

**SageMaker AI ノートブックセルで Neptune に接続するための手順**

1. Gremlin Python クライアントをインストールします。

   ```
   !pip install gremlinpython
   ```

   Neptune ノートブックは Gremlin Python クライアントをインストールするため、この手順はプレーンな SageMaker AI ノートブックを使用している場合にのみ必要です。

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

**注記**  
3.5.0 より古いバージョンの Gremlin Python クライアントを使用している場合は、次の行を使用します。  

```
connection = DriverRemoteConnection(endpoint,'g',
                 transport_factory=lambda:AiohttpTransport(call_from_event_loop=True))
```
ちょうど次のようになります。  

```
connection = DriverRemoteConnection(endpoint,'g')
```

## を使用して Amazon Neptune Workbench としてグラフノートブックを起動する CloudFormation
<a name="graph-notebooks-cloudformation"></a>

を使用して Amazon Neptune ワークベンチノートブックをデプロイできます CloudFormation。 CloudFormation テンプレートは Neptune ワークベンチノートブックをリソースとしてデプロイし、基本の「開始方法」ノートブックが含まれています。ワークベンチでは、Amazon SageMaker がホストする Jupyter ノートブックを使用して Amazon Neptune データベースクラスターを操作できます。 Amazon SageMaker ワークベンチのリソースに対しては、Neptune の請求とは別に、 Amazon SageMaker を通じて請求されます。

 CloudFormation テンプレートと、IAM ロールの要件とアクセス許可を含む詳細な手順は、[グラフノートブックの GitHub リポジトリ](https://github.com/aws/graph-notebook/tree/main/additional-databases/sagemaker/neptune-notebook-cloudformation)で入手できます。

## Neptune ノートブックでの CloudWatch ログの有効化
<a name="graph-notebooks-cw-logs"></a>

Neptune ノートブックで CloudWatch ログがデフォルトで有効になりました。CloudWatch ログを生成していない古いノートブックを使用している場合は、次の手順に従って手動で有効にします。

1. にサインイン AWS マネジメントコンソール し、[SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker/home)を開きます。

1. 左側のナビゲーションペインで **[ノートブック]** を選択し、**[ノートブックインスタンス]** を選択します。ログを有効にする Neptune ノートブックの名前を探します。

1. そのノートブックインスタンスの名前を選択して、詳細ページに移動します。

1. ノートブックインスタンスが実行中の場合は、ノートブックの詳細ページの右上にある **[停止]** ボタンを選択します。

1. **[アクセス許可と暗号化]** に、**IAM ロール ARN** のフィールドがあります。このフィールドのリンクを選択して、このノートブックインスタンスが実行される IAM ロールに移動します。

1. 以下のポリシーを作成します。

------
#### [ 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. この新しいポリシーを保存し、ステップ 4 で確認した IAM ロールにアタッチします。

1. SageMaker AI ノートブックインスタンスの詳細ページの右上にある **[開始]** をクリックします。

1. ログが流れ始めると、詳細ページの **[ノートブックインスタンス設定]** セクションの左下にある **[ライフサイクル設定]** というラベルの付いたフィールドの下に **[ログを表示]** リンクが表示されます。

ノートブックが起動しない場合、SageMaker AI コンソールのノートブック詳細ページに、ノートブックインスタンスの起動に 5 分以上かかったことを示すメッセージが表示されます。この問題に関連する CloudWatch ログは、次の名前で確認できます。

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

## ローカルマシンでのグラフノートブックの設定
<a name="graph-notebooks-local"></a>

グラフノートブックプロジェクトには、ローカルマシンで Neptune ノートブックを設定する手順が記載されています。
+ [前提条件](https://github.com/aws/graph-notebook/#prerequisites)
+ [Jupyter と JupyterLab のインストール](https://github.com/aws/graph-notebook/#installation)
+ [グラフデータベースへの接続](https://github.com/aws/graph-notebook/#connecting-to-a-graph-database)

ローカルノートブックは、Neptune DB クラスター、またはオープンソースのグラフデータベースのローカルインスタンスまたはリモートインスタンスに接続できます。

### Neptune ノートブックを Neptune クラスターで使用する
<a name="graph-notebooks-local-with-neptune"></a>

バックエンドで Neptune クラスターに接続する場合は、Amazon SageMaker AI でノートブックを実行することをお勧めします。SageMaker AI から Neptune への接続は、ノートブックのローカルインストールよりも便利で、[Neptune ML](machine-learning.md) を使えば、より簡単に作業できます。

SageMaker AI でのノートブックのセットアップ方法については、[Amazon SageMaker を使用してグラフノートブックを起動する](https://github.com/aws/graph-notebook/blob/main/additional-databases/sagemaker/README.md)を参照してください。

Neptune 自体の設定およびセットアップ方法については、[Amazon Neptune のセットアップ](neptune-setup.md) を参照してください。

Neptune ノートブックのローカルインストールを Neptune DB クラスターに接続することもできます。Amazon Neptune DB クラスターは、外部から隔離された Amazon Virtual Private Cloud (VPC) でのみ作成できるため、これはやや複雑になる可能性があります。VPC を外部から VPC に接続するには、さまざまな方法があります。1 つは、ロードバランサーを使用することです。もう 1 つは VPC ピアリングを使用する方法です ([Amazon Virtual Private Cloud ピアリングガイド](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)を参照)。

ただし、ほとんどの人にとって最も便利な方法は、接続して VPC 内に Amazon EC2 プロキシサーバーをセットアップし、[SSH トンネリング](https://www.ssh.com/ssh/tunneling/) (ポートフォワーディングとも呼ばれます) を使い、接続します。セットアップする方法については、[グラフノートブック](https://github.com/aws/graph-notebook/) GitHub プロジェクトの `additional-databases/neptune` フォルダにある[グラフノートブックをローカルで Amazon Neptune に接続する](https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune)を参照してください。

### Neptune ノートブックをオープンソースのグラフデータベースで使用する
<a name="graph-notebooks-open-source_databases"></a>

グラフテクノロジーを無償で開始するには、バックエンドでさまざまなオープンソースデータベースを備えた Neptune ノートブックを使用することもできます。例としては TinkerPop [Gremlin サーバー](https://tinkerpop.apache.org/docs/current/reference/#gremlin-server)、および [Blazegraph](https://blazegraph.com/) データベースがあります。

Gremlin Server をバックエンドデータベースとして使用するには、以下の手順に従ってください。
+ [グラフノートブック Gremlin サーバーに接続する](https://github.com/aws/graph-notebook/blob/main/additional-databases/gremlin-server/README.md#connecting-graph-notebook-to-a-gremlin-server) GitHub フォルダ。
+ [グラフノートブック Gremlin 構成](https://github.com/aws/graph-notebook/#gremlin-server) GitHub フォルダ。

バックエンドデータベースとして [Blazegraph](https://github.com/blazegraph/database) のローカルインスタンスを使用するには、以下の手順に従ってください。
+ [Blazegraph クイックスタート手順](https://github.com/blazegraph/database/wiki/Quick_Start)を確認して、Blazegraph インスタンスの実行に必要な基本的なセットアップと設定を理解します。
+ Blazegraph のローカルインスタンスの設定に必要なファイルと手順を含む[グラフノートブック Blazegraph 設定](https://github.com/aws/graph-notebook/#blazegraph)の GitHub フォルダにアクセスします。
+ GitHub リポジトリ内で「blazegraph」ディレクトリに移動し、提供された手順に従って Blazegraph のローカルインスタンスをセットアップします。この作業には、Blazegraph ソフトウェアのダウンロード、必要なファイルの設定、Blazegraph サーバーの起動の手順が含まれます。

Blazegraph のローカルインスタンスを実行したら、グラフベースのデータとクエリのバックエンドデータベースとしてアプリケーションと統合できます。アプリケーションを Blazegraph インスタンスに接続する方法については、グラフノートブックリポジトリにあるドキュメントとサンプルコードを参照してください。

## Neptune ノートブックを JupyterLab 4.x に移行する
<a name="migrating-neptune-notebooks-jupyterlab"></a>

このセクションでは、Neptune ノートブックを JupyterLab 4.x 以降の Amazon Linux 環境に移行するためのさまざまなアプローチの概要を説明します。JupyterLab バージョニングの詳細については、「[Amazon SageMaker AI JupyterLab Versioning](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-jl.html)」を参照してください。

### 移行アプローチ
<a name="migration-approaches"></a>

#### 新規インストール
<a name="fresh-installation"></a>

既存のワークスペースファイルまたは設定を保持する必要がない場合は、次のことができます。

1. JupyterLab 4.x を実行する新しいノートブックインスタンスを作成する (notebook-al2-v3)

1. サービスが期待どおりに動作することを確認する

1. 古いノートブックインスタンスを停止および削除する

#### File Transfer による移行
<a name="file-transfer-migration"></a>

この方法では、ローカルシステムまたは Amazon S3 を中間ストレージとして使用します。

**次の用途に適しています**  

+ [ Amazon SageMaker AI ネットワーク設定による直接インターネットアクセス](https://docs.aws.amazon.com//sagemaker/latest/dg/appendix-notebook-and-internet-access.html#appendix-notebook-and-internet-access-default)。
+ 中程度のデータ量の移行
+ ワークスペース設定全体ではなく、特定のファイルを保持。

##### 方法 1: JupyterLab UI の使用
<a name="method-jupyterlab-ui"></a>

**次の用途に適しています**  

+ 少数のファイルが対象である場合
+ 移行するファイルが絞られている場合
+ シンプルなドラッグアンドドロップ操作を優先する場合

**Steps**  


1. ソース JupyterLab インスタンスからファイルをダウンロード
   + JupyterLab の新しいインスタンスに移行するファイルに移動して選択します。
   + 右クリックして **[ダウンロード]** を選択

1. 新しい JupyterLab インスタンスにアップロード
   + JupyterLab のアップロードボタンを使用して、新しいインスタンスにコピーするすべてのファイルを選択
   + (または) ファイルを直接ドラッグアンドドロップ

##### 方法 2: Amazon S3 の使用
<a name="method-s3"></a>

**次の用途に適しています**  

+ 多数のファイルが対象である場合
+ フォルダ構造を保持したい場合
+ 一括で移行する場合

**前提条件**  
ノートブックに関連付けられたロールに、Amazon S3 バケットをアップロードしてアクセスするための適切なアクセス許可があることを確認する

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

**注記**  
 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/index.html) は SageMaker AI ノートブックにプリインストールする必要があります。

**Steps**  


1. JupyterLab でターミナルを開くか、`!` プレフィックスが付いたノートブックセルにターミナルコマンドを入力します。

1. [Amazon S3 cp](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html) または [Amazon S3 sync](https://docs.aws.amazon.com//cli/latest/reference/s3/sync.html) CLI コマンドを使用して、古い JupyterLab インスタンスから S3 にファイルをコピーします。

   ```
   # 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. S3 から新しい JupyterLab インスタンスにファイルをコピーします。

   ```
   # 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
   ```

**注記**  
`sync` は、フォルダ構造の維持と増分更新に使用します。`cp` は 1 回限りの転送に使用します。

#### Amazon EFS の移行
<a name="amazon-efs-migration"></a>

**次の用途に適しています**  

+ [VPC のみ](https://docs.aws.amazon.com//sagemaker/latest/dg/appendix-notebook-and-internet-access.html#appendix-notebook-and-internet-access-default-vpc)のネットワーク設定を行う場合
+ データボリュームが大きい場合

**Steps**  
ブログ「[ Mount an EFS file system to an Amazon SageMaker AI notebook ](https://aws.amazon.com/blogs//machine-learning/mount-an-efs-file-system-to-an-amazon-sagemaker-notebook-with-lifecycle-configurations/)」に従い、Amazon EFS ファイルシステムをノートブックインスタンスに使用します。

さらに、Neptune ノートブックを新しい環境に移行する場合に特に適用される手順が他にもいくつかあります。

1. [コンソールで Neptune ノートブックを作成する](https://docs.aws.amazon.com//neptune/latest/userguide/graph-notebooks.html#graph-notebooks-workbench)ときに、ライフサイクル設定で**[新しいライフサイクル設定を作成する]**を選択します。

1. テンプレートライフサイクル設定で、install.sh スクリプトの後に Amazon EFS マウントコマンド (`sudo mount -t nfs ...`) を追加します。

この操作で、ノートブックインスタンスが起動または再起動するたびに Amazon EFS ファイルシステムが自動的にマウントされます。マウントの問題のトラブルシューティングについては、「[Amazon EFS トラブルシューティングドキュメント](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html)」を参照してください。

**利点**  

+ インスタンス間でのファイルへのシームレスなアクセス
+ 中間転送なしの直接ファイルアクセス
+ 大規模なデータセットの効率的な処理

#### Amazon EBS ボリュームの移行
<a name="ebs-volume-migration"></a>

**以下を保持する必要がある場合に最適**  

+ 全体的なワークスペース設定
+ 隠しファイル
+ システム設定
+ 全体的なワークスペース設定、非表示ファイル、システム設定の保持

Amazon [AWS EBS ボリュームの SageMaker AI 移行ガイド](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-upgrade.html)に従って、ノートブックインスタンスに関連付けられた Amazon EBS ボリュームからファイルを転送します。

さらに、Neptune ノートブックを新しい環境に移行する場合に特に適用される手順が他にもいくつかあります。

## Neptune 固有の前提条件
<a name="graph-notebooks-migrating-to-JL3-prereqs"></a>

ソース Neptune ノートブックの IAM ロールに、以下のすべてのアクセス許可を追加します。

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

バックアップに使用する S3 バケットの正しい ARN を必ず指定してください。

## Neptune 固有のライフサイクル設定
<a name="graph-notebooks-migrating-to-JL3-lifecycle"></a>

ブログ記事で説明されているように、(`on-create.sh` から) バックアップを復元するための 2 つ目のライフサイクル設定スクリプトを作成する場合、ライフサイクル名は `aws-neptune-*` 形式に従う必要があります (`aws-neptune-sync-from-s3` など)。これにより、Neptune コンソールでノートブックを作成する際に LCC を選択できるようになります。

## スナップショットから新しいインスタンスへの Neptune 固有の同期
<a name="graph-notebooks-migrating-to-JL3-synchronizing"></a>

スナップショットから新しいインスタンスへの同期に関するブログ記事で説明されている手順には、Neptune 固有の変更点があります。
+ ステップ 4 で、**notebook-al2-v3** を選択します。
+ ステップ 5 で、ソース Neptune ノートブックの IAM ロールを再利用します。
+ ステップ 7 と 8 の間:
  + **[ノートブックインスタンス設定]** で、`aws-neptune-*` 形式を使用する名前を設定します。
  + **[ネットワーク]** 設定アコーディオンを開き、ソースノートブックと同じ VPC、サブネット、およびセキュリティグループを選択します。

## 新しいノートブックが作成された後の Neptune 固有のステップ
<a name="graph-notebooks-migrating-to-JL3-afterwards"></a>

1. ノートブックの **[Jupyter を開く]** ボタンを選択します。メインディレクトリに `SYNC_COMPLETE` ファイルが表示されたら、次のステップに進みます。

1. SageMaker AI コンソールのノートブックインスタンスページに移動します。

1. ノートブックを停止します。

1. **[Edit]** (編集) を選択します。

1. ノートブックインスタンス設定で、ソース Neptune ノートブックの元のライフサイクルを選択して、**[ライフサイクル設定]** フィールドを編集します。これは EBS バックアップライフサイクルではないことに注意してください。

1. **[ノートブック設定の更新]** を選択します。

1. ノートブックを再起動します。

ブログ記事で説明されている手順に対するここに記載されている変更により、グラフノートブックを Amazon Linux 2 および JupyterLab 4 環境を使用する新しい Neptune ノートブックインスタンスに移行する必要があります。の Neptune ページにアクセスおよび管理するために表示され AWS マネジメントコンソール、**Open Jupyter** または **Open JupyterLab** を選択して、中断した場所から作業を続行できるようになりました。

## Amazon SageMaker AI インスタンスで Neptune ノートブックを作成する
<a name="create-notebook-next"></a>

****

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. ナビゲーションペインで **[ノートブック]** を展開し、それから **[ノートブックインスタンス]** を選択します。

1. **[Create notebook instance]** (ノートブックインスタンスの作成) を選択します。

1. **[ノートブックインスタンス設定]** の **[ノートブックインスタンス名]** で、`aws-neptune-` というプレフィックス (例: `aws-neptune-my-test-notebook`) が付いた名前をノートブックに付けます。

1. **[プラットフォーム識別子]** で、**Amazon Linux 2、JupyterLab 4 **を選択します。

1. **[追加設定]** を選択します。

1. **[ライフサイクル設定]** で、**[新しいライフサイクル設定の作成]** を選択します。

1. **[設定]** で、**[名前]** にステップ 4 のノートブックインスタンス名を入力します。

1. **[スクリプト]** の **[ノートブックの開始]** で、既存のスクリプトを次のように置き換えます。

   ```
   #!/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. [**起動設定の作成**] を選択します。

1. **[アクセス許可と暗号化]** の **[IAM ロール]** で、上記で作成したロールを選択します。

1. **[ネットワーク]** でプライベートグラフエンドポイントを使用している場合

   1. **[VPC]** で、Neptune Analytics のグラフが存在する VPC を選択します。

   1. **[サブネット]** で、Neptune Analytics のグラフに関連付けられたサブネットを選択します。

   1. **[セキュリティグループ]** で、Neptune Analytics のグラフに関連付けられているすべてのセキュリティグループを選択します。

1. **[Create notebook instance]** (ノートブックインスタンスの作成) を選択します。

1. 5 分から 10 分後、新しいノートブックが `Ready` ステータスになったら選択します。**[Jupyter で開く]** または **[JupyterLab で開く]** を選択します。

## Neptune ノートブックを手動でセットアップする
<a name="graph-notebook-manual-setup"></a>

 graph-notebook および graph-explorer で使用できる AWS オープンソースパッケージを使用して、Neptune ノートブック環境を設定することもできます。オープンソースパッケージを使用してノートブックをセットアップする方法は複数ありますが、推奨されるアプローチは次のとおりです。
+  ローカルマシンに[グラフノートブック](https://github.com/aws/graph-notebook)を設定し、ローカルマシンを Amazon EC2 インスタンスと同じ VPC 上の Neptune クラスターに接続する Amazon EC2 SSH トンネルを設定します。
+  VPC 内の Amazon EC2 インスタンスに [グラフエクスプローラー](https://github.com/aws/graph-explorer)を設定します。

 オープンソースの [グラフノートブック](https://github.com/aws/graph-notebook)と[グラフエクスプローラー](https://github.com/aws/graph-explorer)パッケージを設定する詳細な手順については、以下の公式 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) 

**セキュリティ設定**  
 環境設定時は、次のセキュリティ設定が適切に設定されていることを確認してください。
+  **Neptune クラスターセキュリティグループ** - Amazon EC2 インスタンスのセキュリティグループからのポート 8182 での受信 TCP トラフィックを許可します。
+  **Amazon EC2 インスタンスセキュリティグループ** - グラフエクスプローラーのアクセスが有効になるようにインバウンド HTTPS ルールを設定します。

 Neptune クラスターと Amazon EC2 インスタンスの両方に単一のセキュリティグループを使用することをお勧めします。これにより設定が簡素化され、接続に関する潜在的な問題が軽減されます。ただし、グループ内リソース間の通信を許可する自己参照ルールを必ず追加してください。