[レポート] Deep dive into Amazon Neptune Serverless #DAT322 #reinvent
Youtube で公開されている re:Invent 2022 のセッションレポートです。
Amazon Neptune Serverless の Deep Dive セッションです。グラフデータを可視化する新しいオープンソースのアナウンスメントもあります。
セッション概要
タイトル
Deep dive into Amazon Neptune Serverless (DAT322)
概要
With the launch of Amazon Neptune Serverless, graph database workloads can automatically scale from one query to hundreds of thousands of queries. In this deep-dive session, discover how serverless addresses not only workloads with sudden spikes but also those that are unpredictable while providing customers up to 90 percent cost savings compared to provisioning for peak capacity.
レベル
300
登壇者
Brad Bebee (he/him)
General Manager, Amazon Neptune, AWS
Ian Robinson (he/him)
Principal Graph Architect, Amazon Neptune, AWS
セッションレポート
本セッションはグラフデータを扱うデータベースである Amazon Neptune において、2022 年 10 月にリリースされた Amazon Neptune Serverless の仕組みを紹介するセッションです。
Amazon Neptune Serverless の一般提供を開始
DevelopersIO でもブログ化されています。セッションと合わせて見ていただくことで理解が深まると思います。
Serverless 以外の見どころとして、12 月に公開予定のグラフの可視化を行うオープンソースの発表があります。開発中の内容のデモもあります。
また、後半では Amazon Neptune Serverless のデモがあるのですが、個人的にはこのデモ内容(クレジットカードの不正利用の確認)が良かったです。これまで、グラフデータベースは不正利用を見つける用途でも利用されることは聞いたことがあったのですが、あまりイメージできていなかったので勉強になりました。
セッションのアジェンダは次の通りです。
- Quick review of graphs and use cases (グラフの簡単な復習とユースケース)
- Understand how recent Neptune features (Neptune の最近の機能を理解する)
- Understand how Neptune Serverless optimizes CPU and memory (Neptune Serverless がどうやって CPU とメモリを最適化しているか)
- Show you a Global Serverless Graph Database Cluster (デモ)
セッションサマリ
Quick review of graphs and use cases (グラフの簡単な復習とユースケース)
- グラフの特徴
- 関係性に基づくデータモデル
- グラフのアプリケーションは関係性をたどり、フィルターし、パターンを求める
- ランダムアクセスのため処理が難しい
- 専用のデータストアを検討する必要がある
- Amazon Neptune の紹介
- 1〜3 ホップのクエリをミリ秒のレイテンシーで実行できる
- プロパティグラフと RDF グラフの両方をサポート
- 3 種類のクエリ言語をサポート(openCyper, Gremlin, SPARQL)
- グラフデータベースのビジネスへの利用はまだ初期段階
- グラフから利益を得ているドメインに対して、グラフデータベースの使い方を知っているドメインは小さい
- グラフデータベースのユースケース
- Knowledge グラフ
- SIEMENS 社は IoT およびデジタルツインプラットフォームを構築
- Identity グラフ
- カスタマーエクスペリエンスの改善に役立つ
- Fraud グラフ
- クレジットカードの不正利用検知などに役立つ
- Security グラフ
- Amazon Detective で利用されている
- Knowledge グラフ
Understand how recent Neptune features (Neptune の最近の機能を理解する)
- Amazon Neptune の 2022 年の主なアップデート
- Neptune ML
- openCypher GA
- Global Database
- Amazon Neptune Serverless
- 本日、Graph Explorer を発表!
- ファセットブラウジングによりグラフを視覚的にブラウズできるローコードの Web アプリケーション
- Apache License 2.0 で 2022 年 12 月リリース予定
- Neptune ML のアップデートの紹介
- Online Inductive Inference (OII)をサポートし、動的なグラフの予測を可能にした
- opneCypher の GA について
- Gremlin と opneCypher の比較
- Gremlin は Imperative (命令型) であり、opneCypher は Declatative (宣言型)
- opneCypher の Tips とロードマップ
- Gremlin と opneCypher の比較
- Global Database の GA について
- 他のリージョンに Secondary Database Cluster としてリードレプリカを配置
- 最大 5 つの Secondary Database Cluster
- Neptune のクエリの評価方法の説明
- インスタンスでは、入ってきたクエリに対して、抽象構文木 (AST) を生成した後に論理クエリと物理クエリを作成する
- クエリの実行結果はバッファキャッシュ (RAM) に読み込まれる
- クエリを実行した際にキャッシュミスがあれば、ストレージ層から読み込む
- キャッシュヒット率が 99.9%以下の場合、メモリを増設するとパフォーマンスが向上する場合がある
Understand how Neptune Serverless optimizes CPU and memory (Neptune Serverless がどうやって CPU とメモリを最適化しているか)
- これまでキャパシティのプロビジョニングは難しかった
- Amazon Neptne Serverless をリリースした
- キャパシティを最適化することでコストを削減できる
- Amazon Neptune と同じ機能を全て備えている
- サーバレスインスタンスのサーバレスではないインスタンスをクラスター内で混在できる
- どうやってキャパシティを管理しているのか
- Neptune Capacity Unit (NCU) がスケーリングの尺度
- 最小キャパシティはインスタンスの起動容量を決定する
- 最大キャパシティは予算のコントロールに利用する
- 次の内容を基にキャパシティの割り当てと割り当て解除を行う
- フォアグラウンドとバックグラウンドの両方のプロセスで利用される CPU 使用率
- バッファなどの内部データで利用されるメモリ使用率
- ネットワークスループット
- お客様事例の紹介
- スケールアップとスケールダウンを行い、コストを削減できている
- 定常的な負荷がある場合や予測性が高いワークロードには Serverless は向かない
- CloudFormation 対応や CDK 対応は coming very soon
Show you a Global Serverless Graph Database Cluster (デモ)
- グローバル構成の Amazon Neptune Serverless 構築のデモ
- Lambda を用いてデータの読み書きを行うシンプルなアプリケーションを利用
- Jupyter Notebook で可視化
- クレジットカードの情報から不正利用を検出する例
- IP アドレス、住所、電話番号などの何らかの Identity 情報を共有して複数のローンや口座を開設するグループを特定
- 開発中の Graph Explorer のデモ(下記画像)
- 技術者ではないメンバーも直感的に操作できる
- CloudWatch により負荷とキャパシティの確認やレプリケーションの確認
さいごに
Amazon Neptune Serverless だけではなく、グラフデータベースの利用用途まで分かるデモがあり、勉強になるセッションでした。是非セッション動画を見ていただければと思います。
以上、このブログがどなたかのご参考になれば幸いです。