全般

Amazon Neptune とは何ですか?

Amazon Neptune は高速かつ信頼性の高いフルマネージドのグラフデータベースサービスです。このサービスは、高度に接続されたデータセットと連携するアプリケーションの構築と実行を容易にします。Neptune の中核となるのは、専用の高パフォーマンスグラフデータベースエンジンです。このエンジンは、数十億の関係を保存し、ミリ秒単位のレイテンシーでグラフをクエリするために最適化されています。Neptune は、人気の高いグラフクエリ言語 Apache TinkerPop GremlinW3C SPARQLopenCypher をサポートしているため、高度に接続されたデータセットを効率的にナビゲートするクエリを構築できます。Neptune では、レコメンデーションエンジン、不正検出、知識グラフ、創薬、ネットワークセキュリティなどのグラフのユースケースを強化します。

Neptune は、リードレプリカ、ポイントインタイムリカバリ、Amazon S3 への継続的なバックアップ、およびアベイラビリティーゾーン間のレプリケーションによって、高い可用性を備えています。Neptune は、データセキュリティ機能を提供し、保管時および転送時の暗号化をサポートします。Neptune は完全マネージド型であるため、ハードウェアプロビジョニング、ソフトウェアパッチ適用、セットアップ、構成、バックアップなどのデータベース管理タスクについて頭を悩ます必要はありません。

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

同じ Neptune クラスターで Apache TinkerPop Gremlin、openCypher、RDF/SPARQL を使用できますか?

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

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

既存の Apache TinkerPop Gremlin アプリケーションから Amazon Neptune に移行するにはどうすればよいですか?

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

Amazon Neptune の Gremlin Server を使用するには、クライアントドライバーの変更が必要ですか?

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

既存の openCypher アプリケーションから Amazon Neptune に移行する方法を教えてください。

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

SPARQL エンドポイントを持つトリプルストアから Amazon Neptune に移行するにはどうすればよいですか?

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

Amazon Neptune の SPARQL エンドポイントを使用するには、クライアントドライバーの変更が必要ですか?

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

Neptune は、ACID (不可分性、整合性、分離性、耐久性) に準拠していますか?

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

Amazon Neptune の使用にはなぜ Amazon RDS アクセス権限とリソースが必要なのですか?

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

Amazon Neptune にはサービスレベル利用規約 (SLA) がありますか?

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

パフォーマンス

Amazon Neptune と連携するように最適化されたグラフクエリワークロードのタイプは何ですか?

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

Amazon Neptune ではクエリ最適化が実行されますか?

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

Amazon Neptune はリレーショナルデータベースで構築されていますか?

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

料金

Amazon Neptune にはどれくらいのコストがかかりますか?

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

Q: Amazon Neptune はどの AWS リージョンで利用できますか?

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

Amazon Neptune はデータベースボリュームの各単位を 3 つのアベイラビリティーゾーンにわたって 6 つの方法でレプリケートするということですが、実際のストレージ料金は、料金表ページに書かれている料金の 3 倍または 6 倍になるということですか?

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

IOs in Amazon Neptune とは何ですか? どのように計算されますか?

Amazon Neptune は、不要な IO オペレーションを排除して、コストを削減し、読み取り/書き込みトラフィックを提供するリソースを確保するために設計されました。書き込み IO はストレージレイヤーが耐久性の高い書き込みを実現するためにトランザクションログレコードをプッシュする時にのみ消費します。書き込み IO は 4 KB 単位でカウントされます。例えば、トランザクションログレコードが 1024 バイトの場合、1 IO オペレーションとカウントされます。ただし、同時書き込みオペレーションでトランザクションログが 4 KB 未満の場合は、I/O 消費を最適化するために Amazon Neptune データベースエンジンによってまとめてバッチ処理されます。従来のデータベースエンジンとは異なり、Amazon Neptune では変更されたデータベースページをストレージレイヤーにプッシュしないため、I/O 消費をさらに節約できます。

ハードウェアとスケーリング

Amazon Neptune データベースのストレージの下限と上限はどれくらいですか?

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

Amazon Neptune DB インスタンスに関連するコンピューティングリソースをスケールするにはどうすればよいですか?

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

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

使用状況に応じてデータベースを自動的にスケールアップまたはスケールダウンできますか?

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

Neptune は自動スケーリングをサポートしていますか?

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

バックアップと復元

DB インスタンスのバックアップを有効にするにはどうすればよいですか?

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

DB スナップショットを取得し、そのスナップショットをいつまでも保持できますか?

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

データベースに障害が発生した場合、どのような復旧パスを利用できますか?

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

DB インスタンスを削除した場合、自動バックアップと DB スナップショットはどうなりますか?

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

スナップショットを別の AWS アカウントと共有できますか?

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

