はじめに

Amazon Neptune を使用すると、高度でインタラクティブなグラフアプリケーションを作成して、数十億の関係をミリ秒でクエリできます。高度に接続されたデータの SQL クエリは複雑で、パフォーマンスの調整は困難です。代わりに、Amazon Neptune では、一般的なグラフクエリ言語である Apache TinkerPop Gremlin と W3C の SPARQL と openCypher を使用して、書き込みが容易で、接続されたデータをうまく処理する強力なクエリを実行できます。これにより、コードの複雑さが大幅に軽減され、関係を処理するアプリケーションをより迅速に作成できるようになります。

Neptune は SLA 99.9% を有しており、データベースワークロード用の SSD ベースの仮想化ストレージレイヤーとデータベースエンジンを完全に統合することで、MySQL のパフォーマンスおよび可用性を向上させます。Neptune のストレージは耐障害性と自己修復機能を備えており、ディスク障害が発生した場合は、データベースの可用性を低下させることなくバックグラウンドで修復されます。Neptune はデータベースのクラッシュを自動的に検出して再起動するように設計されています。クラッシュの復旧やデータベースキャッシュの再構築を行う必要はありません。インスタンス全体に障害が発生した場合、Neptune は最大 15 個のリードレプリカの 1 つに自動的にフェイルオーバーします。

Neptune コンソールのいくつかのステップで、Neptune データベースインスタンスを素早く起動することができます。Neptune では、ストレージを自動的にスケールし、ストレージの拡張および I/O の再分散を実行して一貫性のあるパフォーマンスを提供します。過剰なプロビジョニングは必要ありません。

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

サーバーレスのオプション
Amazon Neptune サーバーレスは、アプリケーションのニーズに基づいてデータベース容量を自動的に調整するオンデマンドのデプロイオプションです。Neptune Serverless は、グラフデータベースのワークロードを数十万クエリまで瞬時にスケールすることができます。Neptune Serverless は、アプリケーションが必要とする適切な量のデータベースリソースを提供するために容量を調整し、消費された容量に対してのみ支払いを行うため、ピーク容量と比較してデータベースコストを最大 90% 削減することができます。

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

データベースコンピューティングリソースの簡単なスケーリング
AWS マネジメントコンソールのいくつかのステップで、必要なサイズの新しいレプリカインスタンスを作成したり、インスタンスを削除したりして、本番クラスターを稼働させているコンピューティングリソースとメモリリソースをスケールアップまたはスケールダウンできます。通常、コンピューティングのスケーリングは数分以内に完了します。

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

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

高可用性と耐久性

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

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

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

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

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

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

オープングラフ API

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

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

プロパティグラフの openCypher v9 をサポート
Neptune は、openCypher を使ってグラフアプリケーションを構築することをサポートしています。openCypher は、グラフデータベースを扱うデベロッパーにとって現在最も人気のあるクエリ言語の 1 つです。デベロッパー、ビジネスアナリスト、およびデータサイエンティストは、openCypher の SQL にヒントを得た構文に好感を持っています。これは使い慣れた構造を用いて、グラフアプリケーションのクエリを作成できるためです。openCypher と Gremlin クエリ言語は、同じプロパティグラフデータに対して一緒に使用できます。openCypher のサポートは、Bolt プロトコルと互換性があり、Bolt プロトコルを使用して Neptune に接続するアプリケーションを引き続き実行できます。

機械学習

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

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

高い安全性

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

リソースレベルのアクセス許可
Amazon 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 (KMS) で作成および管理するキーを使用して、データベースを暗号化できます。Neptune 暗号化を使って実行するデータベースインスタンスでは、基盤となるストレージに保存される保管中のデータが、同じクラスター内の自動バックアップ、スナップショット、レプリカと同様に暗号化されます。

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

フルマネージド型

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

より簡単な操作
Neptune を使用すると、高性能のグラフデータベースをより簡単に操作できます。Neptune では、グラフデータにカスタムインデックスを作成する必要はありません。Neptune ではタイムアウトとメモリ使用制限を利用できるため、多すぎるリソースを消費するクエリの影響を軽減できます。

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

ソフトウェアの自動パッチ適用
Neptune は最新のパッチを適用してデータベースを最新の状態に維持します。Database Engine Version Management を使用してインスタンスにパッチを適用するかどうか、またいつ適用するかを制御できます。

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

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

AWS マネジメントコンソールのいくつかのステップで、本番環境に影響を与えることなく Neptune のデータベースをクローン化できます。クローンは 3 つのアベイラビリティーゾーンに分散して複製されます。

高速大容量データの読み込み

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

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

コンプライアンスプログラム

幅広いコンプライアンスプログラムの適用範囲
Neptune は、FedRAMP (Moderate および High) から SOC (1、2、3) まで 20 以上の国際的なコンプライアンス標準をサポートしており、HIPAA にも対応しています。Neptune が準拠している規格の全リストは、コンプライアンスプログラムによる対象範囲内の AWS のサービスで確認することができます。

高い費用対効果

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

料金の詳細

Amazon Neptune の料金について詳細をご覧ください。

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

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

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

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

サインイン