3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenSearch Serverless概要

Last updated at Posted at 2024-09-16

はじめに

BedrockでRAGの構成を実現する際のベクトルDBとしてOpenSearch Serverlessが選択肢としてあります。あまり詳細把握できていなかったので簡単にですがまとめました。prefixはaoss:というものになります。

OpenSearch Service

  • OpenSearch

    • コミュニティ主導・Apache2.0ライセンスのオープンソース検索・分析スイート
    • データストア、検索エンジンのOpenSearch、可視化、UIツールのOpenSearch Dashboardsから構成
    • セキュリティ、パフォーマンス分析、機械学習など様々なプラグインによる機能拡張が可能
    • ユースケース
      • 全文検索
      • ログ分析
  • ドキュメント

    • JSON形式で表現される単一のデータ
    • 一般的なDBのレコードに相当
  • OpenSearchの課題

    • 設計時の課題
      • データサイズ、シャード数、リクエストレートなどをベースにクラスターのサイジングやインデックスの設計が必要
    • 運用時の課題
      • ストレージはノードに紐づいているため、格納データの増加に伴ってノードの増強・増設が必要
      • スケールはB/Gデプロイを伴うため実行コストが高い

OpenSearch Serverless

  • Serverlessアーキテクチャによる運用の改善
    • インでキシング、検索、ストレージワークロードを分離。インデキシングと検索ノードは複数のAZに分散配置され、トラフィックに応じて個別にスケール
    • 実データはS3に格納されるが、検索パフォーマンスを高めるためにノードのボリュームにもキャッシュされる
    • インデックス内のデータのライフサイクルは、サービス側で管理されている

Collection

  • 概要
    • OpenSearch Serviceにおけるドメイン(クラスター)に相当する、論理的なインデックスの集合
    • API、ダッシュボードエンドポイントはコレクションごとに発行される
    • 種類
      • SEARCH collection
        • コンテンツ検索や商品検索などでの利用を想定
        • ほぼ全てのデータはノードにアタッチされたホットストレージに格納
      • TIME-SERIES collection
        • モニタリングやリアルタイム分析等で大規模なデータを扱うケースを想定
    • 利用可能なクライアント
      • OpenSearch Client Library
      • Logstash
      • Fluentd
      • Fluletbit
      • Firehose

OpenSearch Dashboards

  • 概要
    • 可視化、ログ検索用途で利用可能
    • Discover, Dashboard, Visualize, DevToolsの基本機能提供のみ

OCU(OpenSearch Capacity Unit)キャパシティ管理

  • 概要
    • 検索とインデキシングそれぞれの処理に対して、個別に割り当てられるキャパシティユニット
    • 1 OCU (1 vCPU, 6GiB RAM, 120 GiB Disk)
    • 最初のコレクションが作成されると、アカウントごと(厳密にはリージョンごと)に、検索とインデキシングに2OCUずつ、計4OCUが割り当てられる
    • 処理要求や負荷の増加に応じて自動的にOCUが増加する (スケールアウト)
    • ワークロードの有無にかかわらず、割り当てOCUに応じた時間課金となる
    • OCUは同一リージョンであれば複数コレクション間で共有

セキュリティ

  • 認証

    • ダッシュボードへのログインは、IAMユーザーの認証情報、もしくはSAMLを利用可能。複数のIdPを利用可能
    • APIアクセスでは、IAMユーザーもしくはIAMロールのクレデンシャルが必要
  • データアクセスポリシー

    • IAMユーザー、IAMロール、SAML認証時のユーザーIDまたはグループに対してコレクション・インデックスに対する操作を許可するポリシー
    • 操作の許可単位はパーミッションと呼ばれる権限セットに準ずる
    • クロスアカウントアクセスは未サポート
  • ネットワークポリシー

    • コレクションへのアクセス経路を制御する機能。単一のポリシーを複数コレクションに一括適用することも可能
    • ポリシータイプ
      • Public
      • VPC
    • アクセス制御の対象
      • APIエンドポイント
      • OpenSearch Dashboards

バックアップ

  • 現状ではスナップショットがサポートされていないため、論理的なバックアップ&リストアの仕組みが必要
  • Logstash等の対応クライアントでServerlessからデータを抽出し、S3に配置するといったアプローチが考えられるが、実際のところコレクションからのデータ取得はコストと時間がかかる
  • 検索アプリケーションであればS3やDBなどにマスターデータを保管しておく、時系列データ分析であればOpenSearch Serverlessコレクションとは別のデータストアに並行でデータを保管しておくなどの対処が現実的

制約

  • クロスアカウントアクセスは未サポート
  • 別アカウントの環境からアクセスする際は、リソース保持アカウントの認証保持を使用する必要あり
  • また、Publicアクセスがネットワークポリシーで許可されている必要あり
  • インデックスのリフレッシュ間隔は、リクエストサイズに応じて10-30sとなる。登録したドキュメントが即検索可能となることが要求されるユースケースは不向き

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?