共有スナップショットに対して請求されますか?

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

スナップショットを自動的に共有できますか?

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

スナップショットをいくつのアカウントと共有できますか?

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

Amazon Neptune スナップショットはどのリージョンで共有できますか?

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

Amazon Neptune スナップショットを異なるリージョン間で共有できますか?

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

暗号化された Amazon Neptune スナップショットを共有できますか?

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

Amazon Neptune スナップショットは、サービスの外でも使えますか?

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

高可用性とレプリケーション

Amazon Neptune ではディスク障害に対するデータベースの耐障害性をどのように向上させますか?

Amazon Neptune はデータベースボリュームを自動で 10 GB のセグメントに分割し、多数のディスクに分散します。10 GB 単位の各データベースボリュームが、3 つのアベイラビリティーゾーンにわたって 6 つの方法でレプリケートされます。Amazon Neptune は最大 2 つまでのデータのコピー損失をデータベースの書き込み能力に影響せずに透過的に処理し、最大 3 つまでのコピー損失を読み込み能力に影響せずに処理します。また、Amazon Neptune ストレージは自己修復機能を備えています。データブロックおよびディスクはエラー検出のために継続的にスキャンされ、自動的に修復されます。

Amazon Neptune ではデータベースクラッシュ後の復旧時間をどのように向上させますか?

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

Neptune ではどのようなレプリケーションがサポートされていますか?

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

Amazon Neptune でクロスリージョンレプリカを作成できますか?

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

特定のレプリカをフェイルオーバーターゲットとして、他のレプリカより優先させることができますか?

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

インスタンスへの優先階層は、作成した後に変更できますか?

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

特定のレプリカがプライマリインスタンスに昇格することを防ぐことはできますか?

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

単一の Amazon Neptune データベースの可用性をどのように向上できますか?

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

フェイルオーバー中はどのようなことが起きますか?また、フェイルオーバーにかかる時間はどのくらいですか?

フェイルオーバーは Amazon Neptune によって自動的に処理されるため、アプリケーションは管理上の手動介入なく、可能な限り迅速にデータベースオペレーションを再開できます。

同一の、または異なるアベイラビリティーゾーンに Amazon Neptune レプリカを作成している場合、フェイルオーバーが発生すると Amazon Neptune では、DB プライマリエンドポイントの正式名レコード (CNAME) を健全なレプリカに反転させます。このレプリカが新しいプライマリに昇格します。通常、フェイルオーバーは 30 秒以内で完了します。また、リードレプリカのエンドポイントでは、フェイルオーバー中に CNAME の更新は不要です。

Amazon Neptune レプリカを作成していない場合 (単一のインスタンスの場合)、Neptune では元のインスタンスと同じアベイラビリティーゾーンに新しい DB インスタンスの作成を試行します。この処理に失敗した場合、Neptune は異なるアベイラビリティーゾーンに新しい DB インスタンスの作成を試行します。通常、フェイルオーバーは 15 分以内で完了します。

接続が切断された場合、アプリケーションによるデータベースリクエストを再試行する必要があります。 

プライマリデータベースと Amazon Neptune レプリカがアクティブに読み取りトラフィックを処理し、フェイルオーバーが実行された場合はどうなりますか?

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

プライマリに対しレプリカにはどのくらいの遅延がありますか?

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

セキュリティ

Amazon Neptune を Amazon Virtual Private Cloud (Amazon VPC) で使用できますか?

はい。すべての Amazon Neptune DB インスタンスは VPC で作成します。Amazon VPC では、お客様のデータセンターで運用されている従来型のネットワークを正確に模倣して、仮想ネットワークのトポロジーを定義できます。これにより、どのユーザーが Amazon Neptune データベースにアクセスできるかを完全に制御できます。

Amazon Neptune では、転送中と保管時のデータの暗号化がサポートされますか?

また、Amazon Neptune では、HTTPS で暗号化されたクライアント接続をサポートしており、AWS Key Management Service (KMS) で管理されるキーを使用してデータベースを暗号化することもできます。Amazon Neptune 暗号化を使って実行するデータベースインスタンスでは、基盤となるストレージに保存される保管中のデータが、同じクラスター内の自動バックアップ、スナップショット、レプリカと同様に暗号化されます。暗号化と復号はシームレスに処理されます。Amazon Neptune での KMS の使用に関する詳細は、Amazon Neptune ユーザーガイドを参照してください。

暗号化されていない既存のデータベースを暗号化できますか?

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

Amazon Neptune データベースにアクセスするにはどうすればよいですか?

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

料金の詳細はこちら

Amazon Neptune の料金情報をご確認ください。

詳細 
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで Amazon Neptune を使った構築を始めましょう。

サインイン