Amazon RDS/Aurora - Amazon Kendra

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

Amazon RDS/Aurora

データベースデータソースを使用して、データベースに保存されているドキュメントにインデックスを作成することができます。データベースの接続情報を提供すると、 はドキュメントAmazon Kendraの接続とインデックス作成を行います。

Amazon Kendraは、次のデータベースをサポートしています。

  • Amazon Aurora MySQL

  • Amazon Aurora PostgreSQL

  • Amazon RDSMySQL 用

  • Amazon RDSPostgreSQL 用

注記

サーバーレス Aurora データベースはサポートされていません。

重要

この Amazon RDS/Aurora コネクタは、2023 年末までに廃止される予定です。

Amazon Kendraは、新しいデータベースデータソースコネクタをサポートするようになりました。エクスペリエンスを向上させるために、ユースケースに応じて次の新しいコネクタから選択することをお勧めします。

Amazon KendraコンソールDatabaseConfiguration API を使用して、データベースデータソースAmazon Kendraに接続できます。

Amazon Kendraデータベースデータソースコネクタのトラブルシューティングについては、「」を参照してくださいデータソースのトラブルシューティング

サポートされている機能

Amazon Kendraデータベースデータソースコネクタは、次の機能をサポートしています。

  • フィールドマッピング

  • ユーザーコンテキストフィルタリング

  • Virtual Private Cloud (VPC)

前提条件

Amazon Kendraを使用してデータベースデータソースのインデックスを作成する前に、データベースとAWSアカウントでこれらの変更を行います。

データベースで以下を確認してください。

  • データベースのユーザー名とパスワードの基本認証情報を記録しました。

  • ホスト名、ポート番号、ホストアドレス、データベース名、ドキュメントデータが含まれているデータテーブルの名前をコピーしました。PostgreSQL の場合、データテーブルはパブリックテーブルまたはパブリックスキーマである必要があります。

    注記

    ホストとポートは、インターネット上のデータベースサーバーAmazon Kendraの場所を指定します。データベース名とテーブル名Amazon Kendraは、データベースサーバー上のドキュメントデータの場所を示します。

  • ドキュメントデータを含むデータテーブル内の列の名前をコピーしました。ドキュメント ID、ドキュメント本文、ドキュメントが変更されたかどうかを検出する列 (最終更新列など)、カスタムインデックスフィールドにマッピングされるオプションのデータテーブル列を含める必要があります。Amazon Kendra の予約済みフィールド名をテーブルの列にマッピングできます。

  • Amazon RDSMySQL に使用するか別のタイプに使用するかなどのデータベースエンジンタイプ情報をコピーしました。

  • 各ドキュメントがデータベースおよび同じインデックスを使用予定の他のデータソース間で一意であることを確認しました。インデックスに使用する各データソースには、データソース全体に同じドキュメントが含まれていてはなりません。ドキュメント ID はインデックス全体に適用され、インデックスごとに一意である必要があります。

でAWS アカウント、以下があることを確認します。

  • Amazon Kendraインデックスを作成し、 API を使用している場合はインデックス ID を記録しました。

  • データソースの IAMロールを作成し、 API を使用している場合はロールの ARN を記録しましたIAM。

    注記

    認証タイプと認証情報を変更する場合は、IAMロールを更新して正しいAWS Secrets Managerシークレット ID にアクセスする必要があります。

  • データベースの認証情報を AWS Secrets Manager シークレットに保存し、API を使用している場合は、シークレットの ARN を記録済み。

    注記

    認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。認証情報とシークレットを、データソース、コネクタバージョン 1.0 と 2.0 (該当する場合) で再利用することは推奨しません

既存のIAMロールまたはシークレットがない場合は、 コンソールを使用して、データベースデータソースを接続するときに新しいIAMロールとSecrets Managerシークレットを作成できますAmazon Kendra。API を使用している場合は、既存のIAMロールとSecrets Managerシークレットの ARN とインデックス ID を指定する必要があります。

接続手順

データベースデータソースAmazon Kendraに接続するには、 がデータAmazon Kendraにアクセスできるように、データベースデータソースの必要な詳細を指定する必要があります。データベースをまだ設定していない場合はAmazon Kendra、「」を参照してください前提条件

Console

