Aurora (PostgreSQL)
Aurora (PostgreSQL) コネクタは、2026 年 5 月 31 日まで既存のお客様を対象に引き続き完全にサポートされます。新規ユーザーがこのコネクタを使用することはできなくなりましたが、現在のユーザーは中断なく引き続きご使用いただけます。コネクタポートフォリオは、よりスケーラブルでカスタマイズ可能なソリューションを提供するために継続的に進化しています。今後の統合のために、柔軟性を高めながら、より広範なエンタープライズユースケースをサポートするように設計された、Amazon Kendra Custom Connector Framework[1] を検討いただくことをお勧めします。
Aurora は、クラウド向けに構築されたリレーショナルデータベース管理システム (RDBMS) です。Aurora ユーザーであれば、Amazon Kendra を使用して Aurora (PostgreSQL) データソースのインデックスを作成できます。Amazon Kendra Aurora (PostgreSQL) データソースコネクタは、PostgreSQL 1 をサポートしています。
Amazon Kendra コンソールと TemplateConfiguration API を使用して、Amazon Kendra を Aurora (PostgreSQL) データソースに接続できます。
Amazon Kendra Aurora (PostgreSQL) データソースコネクタのトラブルシューティングについては、「データソースのトラブルシューティング」を参照してください。
サポートされている機能
-
フィールドマッピング
-
ユーザーコンテキストフィルタリング
-
包含/除外フィルター
-
完全および増分コンテンツ同期
-
仮想プライベートクラウド (VPC)
前提条件
Amazon Kendra を使用して Aurora (PostgreSQL) データソースのインデックスを作成するには、Aurora (PostgreSQL) および AWS アカウントでこれらの変更を行ってください。
Aurora (PostgreSQL) で以下を確認してください。
-
データベースユーザー名とパスワードを記録済み。
ベストプラクティスとして、Amazon Kendra には読み取り専用のデータベース認証情報を指定します。
-
コピーしたデータベースのホスト URL、ポート、インスタンス。
-
各ドキュメントが Aurora (PostgreSQL) および同じインデックスを使用予定の他のデータソース間で一意であることが確認されていること。インデックスに使用する各データソースには、データソース全体に同じドキュメントが含まれていてはなりません。ドキュメント ID はインデックス全体に適用され、インデックスごとに一意である必要があります。
AWS アカウント で以下を確認してください。
-
Amazon Kendra インデックスが作成済みで、API を使用している場合はインデックス ID を記録済み。
-
データソース用の IAM ロールが作成済みで、API を使用している場合は IAM ロールの ARN を記録済み。
認証タイプと認証情報を変更した場合、正しい AWS Secrets Manager シークレット ID にアクセスできるように IAM ロールを更新する必要があります。
-
Aurora (PostgreSQL) の認証情報を AWS Secrets Manager シークレットに保存し、API を使用している場合は、シークレットの ARN を記録済み。
認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。認証情報とシークレットを、データソース、コネクタバージョン 1.0 と 2.0 (該当する場合) で再利用することは推奨しません。
既存の IAM ロールやシークレットがない場合は、Aurora (PostgreSQL) データソースを Amazon Kendra に接続するときに、コンソールを使用して新しい IAM ロールと Secrets Manager シークレットを作成できます。API を使用している場合は、既存の IAM ロールと Secrets Manager シークレットの ARN、およびインデックス ID を指定する必要があります。
接続手順
Amazon Kendra を Aurora (PostgreSQL) データソースに接続するには、Amazon Kendra がデータにアクセスできるように Aurora (PostgreSQL) 認証情報の詳細を入力する必要があります。Amazon Kendra の Aurora (PostgreSQL) をまだ設定していない場合は、「前提条件」を参照してください。
- Console
-
Amazon Kendra を Aurora (PostgreSQL) に接続するには
-
AWS マネジメントコンソール にサインインして、Amazon Kendra コンソール を開きます。
-
左側のナビゲーションペインで、[インデックス] を選択し、インデックスのリストから使用するインデックスを選択します。
[インデックスの設定] で、[ユーザーアクセスコントロール] 設定を設定または編集できます。
-
[使用開始] ページで、[データソースを追加] を選択します。
-
[データソースを追加] ページで [Aurora (PostgreSQL) コネクタ] を選択し、[コネクタを追加] を選択します。バージョン 2 (該当する場合) を使用している場合は、「V2.0」タグが付いた [Aurora (PostgreSQL) コネクタ] を選択します。
-
[データソースの詳細を指定] ページで、次の情報を入力します。
-
[名前と説明] の [データソース名] に、データソースの名前を入力します。ハイフン (-) は使用できますが、スペースは使用できません。
-
(オプション) [説明] - オプションで、データソースの説明を入力します。
-
[デフォルト言語] - インデックス用にドキュメントをフィルターするための言語。特に指定しない限り、言語はデフォルトで英語に設定されます。ドキュメントのメタデータで指定された言語は、選択した言語よりも優先されます。
-
[タグ] の [新しいタグを追加] - リソースの検索とフィルタリングや、AWS コストの追跡を行うためのオプションのタグを含めることができます。
-
[次へ] を選択します。
-
[アクセスとセキュリティの定義] ページで、次の情報を入力します。
-
[ソース] には、次の情報を入力します。
-
[ホスト] – データベースのホスト URL を入力します (例: http://instance
URL.region.rds.amazonaws.com)。
-
[ポート] – データベースポートを入力します (例: 5432)。
-
[インスタンス] – データベースインスタンスを入力します (例: postgres)。
-
[SSL 証明書の場所を有効にする] - SSL 証明書ファイルへの Amazon S3 パスの入力を選択します。
-
[認証] には、次の情報を入力します。
-
[AWS Secrets Manager シークレット] - Aurora (PostgreSQL) の認証情報を保存する既存のシークレットを選択するか、新しい Secrets Manager シークレットを作成します。新しいシークレットの作成を選択すると、AWS Secrets Manager シークレットウィンドウが開きます。
-
[AWS Secrets Manager シークレットウィンドウを作成] に次の情報を入力します。
-
[シークレット名] - シークレットの名前。シークレット名に、プレフィックス「AmazonKendra-Aurora (PostgreSQL)-」が自動的に追加されます。
-
[データベースユーザー名] と [パスワード] - データベースからコピーした認証情報の値を入力します。
-
[保存] を選択します。
-
[仮想プライベートクラウド (VPC)] - VPC の使用を選択できます。選択する場合は、[サブネット] と [VPC セキュリティグループ] を追加する必要があります。
-
[IAM ロール] - 既存の IAM ロールを選択するか、新しい IAM ロールを作成して、リポジトリの認証情報とインデックスコンテンツにアクセスします。
インデックスに使用される IAM ロールは、データソースには使用できません。インデックスやよくある質問に既存のロールが使用されているかどうかが不明な場合は、エラーを避けるため、[新しいロールを作成] を選択してください。
-
[次へ] を選択します。
-
[同期設定の構成] ページで、次の情報を入力します。
-
[同期の範囲] で、次のオプションから選択します。
-
[SQL クエリ] - SELECT や JOIN オペレーションなどの SQL クエリステートメントを入力します。SQL クエリは 32 KB 未満である必要があります。また、32 KB 未満で、セミコロン (;) を含めないでください。Amazon Kendra は、クエリに一致するすべてのデータベースコンテンツをクロールします。
-
[プライマリキー列] - データベーステーブルのプライマリキーを指定します。これにより、データベース内のテーブルが識別されます。
-
[タイトル列] - データベーステーブル内のドキュメントタイトル列の名前を指定します。
-
[本文列] - データベーステーブル内のドキュメント本文列の名前を指定します。
-
[その他の設定 - オプション] で、すべてのファイルを同期する代わりに特定のコンテンツを同期するには、次のオプションから選択します。
-
[変更検出列] - コンテンツの変更を検出するために Amazon Kendra が使用する列の名前を入力します。Amazon Kendra はこれらの列のいずれかに変更があると、コンテンツのインデックスを再作成します。
-
[ユーザー ID 列] - コンテンツへのアクセスを許可するユーザー ID を含む列の名前を入力します。
-
[グループ列] - コンテンツへのアクセスを許可するグループを含む列の名前を入力します。
-
[ソース URL 列] - インデックスを作成するソース URL を含む列の名前を入力します。
-
[タイムスタンプ列] - タイムスタンプを含む列の名前を入力します。Amazon Kendra はタイムスタンプ情報を使用してコンテンツの変更を検出し、変更されたコンテンツのみを同期します。
-
[タイムゾーン列] - クロールするコンテンツのタイムゾーンを含む列の名前を入力します。
-
[タイムスタンプの形式] - コンテンツの変更を検出してコンテンツを再同期するために使用するタイムスタンプの形式を含む列の名前を入力します。
-
[同期モード] - データソースのコンテンツが変更されたときのインデックスの更新方法を選択します。Amazon Kendra でデータソースを初めて同期すると、デフォルトですべてのコンテンツがクロールされ、インデックスが作成されます。同期モードオプションとして完全同期を選択していない場合でも、最初の同期が失敗した場合は、データの完全同期を実行する必要があります。
-
完全同期: データソースがインデックスと同期されるたびに、既存のコンテンツを置き換えて、すべてのコンテンツのインデックスを新たに作成します。
-
新規作成、変更の同期: データソースがインデックスと同期するたびに、新規作成および変更されたコンテンツのみのインデックスを作成します。Amazon Kendra は、データソースのメカニズムを利用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツのインデックスを作成することができます。
-
新規作成、変更、削除の同期: データソースがインデックスと同期するたびに、新規作成、変更、削除されたコンテンツのみのインデックスを作成します。Amazon Kendra は、データソースのメカニズムを利用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツのインデックスを作成することができます。
-
[同期実行スケジュール] の [頻度] - Amazon Kendra がデータソースと同期する頻度。
-
[次へ] を選択します。
-
[フィールドマッピングを設定] ページで、次の情報を入力します。
-
生成されたデフォルトのデータソースフィールド ([ドキュメント ID]、[ドキュメントタイトル]、[ソース URL]) から、Amazon Kendra インデックスにマッピングするフィールドを選択します。
-
[フィールドを追加] - カスタムデータソースフィールドを追加して、マッピング先のインデックスフィールド名とフィールドデータタイプを作成します。
-
[次へ] を選択します。
-
[確認と作成] ページで、入力した情報が正しいことを確認し、[データソースを追加] を選択します。このページで情報の編集を選択することもできます。データソースが正常に追加されると、データソースが [データソース] ページに表示されます。
- API
-
Amazon Kendra を Aurora (PostgreSQL) に接続するには
TemplateConfiguration API を使用して、以下を指定する必要があります。
-
[データソース] — TemplateConfiguration JSON スキーマを使用する場合は、データソースタイプを JDBC と指定します。また、CreateDataSource API を呼び出す場合は、データソースを TEMPLATE と指定します。
-
データベースタイプ - データベースタイプを postgresql として指定する必要があります。
-
[SQL クエリ] - SELECT や JOIN オペレーションなどの SQL クエリステートメントを入力します。SQL クエリは 32 KB 未満にする必要があります。Amazon Kendra はクエリに一致するすべてのデータベースコンテンツをクロールします。
-
[同期モード] - データソースのコンテンツが変更されたときに、Amazon Kendra がインデックスを更新する方法を指定します。Amazon Kendra でデータソースを初めて同期すると、デフォルトですべてのコンテンツがクロールされ、インデックスが作成されます。同期モードオプションとして完全同期を選択していない場合でも、最初の同期が失敗した場合は、データの完全同期を実行する必要があります。以下のいずれかから選択できます。
-
FORCED_FULL_CRAWL は、データソースがインデックスと同期されるたびに、既存のコンテンツを置き換えて、すべてのコンテンツのインデックスを新たに作成します。
-
FULL_CRAWL は、データソースがインデックスと同期するたびに、新規作成、変更、削除されたコンテンツのみのインデックスを作成します。Amazon Kendra は、データソースのメカニズムを利用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツのインデックスを作成することができます。
-
CHANGE_LOG は、データソースがインデックスと同期するたびに、新規作成および変更されたコンテンツのインデックスのみを作成します。Amazon Kendra は、データソースのメカニズムを利用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツのインデックスを作成できます。
-
[シークレット Amazon リソースネーム (ARN)] - Aurora (PostgreSQL) アカウントで作成した認証情報が保存されている Secrets Manager シークレットの Amazon リソースネーム (ARN) を指定します。シークレットは、次のキーを含む JSON 構造に保存されます。
{
"user name": "database user name",
"password": "password"
}
認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。認証情報とシークレットを、データソース、コネクタバージョン 1.0 と 2.0 (該当する場合) で再利用することは推奨しません。
-
[IAM ロール] - CreateDataSource を呼び出す際に RoleArn を指定して、Secrets Manager シークレットへのアクセス許可を IAM ロールに提供し、Aurora (PostgreSQL) コネクタと Amazon Kendra に必要なパブリック API を呼び出します。詳細については、「IAM roles for Aurora (PostgreSQL) data sources」を参照してください。
オプションで、次の機能を追加することもできます。
-
[仮想プライベートクラウド (VPC)] - VpcConfiguration で CreateDataSource を呼び出すタイミングを指定します。詳細については、「Amazon VPC を使用するための Amazon Kendra の設定」を参照してください。
-
包含フィルターと除外フィルター - ユーザー ID、グループ、ソース URL、タイムスタンプ、タイムゾーンを使用して、特定のコンテンツを含めるかどうかを指定できます。
-
[ユーザーコンテキストのフィルタリングとアクセスコントロール] — ドキュメントの ACL がある場合は、Amazon Kendra がドキュメントのアクセスコントロールリスト (ACL) をクロールします。ACL 情報は、ユーザーまたはそのグループのドキュメントへのアクセスに基づいて、検索結果をフィルタリングするために使用されます。詳細については、「User context filtering」を参照してください。
-
フィールドマッピング - 選択すると、Aurora (PostgreSQL) データソースフィールドを Amazon Kendra インデックスフィールドにマッピングします。詳細については、「データソースフィールドのマッピング」を参照してください。
Amazon Kendra がドキュメントを検索するには、ドキュメント本文フィールドまたはドキュメントと同等のドキュメント本文が必要です。データソースのドキュメント本文フィールド名をインデックスフィールド名 _document_body にマッピングする必要があります。その他のすべてのフィールドはオプションです。
設定が必要なその他の重要な JSON キーのリストについての詳細は、「Aurora (PostgreSQL) テンプレートスキーマ」を参照してください。
メモ
-
削除されたデータベースの行は、Amazon Kendra が更新されたコンテンツをチェックする際に追跡されません。
-
データベースの 1 行のフィールド名と値のサイズは 400 KB を超えることはできません。
-
データベースデータソースに大量のデータがあり、初回同期後に Amazon Kendra すべてのデータベースコンテンツにインデックスを作成しない場合は、新規、変更、または削除されたドキュメントのみを同期するように選択できます。
-
ベストプラクティスとして、Amazon Kendra には読み取り専用のデータベース認証情報を指定します。
-
ベストプラクティスとして、機密データや個人を特定できる情報 (PII) を含むテーブルを追加することは避けてください。