Amazon Neptune よくある質問

全般

Amazon Neptune は、グラフデータベースエンジン、グラフ分析データベースエンジン、グラフ機械学習 (ML)、視覚化ツールを含むサービスで、個別に使用することも、一緒に使用することもできます。Neptune サービスにより、AWS 上のグラフデータを簡単に操作できます。Amazon Neptune Database では、優れたスケーラビリティと可用性を実現するように設計されたサーバーレスグラフデータベースを使用して、最も要求の厳しいアプリケーション向けに、1 秒あたり 100,000 件以上のクエリでグラフをスケールできます。Amazon Neptune Analytics を使用すると、大量のグラフデータをすばやく処理することで、インサイトを得て傾向を見つけることができます。一般的なグラフ分析アルゴリズムを呼び出すことで、数秒で結果を得ることができます。

Amazon Neptune Database は、エンタープライズ機能と統合のフルセットを備えた専用のグラフデータベースを提供します。Neptune Database は、高可用性、ディザスタリカバリ、動的スケーリング、およびエンタープライズアプリケーションに必要なその他の機能を必要とするミッションクリティカルなグラフアプリケーションをサポートします。

Neptune Analytics は、大量のグラフデータをすばやく分析してインサイトを得て傾向を見つけるための分析データベースエンジンです。

Neptune ML は、Neptune Database の機能であり、グラフ用の機械学習手法であるグラフニューラルネットワーク (GNN) を使用して、グラフデータを用いて高速で、より正確な予測を行います。

ミッションクリティカルなシステムを大規模に構築するには、Neptune デベロッパーツールを備えた Neptune Database が最適です。製品レコメンデーションエンジン、ID およびアクセス管理システム、コンプライアンスシステムなどのシステムでは、Neptune Global Database で利用できる地理的に分散した機能が必要になることがよくあります。Neptune Database には数百億のリレーションシップが保存され、1 秒間に何十万ものインタラクティブなグラフクエリを処理できます。

データを操作してインサイトを引き出すには、Neptune ノートブックを搭載した Neptune Analytics が最適です。これらの機能により、ユーザーは Pandas、Jupyter、Python などの使い慣れたツールを使用してデータを操作し、不正行為、違法行為、最適化の機会などを示すデータ内の相互作用や行動パターンを発見して特定できます。

Neptune Analytics の一般的なユースケースには、エフェメラル分析、低レイテンシー分析クエリの実行、組み込みグラフアルゴリズムの実行、ベクトル類似性検索の実行などがあります。ベクトル類似検索により、埋め込みによって実現する高密度のデータ表現を検索する検索拡張生成 (RAG) アプリケーションを構築するのに Neptune Analytics を使用できます。ベクトル検索の結果は、コンテキストを認識したグラフのデータ表現と組み合わせて、リレーションシップに関する豊富なコンテキスト情報を提供できます。

Neptune ML は、最新の GNN を使用してリレーションシップや分類の設計、構築、最適化、予測に使用できます。特徴テーブルを拡張する場合、Neptune Analytics を使用して、クラスタリング、中心性、経路探索などの一般的なアルゴリズムを使用して、接続されたデータから重要な特徴を導き出すことができます。

はい。「Amazon Neptune SLA」を参照してください。

Neptune Database

はい。「Amazon Neptune SLA」を参照してください。Neptune Database は、プロパティグラフデータモデル用にオープンソースの Apache TinkerPop Gremlin グラフトラバーサル言語と openCypher クエリ言語の 2 つのクエリ言語をサポートしています。また、リソース記述フレームワーク (RDF) データモデルについては、Neptune は W3C オープンスタンダード SPARQL クエリ言語をサポートしています。

はい。各 Neptune Database クラスターは、プロパティグラフデータと RDF データの両方を保存できます。Neptune は Gremlin エンドポイント (HTTPS と WebSocket)、openCypher エンドポイント (HTTPS と Bolt)、および SPARQL 1.1 プロトコル REST エンドポイントを提供しています。

