Neptune グラフノートブックを使用して、すぐに使用を開始する - Amazon Neptune

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

Neptune グラフノートブックを使用して、すぐに使用を開始する

Neptune グラフを操作するために Neptune グラフノートブックを使用する必要はなく、必要な場合は、AWS CloudFormation テンプレートを使用して新しい Neptune データベースをすぐに作成できます。

同時に、グラフを初めて使用する場合や、学習して試してみたい場合、または、経験豊富でクエリを改良したい場合にも、Neptune ワークベンチは、グラフアプリケーションを構築する際の生産性を向上させるインタラクティブ開発環境 (IDE) を提供します。

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

これらのノートブックはいくつかの方法でホストできます。

  • Neptune ワークベンチを使用すると、Amazon でホストされているフルマネージド環境で Jupyter Notebook を実行し SageMaker、Neptune グラフノートブックプロジェクトの最新リリースを自動的にロードできます。新しい Neptune データベースを作成するときに、Neptune コンソールでワークベンチを簡単にセットアップできます。

    注記

    Neptune ノートブックインスタンスを作成する場合、ネットワークアクセスには、Amazon 経由の直接アクセス SageMaker (デフォルト) と VPC 経由のアクセスの 2 つのオプションが用意されています。どちらのオプションでも、ノートブックは Neptune ワークベンチをインストールするためのパッケージの依存関係を取得するためにインターネットにアクセスする必要があります。インターネットにアクセスできないと、Neptune ノートブックインスタンスの作成が失敗します。

  • Jupyter をローカルにインストールすることもできます。これにより、Neptune またはオープンソースのグラフデータベースのローカルインスタンスに接続されたラップトップからノートブックを実行することもできます。後者の場合、無料でグラフテクノロジーを好きなだけ試してみることができます。準備ができたら、Neptune が提供するマネージドプロダクション環境にスムーズに移行できます。

Neptune ワークベンチを使用して Neptune ノートブックをホストする

Neptune は、1 時間あたり 0.10 ドル未満で開始できる T3 および T4g インスタンスタイプを提供します。Neptune の請求とは別に SageMaker、Amazon を通じてワークベンチリソースの料金が請求されます。Neptune の料金ページをご覧ください。Neptune ワークベンチで作成された Jupyter と JupyterLab ノートブックはすべて Amazon Linux 2 および JupyterLab 3 環境を使用します。 JupyterLab ノートブックのサポートの詳細については、「Amazon SageMaker ドキュメント」を参照してください。

Jupyter または JupyterLab ノートブックは、次の 2 つの方法のいずれか AWS Management Console で の Neptune ワークベンチを使用して作成できます。

  • 新しい Neptune DB クラスターを作成するときは、[ノートブック設定] メニューを使用してください。このためには、「AWS Management Console を使用して Neptune DB クラスターを起動する」のステップに従います。

  • DB クラスターが作成された後、左側のナビゲーションペインの [ノートブック] メニューを使用してください。そのためには、以下の手順を実行します。

JupyterLab ノートブックメニューを使用して Jupyter またはノートブックを作成するには
  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/neptune/home で Amazon Neptune コンソールを開きます。

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

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

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

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

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

  7. ノートブック用の AWS Identity and Access Management (IAM) ロールを既に作成していない限り、IAM ロール の作成 を選択し、IAM ロール名を入力します。

    注記

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

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

  9. ノートブックを作成したら、ノートブックを選択し、Jupyter を開く または を開く JupyterLabを選択します。

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

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

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

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

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

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

Neptune ML 用の Neptune ノートブックの手動設定」で説明されているように、新しいノートブックを Neptune ML と連携するように設定できます。

Python を使用して汎用 SageMaker ノートブックを Neptune に接続する

Neptune マジックをインストールしている場合、ノートブックを Neptune に接続するのは簡単ですが、Neptune SageMaker ノートブックを使用していない場合でも、Python を使用してノートブックを Neptune に接続することもできます。

SageMaker ノートブックセルで Neptune に接続する手順
  1. Gremlin Python クライアントをインストールします。

    !pip install gremlinpython

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

  2. 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')

Neptune ノートブックでの CloudWatch ログの有効化

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

  1. にサインイン AWS Management Console し、SageMaker コンソール を開きます。

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

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

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

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

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

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

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

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

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

(your-notebook-name)/LifecycleConfigOnStart

ローカルマシンでのグラフノートブックの設定

グラフノートブックプロジェクトには、ローカルマシンで Neptune ノートブックを設定する手順が記載されています。

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

Neptune ノートブックを Neptune クラスターで使用する

バックエンドで Neptune クラスターに接続する場合は、Amazon でノートブックを実行することをお勧めします SageMaker。から Neptune に接続すると、ノートブックのローカルインストールよりも SageMaker 便利になり、Neptune ML をより簡単に操作できるようになります。

でノートブックを設定する方法については SageMaker、「Amazon を使用したグラフノートブックの起動 SageMaker」を参照してください。

Neptune 自体の設定およびセットアップ方法については、Neptune の設定 を参照してください。

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

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

Neptune ノートブックをオープンソースのグラフデータベースで使用する

グラフテクノロジーを無償で開始するには、バックエンドでさまざまなオープンソースデータベースを備えた Neptune ノートブックを使用することもできます。例としては、 TinkerPop Gremlin サーバーBlazegraph データベースがあります。

Gremlin Server をバックエンドデータベースとして使用するには、次の手順に従います。

バックエンドデータベースとして Blazegraph のローカルインスタンスを使用するには、次の手順に従ってください。

Neptune ノートブックを Jupyter から JupyterLab 3 に移行する

2022 年 12 月 21 日より前に作成された Neptune ノートブックは Amazon Linux 1 環境を使用しています。この AWS ブログ記事「Amazon Linux 2 で Amazon Notebook インスタンスに作業を移行する」で説明されているステップを実行することで、その日付より前に作成された古い Jupyter Notebooks を JupyterLab 3 で新しい Amazon Linux 2 環境に移行できます。 SageMaker

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

Neptune 固有の前提条件

ソース 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 固有のライフサイクル設定

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

スナップショットから新しいインスタンスへの Neptune 固有の同期

スナップショットから新しいインスタンスへの同期に関するブログ記事で説明されている手順には、Neptune 固有の変更点があります。

  • ステップ 4 で、notebook-al2-v2 を選択します。

  • ステップ 5 で、ソース Neptune ノートブックの IAM ロールを再利用します。

  • ステップ 7 と 8 の間:

    • [ノートブックインスタンス設定] で、aws-neptune-* 形式を使用する名前を設定します。

    • [ネットワーク] 設定アコーディオンを開き、ソースノートブックと同じ VPC、サブネット、およびセキュリティグループを選択します。

新しいノートブックが作成された後の Neptune 固有のステップ

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

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

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

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

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

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

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

ブログ記事で説明されている手順にここで説明する変更を加えると、グラフノートブックを Amazon Linux 2 および JupyterLab 3 環境を使用する新しい Neptune ノートブックインスタンスに移行できるようになります。の Neptune ページでアクセスと管理のために表示され AWS Management Console、オープン Jupyter またはオープン を選択して、中断した場所から作業を続行できるようになりました JupyterLab