ベクトルインデックスキャパシティのモニタリング
ベクトルインデックスオペレーションのキャパシティ消費量をモニタリングするには、SearchVectors リクエストで ReturnConsumedCapacity パラメータを INDEXES または TOTAL に設定し、書き込み API リクエストで INDEXES に設定します。
ベクトルインデックスオペレーションは、ベーステーブルで使用される読み取りキャパシティユニットと書き込みキャパシティユニットとは別に、2 つの単位で計測されます。
-
ベクトル検索 (VS) –
SearchVectorsオペレーションを計測する単位。VS の消費量はVectorSearchRequestBytesとして報告され、検索対象および検索結果として返されるベクトルデータのサイズに合わせてスケーリングされます。 -
ベクトル書き込み (VWR) – ベクトルインデックスにレプリケートされた書き込みを計測する単位。VWR の消費量は
VectorWriteRequestBytesとして報告され、インデックスにレプリケートされたデータのサイズに合わせてスケーリングされます。
次の例は、SearchVectors リクエストによって返される ConsumedCapacity を示しています。
{ "ConsumedCapacity": { "VectorSearchRequestBytes": 41714.0 } }
書き込みオペレーション (PutItem、UpdateItem、DeleteItem、BatchWriteItem、TransactWriteItems) の場合、レスポンスの ConsumedCapacity に、インデックス名でキー指定された VectorIndexes マップが含まれます。各エントリは、各ベクトルインデックスへの変更をレプリケートするときに消費されるキャパシティとして、VectorWriteRequestBytes を報告します。
{ "ConsumedCapacity": { "TableName": "Products", "CapacityUnits": 5.0, "Table": { "CapacityUnits": 5.0 }, "VectorIndexes": { "ProductEmbeddingIndex": { "VectorWriteRequestBytes": 4125.0 } } } }
ベクトルインデックスキャパシティは処理されたバイト単位で計測され、ベーステーブルの読み取りおよび書き込みキャパシティとは別に報告されます。これらのフィールドを使用して、ベクトルインデックスのコストを左右する要因を理解します。
-
検索コスト (
VectorSearchRequestBytes) は、主に検索対象となるベクトルのサイズに応じてスケールされます。これは、インデックス内のディメンション数と返されるデータの量に応じて増加します。検索を単一のパーティションキー値に制限すると、検索対象となるデータ量が減ります。結果にベクトル属性を含めて返すと、レスポンスにベクトルデータ全体が含まれるため、コストがさらに増加します。 -
書き込みコスト (
VectorWriteRequestBytes) は、ベクトルインデックス付き属性を変更する項目の書き込み、更新、または削除を行うたびに発生し、インデックスにレプリケートされるデータのサイズに合わせてスケーリングされます。インデックス付き属性を変更しない書き込みでは、ベクトル書き込みキャパシティは発生しません。
ディメンション数が多い埋め込みでは、各ベクトルがより多くのデータを保持するため、検索コストと書き込みコストの両方が増加します。現在の料金については、AWS ウェブサイトの「Amazon DynamoDB 料金
DynamoDB は、TableName および VectorIndexName をディメンションとして、ベクトルインデックスキャパシティを VectorSearchRequestBytes および VectorWriteRequestBytes メトリクスとして CloudWatch に発行します。これらのメトリクスを使用して、ベクトルインデックスの経時的な使用状況をグラフ化してアラームを設定します。メトリクスの定義については、「VectorSearchRequestBytes」および「VectorWriteRequestBytes」を参照してください。