プロパティグラフの場合、データの入力に使用された言語に関係なく、同じデータに対して Gremlin クエリまたは openCypher クエリを実行できます。一部のワークロードには Gremlin を使用し、他のワークロードには openCypher を使用する方が便利な場合があります。プロパティグラフデータ (Gremlin または openCypher) のクエリを RDF データに対して実行したり、その逆を行ったりすることはできません。

Neptune Database では、HTTPS と WebSocket の両方の接続をサポートする Apache TinkerPop Gremlin Server を提供しています。Neptune のインスタンスをプロビジョニングすると、既存の TinkerPop アプリケーションを設定して、サービスによって提供されるエンドポイントを使用できます。「Accessing the Graph via Gremlin」も参照してください。

いいえ。Neptune Gremlin Server では、WebSockets と HTTPS REST の両方の接続を使って Apache TinkerPop 互換性のあるクライアントがサポートされます。Neptune Database の最新バージョンは TinkerPOP 3.6.x をサポートしています。詳細については、ドキュメントを参照してください。

Neptune は openCypher クエリ言語をサポートしているため、Bolt プロトコルまたは HTTPS を使用するほとんどの Cypher または Neo4j ワークロードを Neptune に移行できます。 openCypher アプリケーションの移行方法の詳細については、ドキュメントの「移行ガイド」をご覧ください。

Neptune では、SPARQL 1.1 Protocol を実装する HTTPS REST エンドポイントを利用できます。サービスインスタンスをプロビジョニングすると、SPARQL エンドポイントを指定するようにアプリケーションを設定できます。「Accessing the Graph via SPARQL」も参照してください。

いいえ。Amazon Neptune の SPARQL エンドポイントは、SPARQL 1.1 Protocol をサポートするすべてのクライアントで動作します。

はい。Neptune は ACID に準拠しており、プライマリライターインスタンスでは即時一貫性があり、リードレプリカインスタンスでは最終的な整合性が保たれます。

Neptune Database は、専用の高パフォーマンスグラフデータベースエンジンです。インスタンスライフサイクルマネジメント、保管中のデータに対する AWS Key Management Service (AWS KMS) キーとセキュリティグループを使った暗号化などのある種のマネジメント機能について、Neptune では Amazon Relational Database Service (Amazon RDS) と共有するオペレーションテクノロジーを利用します。

Neptune Database は、高スループットで低レイテンシーのグラフクエリを必要とするグラフアプリケーションをサポートするように設計されています。最大 15 個のリードレプリカをサポートすることで、Neptune Database は毎秒 100,000 件のクエリをサポートします。

はい。Amazon Neptune では、Gremlin、openCypher、および SPARQL クエリにクエリ最適化を使用しています。 詳細については、「Amazon Neptune 代替クエリエンジン (DFE)」を参照してください。

Neptune は、専用の高パフォーマンスグラフデータベースエンジンです。Neptune では、グラフデータを効率的に保存およびナビゲートし、スケールアップされたインメモリ最適化アーキテクチャを使用して、大規模なグラフに対する迅速なクエリ評価を可能にします。

料金の最新情報については、料金ページを参照してください。

Neptune Database が利用できる AWS リージョンの詳細については、AWS リージョン表をご覧ください。

いいえ。Neptune Database のレプリケーションは料金に含まれています。料金はデータベースがデータベースレイヤーで消費したストレージに応じて発生します。Neptune 仮想化ストレージレイヤーで消費したストレージではありません。

Neptune Database はコストを削減し、リソースが読み取り/書き込みトラフィックを提供するために利用可能になるように不要な I/O オペレーションを削除するよう設計されていました。書き込み I/O は、ストレージレイヤーが耐久性の高い書き込みを実現するためにトランザクションログレコードをプッシュする時にのみ消費します。書き込み I/O オペレーションは 4 KB 単位でカウントされます。例えば、トランザクションログレコードが 1,024 バイトの場合、1 I/O オペレーションとカウントされます。

