チュートリアル: Amazon OpenSearch Serverless の開始方法 - Amazon OpenSearch Service

チュートリアル: Amazon OpenSearch Serverless の開始方法

このチュートリアルでは、Amazon OpenSearch Serverless の検索コレクションを準備して、迅速に実行するための基本的な手順を説明します。検索コレクションを使用すると、内部ネットワーク内のアプリケーション、および e コマースウェブサイトの検索やコンテンツ検索などのインターネットに接続されたアプリケーションを強化できます。

ベクトル検索コレクションの使用方法については、「ベクトル検索コレクションの使用」を参照してください。コレクションの使用に関する詳細については、このガイドの「Amazon OpenSearch Serverless コレクションの管理」とその他のトピックを参照してください。

このチュートリアルでは、次の手順を実行します。

  1. アクセス許可を設定する

  2. コレクションを作成する

  3. データをアップロードおよび検索する

  4. コレクションを削除する

    注記

    IndexName には ASCII 文字のみを使用することをお勧めします。IndexName に ASCII 文字を使用しない場合、CloudWatch メトリクスの IndexName は、非 ASCII 文字の URL エンコード形式に変換されます。

ステップ 1: アクセス許可を設定する

このチュートリアルを完了し、OpenSearch Serverless の使用を平常的に行うには、IAM による適切なアクセス許可が必要です。このチュートリアルでは、コレクションを作成し、アップロードしたデータの検索を行い、最後にそのコレクションを削除します。

ユーザーまたはロールには、以下の最低限の許可を含む ID ベースのポリシーが、アタッチされている必要があります。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "aoss:CreateCollection", "aoss:ListCollections", "aoss:BatchGetCollection", "aoss:DeleteCollection", "aoss:CreateAccessPolicy", "aoss:ListAccessPolicies", "aoss:UpdateAccessPolicy", "aoss:CreateSecurityPolicy", "aoss:GetSecurityPolicy", "aoss:UpdateSecurityPolicy", "iam:ListUsers", "iam:ListRoles" ], "Effect": "Allow", "Resource": "*" } ] }

OpenSearch Serverless での IAM アクセス許可の詳細については、「Amazon OpenSearch Serverless 向けの アイデンティティとアクセス管理」を参照してください。

ステップ 2: コレクションを作成する

コレクションとは、特定のワークロードやユースケースを連携してサポートする、OpenSearch インデックスのグループです。

