(プレビュー) Amazon S3 ベクトルから OpenSearch Serverless へのインポート - Amazon OpenSearch Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

(プレビュー) Amazon S3 ベクトルから OpenSearch Serverless へのインポート

重要

Amazon S3 Vectors と OpenSearch Service の統合はプレビューリリースであり、変更される可能性があります。

Amazon S3 Vectors は、ベクトルの保存とクエリをネイティブにサポートする最初のクラウドオブジェクトストアを提供します。S3 Vectors は、セマンティックの意味と類似性に基づいてクエリできる、費用対効果が高く、伸縮自在で耐久性の高いベクトルストレージを提供します。1 秒未満のクエリ応答時間を提供し、ベクトルのアップロード、保存、クエリのコストを最大 90% 削減します。

Amazon S3 Vectors には S3 ベクトルバケットが導入されています。これを使用して、インフラストラクチャをプロビジョニングすることなくベクトルデータを保存、アクセス、クエリできます。ベクトルバケット内では、ベクトルインデックス内でベクトルデータを整理できます。ベクトルバケットは複数のベクトルインデックスを持つことができ、各ベクトルインデックスは数百万のベクトルを保持できます。詳細については、Amazon S3 ユーザーガイド」の「Amazon S3 ベクトルとベクトルバケットの使用」を参照してください。 Amazon S3

各ベクトルは以下で構成されます。

  • 一意のキー

  • ベクトルデータ

  • JSON 形式のオプションのメタデータ

ベクトルインデックスは、類似度検索オペレーションのユークリッドおよびコサイン距離関数をサポートします。

注記

ベクトルバケットの主な利点は、ベクトル操作のための直接 API アクセスを提供しながら、膨大なデータセットを非常に低コストで保存できることです。

Amazon S3 ベクトルバケットの作成方法などの詳細については、「Amazon S3 ユーザーガイド」の「Amazon S3 ベクトルとベクトルバケットの使用」を参照してください。 Amazon S3 このトピックで説明されている以外の OpenSearch Service との統合の詳細については、「OpenSearch Service での S3 ベクトルの使用」を参照してください。

Amazon OpenSearch Service で S3 Vectors を使用すると、クエリの頻度が低い場合にベクトルストレージのコストを削減し、需要の増加に応じてそれらのデータセットを OpenSearch にすばやく移動したり、検索機能を強化したりできます。

OpenSearch Service は Amazon S3 Vectors と統合され、Amazon S3 ベクトルバケットが単独で提供する以上のパフォーマンスと機能を提供します。必要に応じて、この統合を検討してください。

  • クエリスループットの向上

  • 1 秒未満の検索レイテンシー

  • 集計などの高度な分析機能

  • テキストデータとベクトルデータを組み合わせたハイブリッド検索

この統合は、複数のアプリケーションが異なるパフォーマンス要件で同じベクトルデータを使用する場合に特に便利です。一部のアプリケーションはコスト重視のユースケースのために Amazon S3 ベクトルバケットと直接やり取りでき、他のアプリケーションはパフォーマンス重視のオペレーションのために OpenSearch 統合を活用できます。

統合アーキテクチャ

この統合では、Amazon OpenSearchAmazon S3ベクトルインデックスと Amazon OpenSearch Serverless ベクトルコレクション間のデータパイプラインとして Amazon OpenSearch Ingestion (OSI) を使用します。OpenSearch Ingestion は、指定したベクトルインデックスからベクトルデータを自動的にエクスポートし、それを OpenSearch Serverless ベクトルコレクションに取り込み、高性能な検索オペレーションを行います。

注記

エクスポート後も、データは S3 ベクトルインデックスに残ります。データのコピーが 2 つあります。

各ベクトルインデックスは、OpenSearch Service コレクション内の対応するインデックスにマッピングされます。統合:

  • ベクトルディメンションを保持します

  • メタデータを保持します

  • OpenSearch のベクトル検索機能のデータ構造を最適化