ただし、同時書き込みオペレーションでトランザクションログが 4 KB 未満の場合、I/O 消費を最適化するため Neptune データベースエンジンによってまとめてバッチ処理されます。従来のデータベースエンジンと違い、Neptune はストレージレイヤーに更新データベースページをプッシュせず、結果的に I/O 消費を節約しています。

ストレージの下限は 10 GiB です。データベースの使用量に応じて、Neptune ストレージは 10 GB 単位で最大 128 TiB まで、データベースのパフォーマンスに影響を与えずに拡張されます。ストレージを事前にプロビジョニングする必要はありません。

データベースインスタンスに割り当てるコンピューティングリソースは、AWS マネジメントコンソールから任意のデータベースインスタンスを選択して [Modify] ボタンをクリックすることでスケールできます。メモリおよび CPU リソースは DB インスタンスのクラスを変更することで調整できます。

DB インスタンスのクラスを変更すると、その変更は指定したメンテナンスウィンドウの間に適用されます。あるいは、Apply Immediately フラグを使用して、スケーリングリクエストをすぐに適用することができます。これらのオプションはいずれも、スケーリング操作が実行されている数分間の可用性に影響を与えます。保留中の他のシステム変更も適用されることにご注意ください。

Amazon Neptune Serverless を使用すると、データベースの容量を自動的にスケーリングできます。Neptune Serverless を使用すると、キャパシティを管理および最適化しなくても、グラフワークロードを実行して即座にスケーリングできます。Neptune Serverless は、グラフデータベースを実行するためのコンピューティングリソースとメモリリソースを自動的に決定してプロビジョニングし、ワークロードの変化する要件に基づいて容量をスケールして、一貫したパフォーマンスを維持します。

はい、Neptune はインスタンスのリードレプリカの自動スケーリングをサポートしています。接続やワークロード要件の変化に応じて、リードレプリカを自動的に追加または削除するように自動スケーリングを設定できます。詳細については、ドキュメントを参照してください。

Neptune Database インスタンスでは常に自動バックアップが有効です。バックアップはデータベースのパフォーマンスに影響を与えません。

はい。また、スナップショットを作成する際にパフォーマンスに影響はありません。データベーススナップショットからデータを復元する場合は新しくデータベースインスタンスを作成する必要があることに注意してください。

Neptune Database では、3 つのアベイラビリティーゾーンにデータコピーが自動的に保持され、データ損失のない正常なアベイラビリティーゾーンのデータベースの復旧が自動的に試みられます。万一、Neptune ストレージでデータが利用不可になった場合には、データベーススナップショットから復元するか、ポイントインタイムの復元オペレーションを新しいインスタンスに実行できます。ポイントインタイムの復元オペレーションを実行する場合、最新の復元可能時間は直近で 5 分前までです。

データベースインスタンスを削除する際に、最後のデータベーススナップショットを作成することができます。データベーススナップショットを作成した場合、後日そのスナップショットを使用して、削除したデータベースインスタンスを復元することができます。Neptune は、データベースインスタンスが削除された後も、ユーザーが作成した最終的なデータベーススナップショットと手動で作成されたその他すべてのデータベーススナップショットを保持します。データベースインスタンスが削除された後はデータベーススナップショットのみが保持されます (例えば、ポイントインタイムの復元のために作成された自動バックアップは保持されません)。

はい。Neptune では、データベースのスナップショットを作成できます。それを使用して、後でデータベースを復元できます。スナップショットは別の AWS アカウントと共有でき、受取人アカウントの所有者は、そのスナップショットを使用して、お客様のデータを含むデータベースを復元できます。スナップショットを公開して、誰でもお客様の公開データを含むデータベースを復元できるように選択することもできます。この機能を使用して、異なる AWS アカウントを持つさまざまな環境 (本番、開発/テスト、ステージングなど) でデータを共有できます。また、メインの AWS アカウントが侵害された場合でも、すべてのデータのバックアップを別個のアカウントで安全に保持できます。

