メインコンテンツに移動

Amazon Neptune

優れたパフォーマンスとスケーラビリティ

すべて開く

    AWS マネジメントコンソールでいくつかの手順を実行するだけで、プロダクションクラスターに電力を供給するコンピューティングリソースとメモリリソースをスケールアップまたはスケールダウンできます。Neptune Database では、希望するサイズの新しいレプリカインスタンスを作成するか、インスタンスを削除することでスケーリングできます。通常、コンピューティングのスケーリングは数分以内に完了します。

    Neptune は分散型共有ストレージアーキテクチャを使用しており、データベースストレージのニーズの増加に応じて自動的に拡張されます。Neptune のデータは、マルチアベイラビリティーゾーン (Multi-AZ) の高可用性を持つクラスターボリュームに保存されます。Neptune DB のクラスターを作成すると、10 GB の単一セグメントが割り当てられます。データのボリュームが増えて現在割り当てられているストレージを超えると、Neptune は新しいセグメントを追加してクラスターボリュームを自動的に拡張します。中国と GovCloud を除くサポート対象 AWS リージョンでは、Neptune クラスターボリュームは最大 128 テビバイト (TiB) まで拡張可能です。将来の拡張に備えてデータベースに余分なストレージをプロビジョニングする必要はありません。

    データベースに最大 15 個のリードレプリカを作成することで、大量のアプリケーションリクエストをサポートできるよう読み込みスループットを向上させることができます。Neptune レプリカは基盤となるストレージをソースインスタンスと共有しているため、コストを削減でき、レプリカノードへの書き込みの実行が必要ありません。これにより、読み取りリクエストに対応するための処理能力が向上し、レプリカの遅延時間がしばしば 10 ミリ秒足らずまで短縮されます。また、Neptune では、読み取りクエリのための単一のエンドポイントも提供されるため、アプリケーションは、追加および削除されたレプリカを追跡せずに接続できます。

    Neptune は、専用の高パフォーマンスグラフデータベースエンジンです。Neptune はグラフデータを効率的に保存してナビゲートし、スケールアップおよびインメモリの最適化されたアーキテクチャを使用して、大量のグラフに対する迅速なクエリ評価を可能にします。Neptune を使用すると、Gremlin、openCypher、または SPARQL のいずれかを使用して、書き込みが容易でパフォーマンスに優れた強力なクエリを実行できます。Neptune Analytics では、OpenCypher を使用できます。

高可用性と耐久性

すべて開く

    Amazon Neptune グローバルデータベースはグローバルに分散したアプリケーション向けに設計されており、単一の Amazon Neptune データベースを複数の AWS リージョンにまたがって運用できます。データベースのパフォーマンスにほとんど影響を与えずにグラフデータをレプリケートし、各リージョンでレイテンシーを低減してローカル読み取りを高速化し、リージョン規模の停止があった場合にディザスタリカバリを実現します。

    インスタンスに障害が発生した場合、Neptune は、3 つの AZ のいずれかで作成された最大 15 個の Neptune レプリカの 1 つに自動的にフェイルオーバーします。Neptune レプリカがプロビジョニングされていない場合、障害時には Neptune によって新しいデータベースインスタンスの作成が自動的に試行されます。

    Neptune データベースとその基盤となる Amazon EC2 インスタンスの健全性は継続的にモニタリングされます。データベースを動作させているインスタンスに障害が発生すると、データベースおよび関連するプロセスが自動的に再起動されます。Neptune の復旧では、データベース REDO ログの再生時間が長くなることはないため、インスタンスの再起動時間は通常 30 秒以下です。また、データベースのバッファキャッシュがデータベース処理から隔離されるため、データベースの再起動後もキャッシュを存続させることができます。

    Neptune Database では、データベースボリュームの 10 GiB のチャンクごとに 3 つの AZ にわたって耐久性が確保されます。Neptune Database のストレージは耐障害性を備えており、データベースの書き込み性能に影響を与えることなく最大 2 つ、読み込み性能に影響を与えることなく最大 3 つのデータコピーの損失を透過的に処理します。また、Neptune Database のストレージには自己修復機能が備わっています。データブロックとディスクにはエラースキャンが継続的に実施され、自動的に置き換えられます。

    Amazon Neptune のバックアップ機能は、インスタンスのポイントインタイムリカバリを可能にします。これによって、直近で 5 分前まで、保持期間内の任意の時点にデータベースを復元させることができます。自動バックアップの保持期間は、最大 35 日間まで設定できます。自動バックアップは 99.999999999% の耐久性を持つよう設計された Amazon S3 に保存されます。Neptune のバックアップは自動的かつ継続的な増分バックアップで、データベースのパフォーマンスに影響を与えません。

    データベースのスナップショットは、Amazon S3 に保存されたインスタンスのユーザー開始バックアップであり、明示的に削除するまで保持されます。自動的な増分スナップショットを使用して必要な時間とストレージを削減できます。必要に応じて、データベーススナップショットから新しいインスタンスを作成できます。

