Amazon Web Services ブログ
Amazon DynamoDB が、あらゆる規模でリアルタイムのベクトル検索をサポートするようになりました
2026 年 8 月 5 日、 Amazon DynamoDB でのベクトル検索の一般提供についてお知らせします。運用データとともにベクトル埋め込みを DynamoDB に保存し、別のベクトルストアにデータを複製することなく、そのデータに対して直接類似度検索を実行できるようになりました。
DynamoDB は、99%以上の再現率を維持しながら、1桁ミリ秒のレイテンシーでネイティブなベクトル検索をサポートします。また、数兆個のベクトルを含む大規模なデータにも対応できるよう設計されています。サーバーのプロビジョニング、パッチ適用、管理は一切不要で、ソフトウェアのインストール、保守、運用も必要ありません。このサービスにはバージョンの管理がなく、メンテナンスウィンドウも設定されておらず、メンテナンスによるダウンタイムもゼロです。
ベクトルインデックスにはストレージ容量の制限がなく、データの増加に応じて水平方向にスケールします。DynamoDB のネイティブなベクトル検索を利用することで、エージェント型メモリ、検索拡張生成(RAG)、レコメンデーションエンジン、パーソナライズされたエクスペリエンス、異常検知など、セマンティック検索を必要とするアプリケーションを構築できるようになりました。
アプリケーションですでに DynamoDB を使用している場合、これまではベクトル検索を追加するために、データを専用のベクトルデータベースにコピーし、2つのサービス間でデータを同期するパイプラインを維持する必要がありました。これにより、運用上のオーバーヘッド、データ移動コスト、ライセンスコストが増加し、さらに大規模環境で予測可能な低レイテンシーを維持するという課題も生じていました。DynamoDB にベクトル検索が組み込まれているため、ベクトルデータと運用データを同じサーバーレスインフラストラクチャ上で管理し、同じ従量課金(リクエスト単位の課金)モデルを利用できます。
DynamoDB のベクトル検索では、ベクトル埋め込みを格納する属性に対して作成する新しいタイプのインデックスが導入されています。任意のモデル(Amazon Bedrock Titan Text Embeddings、Cohere Embed、OpenAI のテキスト埋め込みモデルなど)を使用して埋め込みを生成し、標準のPutItem呼び出しを使用して、浮動小数点数のリストとしてテーブルに保存できます。次に、その属性に対してベクトルインデックスを作成し、次元数、距離関数、およびクエリ実行時に検索結果を絞り込むためのフィルターとして使用する非ベクトル属性を指定します。SearchVectors API は、クエリベクトル、返される結果の数 (最大 100)、およびオプションのフィルター条件を受け入れます。類似度でランク付けされた結果を返します。
運用データがすでに DynamoDB に存在していて、別のデータベースをプロビジョニングしたり、同期パイプラインを管理したりせずに類似検索を追加したい場合は、DynamoDB のベクトル検索を使用してください。DynamoDB は完全にサーバーレスなので、ベクトル検索はインフラストラクチャを管理しなくても自動的にスケーリングされます。最大 4096 次元、ユークリッド、コサイン、ドット積の距離関数、およびインラインフィルタリングをサポートします。
DynamoDB でのベクトル検索入門
このチュートリアルでは、DynamoDB コンソールを使用して既存の DynamoDB テーブルにベクトル検索を追加する方法を示します。このシナリオには、製品カタログテーブルを備えたオンラインスポーツ用品店が含まれています。各アイテムには、 ProductID 、カテゴリ、説明、マーケットプレイス、名前、価格などの標準的な操作属性があります。目的は、セマンティック検索を追加することで、購入者が完全一致するキーワードではなく、自然言語によるクエリを使って商品を検索できるようにすることです。
1.DynamoDB テーブルを準備する
セマンティック検索を有効にするために、まずテーブルにすでに保存されている商品説明のベクトル埋め込みを生成します。埋め込みとは、機械学習モデルによって生成され、テキストの内容が持つ意味を捉えた数値表現です。説明が似ている2つの項目は、ベクトル空間上で互いに近い位置にある埋め込みを持つため、これによって類似度検索が可能になります。

Amazon Bedrock Titan Text Embeddings やその他の埋め込みモデルを使用して埋め込みを生成し、AWS マネジメントコンソール、AWS コマンドラインインターフェイス (AWS CLI)、AWS SDK、AWS CloudFormation、またはその他の IaC ツールを使用して、それらをテーブルに追加できます。
既存のProductCatalogのようなテーブルでは、UpdateItem呼び出しを使用して、各項目にdescriptionEmbeddingという新しい属性として埋め込みを追加します。DynamoDB は、既存の List データ型を使用してベクトル埋め込みを格納します。リストの各要素は、埋め込みベクトルの単一の浮動小数点数を表す数値です。つまり、既存の運用データの属性と一緒にベクトルを保存するために、新しいデータ型を導入したり、スキーマを変更したりする必要はありません。
2.ベクトルインデックスの作成
DynamoDBコンソールでProductCatalogテーブルを開き、インデックスタブを選択します。ベクトルインデックスを作成 を選択します。ベクトルインデックスを作成ページでは、次のようにインデックスの詳細を入力します。インデックス名としてProductDescriptionIndex、ベクトル属性としてdescriptionEmbeddingを入力します。