アカウント間のスナップショットの共有に対して課金されることはありません。しかし、スナップショット自体、および共有スナップショットから復元するデータベースに対して課金される場合があります。Amazon Neptune の料金について詳細をご覧ください。

自動データベーススナップショットの共有はサポートされていません。自動スナップショットを共有するには、手動でスナップショットのコピーを作成してから、コピーを共有する必要があります。

手動のスナップショットを、最大 20 個の AWS アカウント ID と共有できます。20 個を超えるアカウントでスナップショットを共有する場合は、スナップショットを公開して共有するか、クォータを引き上げるためにサポートにご連絡ください。

Neptune Database スナップショットは、Neptune が利用可能な AWS リージョンで共有できます。

いいえ。共有された Neptune Database スナップショットは、それを共有したアカウントと同じリージョン内のアカウントからのみアクセスできます。

はい。暗号化された Amazon Neptune Database スナップショットは共有できます。

いいえ。Amazon Neptune スナップショットはサービス内でのみ使えます。

Neptune Database クラスターは、少なくとも 2 つのアベイラビリティーゾーンに少なくとも 2 つのサブネットがある Amazon VPC でのみ作成できます。Neptune は、クラスターインスタンスを少なくとも 2 つのアベイラビリティーゾーンに分散させることで、アベイラビリティーゾーンに障害が発生した場合でも、DB クラスターにインスタンスが確実に存在するようにします。Neptune DB クラスターのクラスターボリュームは常に 3 つのアベイラビリティーゾーンにまたがり、データ損失の可能性が低い耐久性の高いストレージを提供します。Neptune は最大 2 つまでのデータのコピー損失をデータベースの書き込み能力に影響せずに透過的に処理し、最大 3 つまでのコピー損失を読み込み能力に影響せずに処理します。また、Neptune ストレージは自己修復機能を備えています。データブロックおよびディスクはエラー検出のために継続的にスキャンされ、自動的に修復されます。

他のデータベースと違い、データベースのクラッシュ後、Neptune では、データベースを利用できるようにする前に最後のデータベースチェックポイント (通常 5 分前) から REDO ログを再生して、すべての変更が適用されていることを確認する必要はありません。これにより、多くの場合データベースの再起動時間を 60 秒以内に短縮します。また Neptune はバッファキャッシュをデータベース処理から除外し、再起動時にすぐ利用できるようにします。そのため、ブラウンアウトを避けるためにキャッシュが再生成されるまでアクセスを調整する必要がなくなります。

Neptune では、プライマリインスタンスと同じ基本ボリュームを共有するリードレプリカがサポートされています。プライマリにより実行された更新は、すべての Amazon Neptune レプリカで確認できます。1 つの Neptune クラスターには、1 つのライターインスタンスと最大 15 のリードレプリカを設定できます。ライターインスタンスに障害が発生した場合、リードレプリカは自動的にライターインスタンスに昇格されます。

はい。Neptune Database は、Neptune グローバルデータベースを使用するように Neptune クラスターを設定することで、クロスリージョンレプリケーションをサポートします。

はい。クラスターの各インスタンスに昇格優先階層を割り当てることができます。プライマリインスタンスが失敗した場合、Neptune Database は最も高い優先度のレプリカをプライマリに昇格させます。複数のレプリカ間の競合が同じ優先度の階層に存在する場合、Neptune が同じサイズのそのレプリカをプライマリインスタンスとして昇格させます。

インスタンスへの優先階層はいつでも変更できます。優先階層を変更するだけでは、フェイルオーバーはトリガーされません。