高い安全性

すべて開く

    Neptune Database は Amazon Virtual Private Cloud (Amazon VPC) で実行されます。これによりデータベースを独自の仮想ネットワークに隔離し、業界標準の暗号化 IPsec VPN を使用してオンプレミスの IT インフラストラクチャに接続できます。さらに、Neptune VPC 設定を使用すると、ファイアウォールを設定してデータベースインスタンスへのネットワークアクセスを制御することもできます。

    Neptune は AWS Identity and Access Management (IAM) と統合されており、AWS IAM ユーザーおよびグループが特定の Neptune リソース (データベースインスタンス、データベーススナップショット、データベースパラメータグループ、データベースイベントサブスクリプション、データベースオプショングループなど) で実行可能なアクションを制限できます。さらに、Neptune のリソースにタグを付けたり、IAM ユーザーおよびグループが同じタグ (およびタグの値) を持つリソースのグループに対して実行できるアクションを制御したりできます。例えば、デベロッパーは "Development" データベースインスタンスを変更できるが、"Production" データベースインスタンスを変更および削除できるのはデータベース管理者のみにするように IAM ルールを設定できます。

    Neptune は、AWS Identity and Access Management (IAM) を使って Neptune データプレーン API を取得するユーザーに、グラフのデータの読み取り、書き込み、削除などのグラフデータアクション、および Amazon Neptune ML アクティビティの監視の開始、進行中のデータプレーンアクティビティのステータス確認などのグラフデータ以外のアクションを実行するためのきめ細かいアクセス管理を提供できるようになりました。例えば、グラフデータを操作する必要のないデータアナリストのための「読み取り専用」アクセスのポリシー、アプリケーションにグラフを使用する開発者のための「読み取りと書き込み」アクセスのポリシー、Neptune ML コマンドにアクセスする必要があるデータサイエンティストのためのポリシーを作成できます。

    Neptune は、TLS バージョン 1.2 による転送中における暗号化をサポートしています。Neptune では、AWS Key Management Service (AWS KMS) で作成および管理するキーを使用して、データベースを暗号化できます。Neptune 暗号化を使って実行するデータベースインスタンスでは、基盤となるストレージに保存される保管中のデータが、同じクラスター内の自動バックアップ、スナップショット、レプリカと同様に暗号化されます。

    Neptune では、データベースのパフォーマンスに与える影響を最小限に抑えてデータベースイベントをログに記録できます。ログは、後でデータベース管理、セキュリティ、ガバナンス、規制コンプライアンスなどの目的で分析できます。また、Amazon CloudWatch に監査ログを送信して、アクティビティをモニタリングすることもできます。

コスト効率性