埋め込みモデルの出力と一致する次元数を入力し、距離関数としてコサインを選択します。コサインはベクトルの大きさではなく角度を測定する指標であり、そのためテキスト埋め込みの意味的類似性を比較するのに有効です。DynamoDB のベクトル検索では、コサイン に加えて、ユークリッド距離 と ドット積の距離関数もサポートされています。
- ユークリッド:購入回数などの数値でアイテムをクラスタリングする場合など、ベクトルの大きさが意味のある場合に使用します。
- ドット積:方向と大きさの両方が重要な場合に使用します。たとえば、関心の位置合わせと周波数を一緒に重み付けするレコメンデーションシステムの場合などです。原則として、距離関数を埋め込みモデルのトレーニングに使用した関数と一致させると、精度が最も高くなります。
パーティションキーとしてマーケットプレイスに入ります。ベクトルインデックスのパーティションキーは、DynamoDB がベクトルを各パーティションにどのように分散配置するかを制御するものであり、予測可能な低レイテンシーを維持しながら、インデックスを水平スケールアウトできるようにします。各検索は1つのパーティションキー値を対象として実行されます。そのため、複数のマーケットプレイス向けの商品カタログであっても、インデックス全体をスキャンすることなく、特定のマーケットプレイスの在庫のみを検索できます。パーティションキーは必須ではありませんが、大規模なデータセットやクエリスループットが高いワークロードでは、使用することが推奨されます。
インラインフィルター属性を展開し、フィルター属性としてカテゴリを追加します。これにより、クエリ時に検索結果を特定の製品カテゴリに絞り込むことができます。フィルター条件では、完全一致の値のみサポートされます。BETWEEN や BEGINS_WITH のような範囲条件はサポートされていません。検索結果にすべてのテーブル属性が含まれるよう、属性の投影はすべてに設定したままにしています。ベクトルインデックスを作成 を選択し、インデックスのステータスが アクティブ に変わるまで待ちます。
3.ベクトル検索を実行
商品説明に使用したのと同じ埋め込みモデルを使用して、「夏用の軽量ランニングシューズ」などの自然言語検索用語からクエリベクトルを生成します。DynamoDB コンソールでは、左側のナビゲーションペインで 項目を検索を選択し、ProductCatalogテーブルを選択します。
検索を選択してベクトル検索モードに切り替えます。ベクトルインデックスを選択ドロップダウンからProductDescriptionIndex を選択し、クエリベクトルを検索ベクトルフィールドに貼り付け、結果の数 (上位 K) を 5 に設定します。パーティションキー値として US と入力して、検索範囲を米国のマーケットプレイスに限定します。 インラインフィルター属性を拡張し、カテゴリをフットウェアと同じに設定して、検索をフットウェア製品のみに絞り込みます。最後に、実行を選択します。

DynamoDB は、フットウェアカテゴリ内で意味的に最も類似している5件の商品を、類似度スコアの高い順に返します。また、そのレスポンスには、商品名や価格などの通常の運用データ属性もあわせて含まれます。類似度スコアの意味は、インデックスに選択した距離関数によって異なります。コサイン距離関数とユークリッド距離関数では、類似度スコア値が低いほど類似度が高く、スコアが 0 の場合はベクトルが同一であることを示します。点積距離関数では、類似度スコアの値が高いほど類似度が高くなります。
API の呼び出しやドキュメントの検索など、ベクトル検索をプログラムで操作するには、お好みの AI コーディングツールで AWS MCP サーバーとプラグインを試してください。 詳細については、 Amazon DynamoDB 開発者ガイドをご覧ください。
今日から始めよう
Amazon DynamoDB のベクトル検索は、一般的に AWS GovCloud (米国) リージョンを含むすべての商用 AWS リージョンで利用できます。リージョンごとの提供状況や今後のロードマップについては、AWS のリージョン別提供機能にアクセスしてください。料金の詳細については、Amazon DynamoDB 料金表ページをご覧ください。
ぜひ 8 月 5 日から DynamoDB のベクトル検索をお試しください。ご意見やご要望は、Amazon DynamoDB の AWS re:Post、または通常ご利用の AWS サポート窓口までお寄せください。
原文はこちらです。