プライマリインスタンスに昇格させたくないレプリカを低い優先階層に割り当てることができます。しかし、クラスターの高い優先度のレプリカが正常でない、または何らかの理由により利用できない場合、Neptune は低い優先階層のレプリカを昇格します。

基盤となるストレージをプライマリインスタンスと共有する Neptune レプリカを追加できます。任意の Neptune レプリカをデータを損失することなくプライマリに昇格できるため、プライマリデータベースインスタンスに障害が発生した際の耐障害性を向上するために使用できます。データベースの可用性を向上させるには、1 個から 15 個のレプリカを作成するだけで、データベースの停止時に Neptune によってフェイルオーバーのプライマリ対象としてそれらのレプリカが自動的に認識されます。

フェイルオーバーは Amazon Neptune Database によって自動的に処理されるため、アプリケーションは管理上の手動介入なく、可能な限り迅速にデータベースオペレーションを再開できます。同一の、または異なるアベイラビリティーゾーンに Amazon Neptune レプリカを作成している場合、フェイルオーバーが発生すると Amazon Neptune では、データベースプライマリエンドポイントの Canonical Name Record (CNAME) を健全なレプリカに反転させます。このレプリカが新しいプライマリに昇格します。 フェイルオーバーは開始から終了まで通常 30 秒以内に完了します。

また、リードレプリカのエンドポイントでは、フェイルオーバー中に CNAME の更新は不要です。Neptune レプリカを作成していない場合 (単一のインスタンスの場合など)、Neptune では元のインスタンスと同じアベイラビリティーゾーンに新しいデータベースインスタンスの作成を試行します。この処理に失敗した場合、Neptune は異なるアベイラビリティーゾーンに新しいデータベースインスタンスの作成を試行します。通常、フェイルオーバーは 15 分以内で完了します。接続が切断された場合、アプリケーションによるデータベースリクエストを再試行する必要があります。

Neptune Database ではプライマリインスタンスの問題を自動的に検出し、Neptune Database レプリカへの読み取り/書き込みトラフィックのルーティングを開始します。このフェイルオーバーは平均 30 秒以内に完了します。さらに、Neptune Database レプリカが処理していた読み取りトラフィックは一時的に中断されます。

Neptune Database レプリカはプライマリインスタンスと同じデータボリュームを共有しているため、実質的にレプリケーションラグはありません。通常、ラグは数十ミリ秒です。

はい。Amazon Neptune Database のデータベースインスタンスはすべて必ず VPC で作成されます。Amazon VPC では、お客様がデータセンターで運用しているような従来のネットワークに非常によく似た仮想ネットワークのトポロジーを定義することができます。これにより、どのユーザーが Neptune データベースにアクセスできるかを完全に制御できます。

現在のところ、暗号化されていない既存の Neptune インスタンスの暗号化はサポートされていません。暗号化されていない既存のデータベースで Neptune 暗号化を使用するには、暗号化を有効にした新規データベースインスタンスを作成し、データを移行してください。

Neptune データベースにアクセスするには、VPC でのデータベース作成時に入力した HTTPS/ ポートを使用する必要があります。これにより、データに対するセキュリティが一層強化されます。Neptune データベースに接続する際の詳細な手順は、「Amazon Neptune ユーザーガイド」に記載されています。

Neptune Analytics

オープンソースプロジェクトである OpenCyper を使用できます。OpenCyper では、グラフ処理、Neptune Analytics アルゴリズムの呼び出し、およびベクトル類似検索に Cypher 言語を簡単に使用できます。

Neptune Analytics は、グラフの大部分またはグラフ全体にアクセスするグラフクエリに適しています。Neptune Analytics はインメモリエンジンであり、このような大きなグラフをメモリに読み込んで、数秒で応答を返すことができます。 さらに、Neptune Analytics は、ソーシャルインフルエンサーのランク付け、不正行為のあるグループ検知、ネットワークアクティビティのパターンの検出などの操作に、一般的なグラフ分析アルゴリズムのライブラリを使用して、1 秒間に何千もの分析クエリを処理できます。生成系 AI アプリケーションの場合、Neptune Analytics はベクトル埋め込みを保存し、ベクトル類似検索を行えます。

