📝

Amazon Neptuneってなんだろ?

4 min read

Amazon Neptuneについて調べてみました。

Amazon Neptune(完全マネージド型グラフデータベースサービス)| AWS

概要

グラフデータベースが何かは分かりませんがまずは概要をつかみます。

  • 高速かつ信頼性の高いフルマネージドグラフデータベースサービス
  • 核となるのは専用の高パフォーマンスグラフデータベースエンジン
    • 数十億のリレーションシップの保存とミリ秒台のレイテンシーでのグラフのクエリに最適化
  • レコメンデーションエンジン、不正検出、知識グラフ、創薬、ネットワークセキュリティなどのグラフのユースケースを強化
  • 高い可用性
    • リードレプリカ
    • ポイントインタイムリカバリ
    • S3 への継続的なバックアップ
    • AZ間のレプリケーション
  • HTTPS で暗号化されたクライアント接続と保管時の暗号化をサポート

データベースサービスの1つですね。

メリット

  • オープングラフ API をサポート
  • 優れたパフォーマンスとスケーラビリティ
    • グラフクエリ処理向けに最適化
    • 3つのAZで最大 15 の低レイテンシーリードレプリカをサポート
    • インスタンスタイプのスケールアップ/ダウン可能
  • 高可用性と耐久性
    • ACID (不可分性、整合性、分離性、耐久性) に準拠
    • 99.99% を上回る可用性
    • ストレージは耐障害性と自己修復機能を備え、3 つのAZ間でデータのコピーを6 個作成
    • 常にデータを S3 にバックアップ
    • インスタンスのフェイルオーバーは、通常 30 秒未満で完了
  • 高い安全性
    • VPC を使用したネットワークの分離
    • エンドポイントアクセス用の IAM 認証
    • HTTPS で暗号化されたクライアント接続
    • KMSで作成して管理するキーを使用した保存時の暗号
    • Neptune インスタンスでは、基盤となるストレージのデータが暗号化
    • 同じクラスター内にある自動化バックアップ、スナップショット、レプリカも暗号化
  • 完全マネージド型
    • データベース管理タスクの考慮が不要
    • 自動的かつ継続的にデータベースがモニタリングされS3にバックアップ

大体は他のDBサービスと似たような印象です。

ユースケース

  • ナレッジグラフ
  • ID グラフ
  • 不正検出
  • 推奨エンジン
  • ソーシャルネットワーキング
  • ネットワーク/IT 運用
  • ライフサイエンス

グラフデータベースとは

グラフ データベースの時代到来? | データベース アクセス ブログ

  • 日本語でイメージする「グラフ」とは異なる
  • 「ネットワーク データベース」と呼んだほうがわかりやすいかも
  • グラフ データベースでは個々のデータ間の関係をネットワークで構成
  • SNSの人と人とのつながりなど
  • グラフ データベースでは、Aさん、Bさんなどの各ユーザーをnode、フォローする、されるといった関係はedge、Aさんの名前や年齢、所属などの属性を propertyと呼びます。
  • 最大の特長は、データの構成が目で見てわかりやすいという分析上の便利さもさることながら、特定データを見つけるスピード

グラフデータベースとは何か ~ネットワーク状のデータ構造から瞬時に情報を検索するDBを解説 - アイマガジン|i Magazine|IS magazine

  • グラフ構造を備えたデータベース
  • データの構造が従来のリレーショナルではなくネットワーク状になっている場合に、格納・検索の面で威力を発揮
  • グラフは「ノード」「エッジ」「プロパティ」の3要素によって、ノード間の「関係性」を表現
  • ノード(node
    • 別名バーテックス、頂点
    • 点や丸で表現されるエンティティー
  • エッジ(edge)
    • 別名リレーションシップ、辺
    • ノード間の関係性を表す
    • 方向とタイプを有する
  • プロパティ(property)
    • 別名、属性
    • ノードとエッジにおける属性情報
    • データはkey/value形式で保持される
  • テーブル単位ではなく個々のデータ単位で「つながり」が保持される
  • RDBはインデックスの参照やテーブルを連結したビューの用意で時間がかかるのに対し、グラフDBはノードがもつ隣接ノードの情報をたどるだけなので、回答が速い

  • データ全体からの統計情報を分析する手続きなどは苦手
  • 活用例
    • ソーシャルグラフ
    • リコメンデーション
    • 経路検索
    • 不正検知
    • スポーツの戦績分析

要するに

情報同士の関係性を導き出すのが速いデータベースと捉えました。
ユースケースはSNSが一番わかりやすいですね。

はじめてのGraphDB Amazon Neptune | DevelopersIO

Amazon Neptuneとは?

  • GraphDBの一種
  • ノード (データエンティティ)、エッジ (リレーションシップ)、プロパティなどのグラフ構造を使用して、データを表現および保存
  • ノード
    • 頂点(Vertex)とも言う
  • エッジ
    • 辺(Edge)とも言う
    • ノードとノードを結ぶ線
  • ラベル
    • ノードやエッジの種類
    • ラベル名は初回作成時に複数登録可能 (ただし、イミュータブルなので後から変えれない)
    • ラベル名を指定して横断的にクエリを実行できるので便利
  • プロパティ
    • ノードやエッジに紐づけられる属性情報
    • KeyValue形式
    • 複数登録可能

コンソール

RDSと似てます。

まとめ

今回はAmazon Neptuneについて調べてみました。
以下がポイントでした。

  • フルマネージドグラフデータベースサービス
  • 専用の高パフォーマンスグラフデータベースエンジン
  • 高い可用性
  • 接続や保存時の暗号化
  • グラフデータベースはグラフ構造を備えたデータベース
  • データの構造がネットワーク状になっている場合に、格納・検索の面で威力を発揮
  • ノードは頂点
  • エッジは辺
  • ラベルはノードやエッジの種類
  • プロパティはノードやエッジに紐づけられる属性情報
  • SNSやレコメンデーションがユースケース

参考になれば幸いです。

Discussion

ログインするとコメントできます