OpenSearch Serverless コレクションを作成するには
  1. Amazon OpenSearch Service コンソール (https://console.aws.amazon.com/aos/home) を開きます。

  2. 左側のナビゲーションペインで [Collections] (コレクション) 、[Create collection] (コレクションを作成) を選択します。

  3. コレクションに movies という名前を付けます。

  4. コレクションタイプでは、[Search] (検索) を選択します。詳細については、「Choosing a collection type」(コレクションタイプの選択) を参照してください。

  5. [セキュリティ]で、[標準作成] を選択します。

  6. [暗号化] で、[AWS 所有のキー を使用] を選択します。OpenSearch Serverless は、この AWS KMS key を使用してデータを暗号化します。

  7. [Network] (ネットワーク) で、コレクションのネットワーク設定を行います。

    • アクセスタイプには、[Public] (パブリック) を選択します。

    • リソースタイプには、[OpenSearch エンドポイントへのアクセスを有効にする][OpenSearch Dashboards へのアクセスを有効にする] の両方を選択します。データのアップロードと検索に、OpenSearch Dashboards を使用するため、上記の両方を有効にする必要があります。

  8. [次へ] を選択します。

  9. [Configure data access] (データアクセスの設定) で、コレクションのアクセス設定をセットアップします。データアクセスポリシーにより、コレクション内のデータに対し、ユーザーとロールがアクセスできるようになります。以下のチュートリアルの例では、movies コレクション内にあるデータのインデックス作成と検索に必要なアクセス許可を、1 人のユーザーに提供します。

    movies コレクションに対するアクセスを提供する単一のルールを作成します。このルールに、「Movies collection access」権という名前を付けます。

  10. [Add principals] (プリンシパルを追加)、[IAM users and roles] (IAM ユーザーとロール) の順に選択し、OpenSearch Dashboards へのサインインとデータのインデックス作成に使用する IAM ユーザーを選択します。[保存] を選択します。

  11. [Index permissions] (インデックス作成の許可) で、すべての許可を選択します。

  12. [次へ] を選択します。

  13. アクセスポリシーの設定では、[Create a new data access policy] (新しいデータアクセスポリシーとして作成する) を選択し、ポリシーに [movies] という名前を付けます。

  14. [次へ] を選択します。

  15. コレクションの設定を確認して、[Submit] (送信) を選択します。コレクションステータスが Active になるまで数分待機します。

ステップ 3: データをアップロードして検索する

OpenSearch Serverless コレクションへのデータのアップロードには、Postman または cURL が使用できます。簡潔に言うと、これらの例では OpenSearch Dashboards コンソール内の開発ツールを使用しています

movies コレクションのデータをインデックス化して検索するには
  1. 左側のナビゲーションペインで [Collections] (コレクション) を選択した後、「movies」コレクションを選択してその詳細ページを開きます。

  2. コレクションの OpenSearch Dashboards URL を選択します。この URL の形式は、https://dashboards.{region}.aoss.amazonaws.com/_login/?collectionId={collection-id} になります。

  3. OpenSearch Dashboards 内で左側のナビゲーションペインを開き、[Dev Tools] (開発ツール) を選択します。

  4. movies-index というインデックスを 1 つ作成するには、次のリクエストを送信します。

    PUT movies-index
    OpenSearch Dashboards console showing PUT request for movies-index with JSON response.
  5. 1 つのドキュメントを movies-index にインデックスするには、次のリクエストを送信します。

    PUT movies-index/_doc/1 { "title": "Shawshank Redemption", "genre": "Drama", "year": 1994 }
  6. OpenSearch Dashboards 内でデータを検索するためには、少なくとも 1 つのインデックスパターンを設定する必要があります。OpenSearch は、そのパターンを使用して、分析する対象のインデックスを特定します。左のナビゲーションパネルを開き、[Stack Management] (スタック管理)、[Index Patterns] (インデックスパターン) の順に選択してから、[Create index pattern] (インデックスパターンを作成) を選択します。このチュートリアルでは、movies と入力します。

  7. [次のステップ] を選択してから、[インデックスパターンの作成] を選択します。パターンが作成されたら、title および genre などのさまざまなドキュメントフィールドを表示できます。

  8. データの検索を開始するには、左のナビゲーションパネルを再度開き [Discover] (検出) を選択するか、開発ツールの検索 API を使用します。

エラー処理

インデックスおよび検索オペレーションを実行すると、次のエラーレスポンスが表示されることがあります。

  • HTTP 507 – 内部サーバーエラーが発生したことを示します。このエラーは通常、OpenSearch コンピューティングユニット (OCU) がリクエスト量またはリクエストの複雑さによって過負荷状態になっていることを示します。OpenSearch Serverless は負荷を管理するために自動的にスケーリングされますが、追加のリソースのデプロイに遅延が生じる可能性があります。

    このエラーを軽減するには、エクスポネンシャルバックオフ再試行ポリシーを実装します。このアプローチにより、リクエストレートを一時的に低減させ、負荷を効果的に管理できます。詳細については、「AWS SDK とツールのリファレンスガイド」の「Retry behavior」を参照してください。

  • HTTP 402 – OpenSearch コンピューティングユニット (OCU) の最大容量制限に達したことを示します。ワークロードを最適化して OCU 使用量を減らすか、クォータの引き上げをリクエストしてください。

ステップ 4: コレクションを削除する

movies コレクションはテスト用のため、テストを終了したら忘れずに削除してください。

OpenSearch Serverless コレクションを削除するには
  1. Amazon OpenSearch Service コンソールに戻ります。

  2. 左側のナビゲーションペインで [Collections] (コレクション) を選択した後、「movies」コレクションを選択します。

  3. [削除] を選択して、削除を確認します。

次のステップ

ここまでで、コレクションおよびデータインデックスの作成に関する練習が終わっています。さらに、以下の演習のいくつかも有用です。