すべて開く

    Neptune の利用にあたり、初期費用は不要です。起動したインスタンスまたはサーバーレスで消費したデータベースリソース 1 つごとに時間あたりの使用料金が発生します。不要になった Neptune データベースインスタンスは削除できます。予備としてストレージを多めにプロビジョニングする必要はなく、実際に消費したストレージに対してのみ料金が発生します。詳細については、「Neptune の料金」ページを参照してください。

フルマネージド

すべて開く

    AWS マネジメントコンソールを使用して新しい Neptune データベースインスタンスを起動することで、Neptune の使用を開始することができます。Neptune データベースインスタンスは、選択したデータベースインスタンスクラスに適したパラメータと設定で事前設定されています。データベースインスタンスを起動して、数分以内にアプリケーションを接続できます。追加の設定は不要です。データベースパラメータグループでは、データベースの詳細な制御とファインチューニングを実行できます。

    Neptune では、データベースインスタンスの CloudWatch メトリクスを利用できます。コンソールを使用して、コンピューティングリソース、メモリ、ストレージ、クエリスループット、アクティブな接続など、データベースインスタンスに対する 20 以上の主要な運用メトリクスを確認できます。

    Neptune は最新のパッチを適用してデータベースを最新の状態に維持します。データベースエンジンのバージョン管理を使用して、インスタンスにパッチを適用するかどうか、またいつ適用するかを制御できます。

    Amazon Aurora は、自動フェイルオーバーのような重要なデータベースイベントを E メールまたは SMS で通知します。コンソールを使用して、Neptune のデータベースに関連付けられた異なるデータベースイベントをサブスクライブできます。

    Neptune では、マルチテラバイトのデータベースクラスター全体を数分で複製できる、高速かつ効率的なクローニング処理がサポートされています。クローニングは、アプリケーションの開発、テスト、データベースの更新、分析クエリの実行など、さまざまな目的に役立ちます。データをすぐに入手できるため、ソフトウェアの開発やプロジェクトのアップグレードの時間を大幅に短縮でき、より正確な分析が可能になります。

    コンソールのわずか数ステップで、本番環境に影響を与えることなく Neptune のデータベースをクローン化できます。クローンは 3 つの AZ に分散して複製されます。

エージェンティック AI と ML

すべて開く

    Neptune Analytics は、経路検索、コミュニティの検出 (クラスタリング)、重要なデータの識別 (中心性)、および類似性の定量化のためのアルゴリズムをサポートしています。経路検索アルゴリズムは、2 つのノード間の最短または最適なルートを効率的に決定します。経路探索アルゴリズムにより、道路網やソーシャルネットワークなどの現実世界の状況を、相互接続されたノードやエッジとしてモデル化できます。さまざまな地点間の最短または最適な経路を見つけることは、GPS システムのルート計画、ロジスティクスの最適化などのアプリケーションでは非常に重要です。また、生物学や工学などの分野の複雑な問題を解決する場合にも重要です。

    コミュニティ検出アルゴリズムは、ネットワーク内の意味のあるノードグループまたはクラスターを計算し、複雑なシステムの組織とダイナミクスに関する洞察を提供できる隠れたパターンや構造を明らかにする。これは、ソーシャルネットワーク分析、生物学(タンパク質間相互作用ネットワークの機能モジュールを特定するため)などの分野で役立ちます。また、さまざまな領域における情報の流れや影響伝播の理解にも役立ちます。

    中心性アルゴリズムは、ネットワーク内で最も影響力のあるノードや重要なノードを特定するのに役立ち、主要なプレーヤーや重要なインタラクションポイントに関する洞察を提供します。これは、影響力のある個人を特定するのに役立つソーシャルネットワーク分析などの分野や、効率的なルーティングとリソース割り当てのための重要なハブの特定に役立つ交通ネットワークなどの分野で役立ちます。

    グラフ類似性アルゴリズムを使用すると、さまざまなグラフ構造間の構造の類似点または非類似点を比較および分析できるため、さまざまなデータセット間の関係、パターン、共通点に関する洞察を得ることができます。これは、生物学(分子構造を比較するため)、ソーシャルネットワーク(類似のコミュニティを特定するため)、レコメンデーションシステム(ユーザーの好みに基づいて類似のアイテムを提案するため)など、さまざまな分野で非常に貴重です。

    Neptune ML には SageMaker が搭載されており、グラフ専用の機械学習手法であるグラフニューラルネットワーク (GNN) を使用して、グラフデータを用いて高速かつより正確な予測を行います。Neptune ML を使用すれば、グラフ以外の方法を使用して予測を行う場合と比べて、グラフのほとんどの予測精度を 50% 以上向上させることができます。

    数十億の関係を持つグラフで正確な予測を行うことは、困難で時間がかかる場合があります。XGBoost などの既存の ML アプローチは、表形式のデータ用に設計されているため、グラフを効果的に操作できません。その結果、これらの方法をグラフで使用すると、時間がかかるだけでなく、デベロッパーの専門的なスキルが必要になり、生成された予測が最適な結果ではない可能性があります。

