【要約】【DynamoDB】GAされたベクトル検索、15,000件のデータで OpenSearch と比べてみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者が意味検索(ベクトル検索)を導入する際、既存のDynamoDBを活用すべきか、OpenSearchのような専用エンジンを構築すべきかの判断が困難である。具体的には以下の課題が存在する。
- ・OpenSearch導入に伴うデータ同期パイプラインの運用負荷
- ・検索エンジン追加によるインフラコストの増大
- ・検索精度とレイテンシのトレードオフの不透明さ
// Approach
著者は、架空のコーヒー在庫データ15,000件を用い、DynamoDBとOpenSearch Serverlessの性能を同一条件下で比較した。検証は以下のステップで行われた。
- ・Amazon Bedrock (Titan Text Embeddings V2) によるベクトル生成
- ・レイテンシ、Recall(検索精度)、コストの定量的な比較
- ・実運用で障壁となる機能制約の特定と検証
// Result
検証の結果、DynamoDBはOpenSearchに対し、レイテンシとコストの両面で圧倒的な優位性を示した。具体的な成果は以下の通りである。
- ・レイテンシ:DynamoDBの中央値は19.5msであり、OpenSearch(213ms)の約10倍高速である
- ・検索精度:両者ともRecall 0.99以上を記録し、実用レベルの精度を確認した
- ・コスト:DynamoDBは検索コストが極めて低く、社内ツール規模では無視できる水準である
- ・制約の特定:範囲フィルタ不可、TopK上限100、GSIコスト膨張、権限分離不可の4点を判明させた
Senior Engineer Insight
> 運用負荷とコストの観点では、DynamoDBは極めて強力な選択肢だ。しかし、範囲フィルタが使えない点や、IAMによるテナント分離が効かない点は、エンタープライズ用途では致命傷になり得る。また、GSIの射影設定を誤ると、ベクトルデータの複製によりストレージコストが数十倍に膨張するリスクがある。設計段階で「検索条件が等価一致のみで事足りるか」を厳格に評価せよ。安易な導入は、将来的なデータモデルの再設計を招く。