既存の Neptune クラスターをデータソースとして選択できます。このクラスターは Neptune Analytics に自動的に読み込まれます。

Neptune Analytics は、経路検索、コミュニティの検出 (クラスタリング)、重要なデータの識別 (中心性)、および類似性の定量化のための 12 のアルゴリズムをサポートしています。経路探索アルゴリズムは、サプライチェーン最適化のためのルートプランニングなどのユースケースに使用され、ページランクなどの中心性アルゴリズムは、グラフ中で最も影響力のある販売者を識別します。同様に、コネクテッドコンポーネント、クラスタリング、中心性アルゴリズムなどのアルゴリズムを不正検出のユースケースに使用して、接続されたネットワークが友だちのグループなのか、それとも連携した詐欺師の集まりによって形成された詐欺集団なのかを判断できます。

はい、Neptune Analytics は ACID に準拠しており、強い一貫性があります。

Neptune Analytics は、グラフデータに保存されている埋め込み (最大 65,000 ディメンション) のベクトル検索インデックスをサポートしています。

Neptune Analytics は、グラフデータに保存されている埋め込みに対して 1 つのベクトル検索インデックスをサポートしています。

いいえ、Neptune Analytics では別のベクトルデータベースは必要ありません。Neptune Analytics は、グラフデータに保存されている埋め込み (最大 65,000 ディメンション) のベクトル検索インデックスをサポートしています。Neptune Analytics では、グラフクエリの記述に使用される openCypher クエリ言語から直接呼び出すことができる効率的なベクトル検索を行えます。

Neptune Analytics はベクトルを保存し、ベクトルインデックス作成と類似検索を実行するための Hierarchical Navigable Small Worlds (HNSW) をサポートしています。異なるインデックスや類似検索アルゴリズムを使用する場合や、異なるプロパティに基づいて構築された複数のインデックスを使用する場合は、別のベクトルデータベースを使用する必要があります。

はい、Amazon VPC で Neptune Analytics を使用できます。プライベートアクセスの場合は、「パブリックアクセス」を無効にして (デフォルト) グラフを作成し、VPC のサブネットを指定できます。Neptune Analytics は、VPC 内のグラフごとにリクエスタマネージド型 VPC インターフェイスエンドポイントを作成します。セキュリティグループとエンドポイントポリシーをエンドポイントにアタッチすることはできますが、エンドポイントを削除することはできません。標準の VPC インターフェイスエンドポイント料金がかかります。

はい。オプションで、グラフ固有の公開エンドポイントを有効にして、インターネット経由でグラフに接続できます。Neptune Analytics では、すべてのクライアントが認証を受け、すべてのリクエストに SIGV4 署名が必要であり、すべての接続でグラフ ID を使用してグラフを操作する必要があります。

はい。Neptune Analytics は、可用性と耐久性が強化されたマルチ AZ 配置を提供しています。デフォルトでは、ホットスタンバイは別のアベイラビリティーゾーンにプロビジョニングされます。ホットスタンバイの場合、フェイルオーバー時間は秒単位です。スタンバイなしでも、サービスは基盤となる新しいコンピューティングキャパシティを数分以内にプロビジョニングします。

現在の料金情報については、Aurora 料金ページを参照してください。

Neptune Analytics が利用可能なリージョンの詳細については、AWS リージョン表をご覧ください。

Neptune ML

Gremlin と SPARQL が Neptune ML でサポートされています。

Neptune ML では、ノード分類、マルチクラス分類、ノードリグレッション、エッジ分類、単一クラス分類、エッジリグレッション、リンク (エッジ) 予測が行えます。詳細については、「Neptune ユーザーガイド」をご覧ください。

料金の詳細については、Neptune 料金ページでご確認ください。