データベースAmazon Kendraに接続するには

  1. にサインインAWS マネジメントコンソールし、 Amazon Kendraコンソールを開きます。

  2. 左側のナビゲーションペインで、[インデックス] を選択し、インデックスのリストから使用するインデックスを選択します。

    注記

    [インデックスの設定] で、[ユーザーアクセスコントロール] 設定を設定または編集できます。

  3. [使用開始] ページで、[データソースを追加] を選択します。

  4. [データソースを追加] ページで、データベースコネクタを選択し、[データソースを追加] を選択します。バージョン 2 (該当する場合) を使用している場合は、「V2.0」タグが付いたデータベースコネクタを選択します。

  5. [データソースの詳細を指定] ページで、次の情報を入力します。

    1. [名前と説明][データソース名] に、データソースの名前を入力します。ハイフン (-) は使用できますが、スペースは使用できません。

    2. (オプション) [説明] - オプションで、データソースの説明を入力します。

    3. [デフォルト言語] - インデックス用にドキュメントをフィルターするための言語。特に指定しない限り、言語はデフォルトで英語に設定されます。ドキュメントのメタデータで指定された言語は、選択した言語よりも優先されます。

    4. タグで新しいタグを追加する - リソースを検索してフィルタリングしたり、AWSコストを追跡したりするためのオプションのタグを含めます。

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

  6. [アクセスとセキュリティの定義] ページで、次の情報を入力します。

    1. [エンドポイント] - DNS ホスト名、IPv4 アドレス、または IPv6 アドレス。

    2. [ポート] - ポート番号。

    3. [データベース] - データベース名。

    4. [テーブル名] - テーブル名。

    5. [認証のタイプ][既存] または [新規] を選択してデータベース認証情報を保存します。新しいシークレットの作成を選択すると、AWS Secrets Manager シークレットウィンドウが開きます。

      1. [AWS Secrets Manager シークレットウィンドウを作成] に次の情報を入力します。

        1. [シークレット名] - シークレットの名前。シークレット名に、プレフィックス「AmazonKendra-database-」が自動的に追加されます。

        2. [ユーザー名][パスワード] - データベースアカウントから認証情報の値を入力します。

        3. [認証を保存] を選択します。

    6. [仮想プライベートクラウド (VPC)] - VPC の使用を選択できます。選択する場合は、[サブネット][VPC セキュリティグループ] を追加する必要があります。

      注記

      プライベートサブネットを使用する必要があります。RDS インスタンスが VPC のパブリックサブネットにある場合は、パブリックサブネット内の NAT ゲートウェイへのアウトバウンドアクセス権を持つプライベートサブネットを作成します。VPC 設定で指定するサブネットは、米国西部 (オレゴン)、米国東部 (バージニア北部)、欧州 (アイルランド) のいずれかに存在する必要があります。

    7. IAMrole — 既存のIAMロールを選択するか、リポジトリの認証情報とインデックスコンテンツにアクセスするための新しいIAMロールを作成します。

      注記

      IAMインデックスに使用される ロールは、データソースには使用できません。インデックスやよくある質問に既存のロールが使用されているかどうかが不明な場合は、エラーを避けるため、[新しいロールを作成] を選択してください。

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

  7. [同期設定の構成] ページで、次の情報を入力します。

    1. ユースケースに基づいて [Aurora MySQL][MySQL][Aurora PostgreSQL][PostgreSQL] の中から選択してください。

    2. [SQL 識別子を二重引用符で囲む] - 選択して SQL 識別子を二重引用符で囲んでください。例えば、“columnName”。

    3. ACL 列変更検出列 — が変更検出Amazon Kendraに使用する列 (最後に更新された列など) とアクセスコントロールリストを設定します。

    4. 同期実行スケジュール、頻度 - Amazon Kendraがデータソースと同期する頻度を選択します。

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

  8. [フィールドマッピングを設定] ページで、次の情報を入力します。

    1. Amazon Kendraデフォルトフィールドマッピング — インデックスにマッピングするAmazon Kendra生成されたデフォルトデータソースフィールドから選択します。document_id および document_body[データベース列] 値を追加する必要があります。

    2. [カスタムフィールドマッピング] - カスタムデータソースフィールドを追加して、マッピング先のインデックスフィールド名とフィールドデータタイプを作成します。

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

  9. [確認と作成] ページで、入力した情報が正しいことを確認し、[データソースを追加] を選択します。このページで情報の編集を選択することもできます。データソースが正常に追加されると、データソースが [データソース] ページに表示されます。