設定後、OpenSearch Ingestion は Amazon S3 ListVectors API を使用して、指定されたベクトルインデックスからベクトルを消費することでデータエクスポートプロセスを開始します。このサービスはベクトルを並行して処理し、OpenSearch Ingestion と Amazon OpenSearch Serverless の両方のスケーリング制限を尊重しながら取り込み速度を最適化します。

取り込み中、 サービスは以下を行います。

  • OpenSearch Service で想定される形式と一致するようにベクトルデータを変換します

  • ベクトル値、メタデータ、距離メトリクスなどの重要な情報を保持します

  • インテリジェントな再試行メカニズムを通じて障害シナリオを処理する

  • 後で分析するためのデッドレターキューとして使用される Amazon S3 バケットに問題のあるレコードを配置します

統合は、ベクトルディメンション、データセットサイズ、および設定されたスケーリング制限に応じてパフォーマンスで、大規模なデータセットを効率的に処理します。OSI はパイプラインあたり最大 16 人のワーカーをスケールできますが、OpenSearch Serverless は取り込みの需要に基づいて容量を自動的に調整します。デフォルトでは、OpenSearch は maxSearch OpenSearch Serverless 側の OpenSearch Computational Unit (OCU) を 100 に増やします。

注記

統合では、以下を通じてコスト効率が優先されます。

  • エクスポート完了後の自動パイプラインシャットダウン

  • OpenSearch Serverless コレクションのスケーリング

  • Pay-per-useリソースモデル

必要な IAM 許可

統合では、サービス間の安全な通信を可能にするために、IAM アクセス許可を慎重に設定する必要があります。OpenSearch Ingestion には、Amazon S3 ベクトルインデックスからの読み取り、OpenSearch Service ベクトルコレクションへの書き込み、および関連するセキュリティポリシーの管理を行うためのアクセス許可が必要です。

このトピックの後半の手順を使用して統合を有効にすると、アクセス許可管理に次のいずれかのオプションを選択できます。

  • 必要なアクセス許可を持つサービスロールを自動的に作成することをシステムに許可する

  • 要件を満たす既存のロールを提供する

自動的に作成されたロールには、以下のポリシーが含まれます。

  • Amazon S3 ベクトルインデックス APIs へのアクセス

  • OpenSearch Service コレクションオペレーションの管理

  • 失敗した取り込み試行のデッドレターキューオペレーションの処理

既存のロールを指定する場合は、ロールに次の IAM アクセス許可があることを確認します。

(必須): OpenSearch Ingestion と OpenSearch Serverless 間のデータパイプラインのアクセス許可

{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowAPIs", "Effect": "Allow", "Action": [ "aoss:APIAccessAll", "aoss:BatchGetCollection" ], "Resource": [ "arn:aws:aoss:*:account-id:collection/collection-id" ] }, { "Sid": "allowSecurityPolicy", "Effect": "Allow", "Action": [ "aoss:CreateSecurityPolicy", "aoss:UpdateSecurityPolicy", "aoss:GetSecurityPolicy" ], "Resource": "*", "Condition":{ "StringLike":{ "aoss:collection": [ "collection-name" ] }, "StringEquals": { "aws:ResourceAccount": [ "account-id" ] } } } ] }

(必須): OpenSearch Ingestion と Amazon S3 デッドレターキュー間のデータ取り込みアクセス許可

{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3Access", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket/*" ] } ] }

(必須): OpenSearch Ingestion と Amazon S3 Vectors 間のデータ取り込みアクセス許可

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3VectorIndexAccess", "Effect": "Allow", "Action": [ "s3vectors:ListVectors", "s3vectors:GetVectors" ], "Resource": [ "arn:aws:s3vectors:region:account-id:bucket/bucket-name/index/index-name" ] } ] }

( AWS KMS 暗号化が有効になっている場合は必須): OpenSearch Ingestion と Amazon S3 Vectors 間の通信のための復号アクセス許可

