ソーシャルネットワーキングサービスを構築する企業が、「ユーザーAはユーザーBをフォローしている」「商品XはカテゴリーYとZに属する」といった複雑な関係性データを格納し、高速にクエリしたいと考えています。このユースケースに最も適したAWSデータベースサービスはどれですか?
Amazon Neptuneは、フルマネージドのグラフデータベースサービスであり、ノードとエッジで関係性を表現します。「ユーザーAがユーザーBをフォローしている」「商品XがカテゴリーYとZに属する」といった複雑な関係データを効率的に格納し、Gremlin(Property Graph)やSPARQL(RDF)を使って高速にトラバーサルクエリを実行できます。 選択肢AのAmazon RDS for MySQLは、リレーショナルデータベースであり、テーブル結合で関係を表現できますが、多対多の深い関係クエリでは複雑なJOINが必要となり、グラフ専用DBと比べてクエリの複雑さと性能の面で不利です。 選択肢BのAmazon DynamoDBは、NoSQLのキー・バリュー/ドキュメント型データベースであり、大規模データの高速読み書きが得意ですが、グラフ構造の関係性トラバーサルには対応しておらず不向きです。 選択肢CのAmazon Neptuneは、グラフ専用データベースであり、ソーシャルネットワークや商品カテゴリなどの複雑な関係性を高速に処理することに特化しています。 選択肢DのAmazon Redshiftは、データウェアハウスサービスであり、大量データのBI集計分析(OLAP)に特化しています。グラフ関係のリアルタイムクエリには適していません。