デベロッパーの生産性

すべて開く

    プロパティグラフは、リレーショナルモデルに慣れているデベロッパーにはなじみがあるため広く使用されています。Gremlin のトラバーサル言語により、Property Graph をすばやくトラバースする方法が提供されます。Neptune では、オープンソースの Apache TinkerPop Gremlin トラバーサル言語を使用してプロパティグラフモデルをサポートし、TinkerPop バージョン 3.3 をサポートする Gremlin Websocket サーバーを提供します。Neptune を使用することで、Gremlin の高速なトラバーサルを Property Graph ですばやく構築できます。既存の Gremlin アプリケーションでは、Neptune インスタンスを指定するよう Gremlin サービス設定を変更することで、Neptune を簡単に使用できます。

    Resource Description Framework (RDF) は、複雑な情報ドメインのモデリングに柔軟性を提供しているため広く使用されています。RDF には、化学分子のデータベースである WikidataPubChem など、無料またはパブリックの既存のデータセットが数多くあります。Neptune では、W3C の RDF 1.1 と SPARQL 1.1 (クエリおよび更新) のセマンティック Web 標準をサポートし、SPARQL Protocol 1.1 を実装する HTTP REST エンドポイントを提供しています。Neptune を使うと、既存のグラフアプリケーションと新しいグラフアプリケーションの両方に SPARQL エンドポイントを簡単に使用できます。

    Neptune は、OpenCypher を使ってグラフアプリケーションを構築することをサポートしています。OpenCypher は、グラフデータベースを扱うデベロッパーにとって現在最も人気のあるクエリ言語の 1 つです。開発者、ビジネスアナリスト、データサイエンティストは、OpenCypher の SQL に触発された構文を気に入っています。なぜなら、OpenCypher はグラフアプリケーションのクエリを作成するための使い慣れた構造を提供するからです。Neptune Database では、OpenCypher と Gremlin のクエリ言語を同じプロパティグラフデータで一緒に使用できます。openCypher のサポートは、Bolt プロトコルと互換性があり、Bolt プロトコルを使用して Neptune に接続するアプリケーションを引き続き実行できます。

    Neptune では、Amazon S3 に保存されているプロパティグラフのデータに対する、高速かつ並列のバルクロードをサポートしています。REST インターフェイスを使用して、データの Amazon S3 の場所を特定できます。CSV 区切り形式を使用して、ノードとエッジにデータをロードします。詳細については、Neptune プロパティグラフの「バルクロードのドキュメント」を参照してください。

    Neptune では、Amazon S3 に保存されている RDF のデータに対する、高速かつ並列のバルクロードをサポートしています。REST インターフェイスを使用して、データの Amazon S3 の場所を特定できます。N-Triples (NT)、N-Quads (NQ)、RDF/XML、Turtle RDF 1.1 のシリアル化がサポートされています。詳細については、Neptune RDF のバルクロードのドキュメントを参照してください。