{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowS3VectorDecryptionOfCustomManagedKey", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3vectors.region.amazonaws.com", "kms:EncryptionContext:aws:s3vectors:arn": "arn:aws:s3vectors:region:account-id:bucket/bucket-name" } } } ] }

Amazon S3 Vectors と OpenSearch の統合を設定する

次の手順を使用して、Amazon S3 Vectors と OpenSearch Serverless の統合を設定します。

注記

ベクトルバケットページで OpenSearch へのエクスポートオプションを選択して Amazon S3 コンソールから統合を設定するプロセスを開始した場合、手順に記載されているように、次の手順の一部のステップは適用されません。

Amazon S3 Vectors と OpenSearch Serverless の統合を設定するには
  1. Amazon OpenSearch Service コンソールで、S3 ベクトルインデックスを OpenSearch ベクトルエンジンにインポート ページを開きます。 OpenSearch Amazon S3 コンソールで OpenSearch へのエクスポートをクリックすると、ページが自動的に表示されます。OpenSearch コンソールで開始する場合は、左側のナビゲーションで統合を選択し、S3 ベクトルインデックスのインポートを選択します。

  2. ソースセクションで、Amazon S3 コンソールで を開始した場合は、ベクトルインデックスの名前とその Amazon リソースネーム (ARN) が既に指定されていることを確認します。OpenSearch コンソールで を開始した場合は、S3 ベクトルインデックス ARN フィールドにインデックス ARN を入力します。

  3. サービスアクセスセクションで、オプションを選択します。既存のロールを選択する場合は、「」の説明に従って、統合に必要なすべてのアクセス許可があることを確認します必要な IAM 許可

  4. (オプション)追加設定 を展開します。冗長性を有効にする (アクティブレプリカ) には、本番環境でこのオプションを選択したままにすることをお勧めします。最初のコレクションを作成すると、OpenSearch Serverless は 2 OCU (1 OCU はインデックス作成用、もう 1 OCU は検索用) をインスタンス化します。高可用性を確保するために、他のアベイラビリティーゾーンでスタンバイノードのセットも起動します。開発とテストの目的で、コレクションの [冗長性を有効化] 設定を無効にすることができます。これにより、2 つのスタンバイレプリカが排除され、2 つの OCU のみがインスタンス化されます。デフォルトでは、冗長アクティブレプリカが有効になっています。これは、アカウントの最初のコレクションのために合計で 4 つの OCU がインスタンス化されることを意味します。

    Amazon OpenSearch Serverless ベクトルにカスタマーマネージド AWS KMS キーを追加する で、カスタマーマネージドキーを使用してベクトルコレクションのデータを暗号化するには、このオプションを選択します。デフォルトでは、OpenSearch は を使用します AWS マネージドキー。

  5. Amazon S3 コンソールで OpenSearch へのエクスポート オプションをクリックしてこのプロセスを開始した場合、エクスポートの詳細セクションに、OpenSearch が次に実行するステップが一覧表示されます。準備ができたら、エクスポートを選択します。

    OpenSearch Service コンソールでこのプロセスを開始した場合、詳細のインポートセクションに、OpenSearch が次に実行するステップが一覧表示されます。準備ができたら、インポートを選択します。

    OpenSearch は履歴ページを開き、OpenSearch Serverless インデックスへの Amazon S3 ベクトルインデックスのすべてのエクスポート/インポートを表示します。

取り込みが成功すると、OSI は自動的にパイプラインを停止し、OpenSearch でエクスポートされたデータを維持しながら不要なコストを防止します。CloudWatch メトリクスを使用して統合の進行状況をモニタリングし、トラブルシューティングのために詳細ログにアクセスできます。

OpenSearch コレクションはアクティブのままで、最初の取り込みが完了した後もクエリに使用できます。以下を実行できます。

  • 類似度検索

  • 集計

  • 分析オペレーション