API

データベースAmazon Kendraに接続するには

次の DatabaseConfiguration API を指定する必要があります。

  • ColumnConfiguration - インデックスがデータベースからドキュメント情報を取得する必要がある場所に関する情報。詳細については、「ColumnConfiguration」を参照してください。DocumentDataColumnName (ドキュメント本文または本文)、DocumentIdColumnName、および ChangeDetectingColumn (最終更新列など) フィールドを指定する必要があります。DocumentIdColumnName フィールドにマッピングされた列は整数の列である必要があります。次の例は、データベースデータソースの単純な列構成を示しています。

    "ColumnConfiguration": { "ChangeDetectingColumns": [ "LastUpdateDate", "LastUpdateTime" ], "DocumentDataColumnName": "TextColumn", "DocumentIdColumnName": "IdentifierColumn", "DocoumentTitleColumnName": "TitleColumn", "FieldMappings": [ { "DataSourceFieldName": "AbstractColumn", "IndexFieldName": "Abstract" } ] }
  • ConnectionConfiguration - データベースに接続するために必要な設定情報。詳細については、「ConnectionConfiguration」を参照してください。

  • DatabaseEngineType - データベースを実行するデータベースエンジンのタイプ。の DatabaseHostフィールドは、データベースの Amazon Relational Database Service(Amazon RDS) インスタンスエンドポイントConnectionConfigurationである必要があります。クラスターエンドポイントを使用しないでください。

  • シークレット Amazon リソースネーム (ARN) — データベースアカウントの認証情報を含む Secrets Managerシークレットの Amazon リソースネーム (ARN) を指定します。シークレットは、次のキーを含む JSON 構造に保存されます。

    { "username": "user name", "password": "password" }

    次の例は、シークレット ARN を含むデータベース設定を示します。

    "DatabaseConfiguration": { "ConnectionConfiguration": { "DatabaseHost": "host.subdomain.domain.tld", "DatabaseName": "DocumentDatabase", "DatabasePort": 3306, "SecretArn": "arn:aws:secretmanager:region:account ID:secret/secret name", "TableName": "DocumentTable" } }
    注記

    認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。認証情報とシークレットを、データソース、コネクタバージョン 1.0 と 2.0 (該当する場合) で再利用することは推奨しません

  • IAMrole — を呼び出しCreateDataSourceて、シーSecrets Managerクレットにアクセスするためのアクセス許可を IAMロールに提供し、データベースコネクタと に必要なパブリック APIsを呼び出すRoleArnタイミングを指定しますAmazon Kendra。詳細については、「IAM roles for database data sources」を参照してください。

オプションで、次の機能を追加することもできます。

  • [仮想プライベートクラウド (VPC)] - データソース設定の一部として VpcConfiguration を指定します。「VPC を使用するための Amazon Kendra の設定」を参照してください。

    注記

    プライベートサブネットのみを使用する必要があります。RDS インスタンスが VPC のパブリックサブネットにある場合は、パブリックサブネット内の NAT ゲートウェイへのアウトバウンドアクセス権を持つプライベートサブネットを作成します。VPC 設定で指定するサブネットは、米国西部 (オレゴン)、米国東部 (バージニア北部)、欧州 (アイルランド) のいずれかに存在する必要があります。

  • フィールドマッピング - 選択すると、データベースデータソースフィールドを Amazon Kendra インデックスフィールドにマッピングします。詳細については、「データソースフィールドのマッピング」を参照してください。

    注記

    がドキュメントAmazon Kendraを検索するには、ドキュメント本文フィールドまたはドキュメントと同等のドキュメント本文が必要です。データソースのドキュメント本文フィールド名をインデックスフィールド名 _document_body にマッピングする必要があります。その他のすべてのフィールドはオプションです。

  • [ユーザーコンテキストのフィルタリングとアクセスコントロール] — ドキュメントの ACL がある場合は、Amazon Kendra がドキュメントのアクセスコントロールリスト (ACL) をクロールします。ACL 情報は、ユーザーまたはそのグループのドキュメントへのアクセスに基づいて、検索結果をフィルタリングするために使用されます。詳細については、「User context filtering」を参照してください。