

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

# JDBC を使用したデータベースへの接続
<a name="connecting-via-jdbc"></a>

このガイドでは、**Java Database Connectivity** (JDBC) を使用してデータベースを Amazon Connect Decisions に接続する方法について説明します。データベース認証情報の安全な暗号化を設定し、Amazon Connect Decisions がデータにアクセスするために使用できる接続を確立します。

## JDBC 接続とは何ですか? いつ使用すべきですか?
<a name="connecting-via-jdbc-what-is-jdbc"></a>

JDBC 接続を使用すると、Amazon Connect Decisions は既存のデータベースに接続してデータを読み取ることができます。CSV ファイルをエクスポートしてアップロードしたり、独自の抽出、変換、ロード (ETL) パイプラインを S3 にセットアップしたりする必要はありません。このアプローチは、次の場合に最適です。
+ データはすでに AWS Glue 互換のリレーショナルデータベースに保存されています。互換性のあるデータベースとバージョンについては、[このガイド](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect-jdbc-home.html)を参照してください。
+ 手動ファイルエクスポートなしでnear-real-timeデータアクセスが必要
+ データボリュームが大きく、頻繁に更新される
+ データを複製するのではなく、現在の場所に保持したい
+ より小さなデータセットを使用する場合や、ファイルベースのアップロードを優先する場合は、必要に応じて標準の CSV アップロードプロセスがよりシンプルになる場合があります。このプロセスの詳細については、「データオンボーディングユーザーガイド」を参照してください。

## 前提条件
<a name="connecting-via-jdbc-prerequisites"></a>

開始する前に、以下があることを確認してください。
+ KMS キーと Secrets Manager リソースを作成するアクセス許可を持つ AWS アカウント
+ AWS アカウント ID と Amazon Connect Decisions が動作するリージョン
+ データベース接続の詳細: ホスト名、ポート、データベース名、認証情報
+ 接続を検証するためのデータベースへの管理アクセス
+ AWS サービスからの接続を受け入れるように設定されたデータベース

## カスタマー管理の KMS キーを作成する
<a name="connecting-via-jdbc-create-kms-key"></a>

データベースを Amazon Connect Decisions に接続する前に、データベース認証情報の暗号化を設定する必要があります。AWS Key Management Service (KMS) は、このセキュリティレイヤーを提供し、接続の詳細を確実に保護します。

### KMS キーを作成する
<a name="connecting-via-jdbc-create-your-kms-key"></a>

1. **AWS KMS コンソールに移動する**
   + ブラウザで AWS マネジメントコンソールを開く
   + 上部の検索バーに「KMS」と入力し、結果から「Key Management Service」を選択します。
   + これにより、暗号化キーを管理する KMS ダッシュボードが開きます。

1. **キーの作成を開始する**
   + KMS ダッシュボードで、右上の**キーの作成**ボタンを見つけてクリックします。
   + これにより、キー作成ウィザードが開始され、セットアッププロセスが案内されます。

1. **キータイプと使用法を設定する**
   + 「キーの設定」ページで、キータイプとして**対称**を選択します (これはデフォルトおよび推奨オプションです）。
   + キーの使用時に「暗号化と復号」を選択したままにする

1. **キー識別の詳細を設定する**
   + 「エイリアス」フィールドに、次のようにキーのわかりやすい名前を入力します。 `aws-supply-chain-database-key`
   + 「説明」フィールドに、Amazon Connect Decisions データベース認証情報の暗号化キー」などのコンテキストを追加します。
   + 必要に応じて、AWS リソースの整理と追跡に役立つタグを追加します (例: Key: "Project"、Value: "Amazon Connect Decisions")。

1. **主要な管理アクセス許可を定義する**
   + このキーを管理できる IAM ユーザーまたはロールを選択します (ポリシーの作成、削除、変更)
   + 少なくとも、必要に応じて後でキーを変更できるように、独自の管理者ロールを含めます。
   + これらの管理者はキーを管理できますが、暗号化/復号に使用するアクセス許可は自動的に付与されません。
   + 「キーの削除」セクションで、キー管理者にこのキーの削除を許可します (これはデフォルトおよび推奨オプションです）。

1. **キーの使用許可を定義する**
   + このページには、 キーを使用できる IAM ユーザーとロールを選択するオプションが表示されます。
   + ここで特定のユーザーの選択をスキップし、次のステップでサービスアクセス許可を設定します。

1. **Amazon Connect Decisions サービスのキーポリシーを設定する**
   + デフォルトの JSON を含むポリシーエディタが表示されます。
   + KMS キーポリシーエディタで、既存の「Statement」配列に次のステートメントを追加します。
   + このポリシーは、アカウントにフルコントロールを付与し、Amazon Connect Decisions のサービス (Secrets Manager および Glue) がデータベース認証情報を復号できるようにします。

   ```
   {
     "Sid": "Allow GDIS service to decrypt",
     "Effect": "Allow",
     "Principal": {
       "Service": "scn.amazonaws.com"
     },
     "Action": [
       "kms:Decrypt",
       "kms:DescribeKey",
       "kms:CreateGrant",
       "kms:GenerateDataKeyWithoutPlaintext"
     ],
     "Resource": "*"
   }
   ```

1. **レビューと確定**
   + 概要ページですべての設定を確認する
   + エイリアス、説明、ポリシーが正しいことを確認します。
   + **完了**をクリックしてキーを作成します
   + 作成されると、新しいキーがリストに表示される KMS ダッシュボードに戻ります。

### 期待すること
<a name="connecting-via-jdbc-kms-what-to-expect"></a>

キーの作成は即時です。作成されると、KMS コンソールに「有効」というステータスの新しいキーが表示されます。これで、キーは Secrets Manager でデータベース認証情報を暗号化する準備ができました。

## AWS Secrets Manager を設定する
<a name="connecting-via-jdbc-configure-secrets-manager"></a>

KMS キーを取得したら、AWS Secrets Manager でシークレットを作成してデータベース認証情報を安全に保存し、Amazon Connect Decisions がこのシークレットにアクセスできるようにするリソースポリシーを設定します。

### シークレットを作成する
<a name="connecting-via-jdbc-create-your-secret"></a>

1. **AWS Secrets Manager に移動する**
   + AWS マネジメントコンソールの検索バーに「Secrets Manager」と入力します。
   + 結果から「Secrets Manager」を選択してサービスダッシュボードを開きます。

1. **新しいシークレットの作成を開始する**
   + **新しいシークレットを保存する**ボタンをクリックします。
   + 「シークレットタイプを選択」ページで、**他のタイプのシー**クレットを選択します (これにより、認証情報を柔軟に構成できます）。

1. **データベース認証情報を入力する**
   + キーと値のペアセクションで、データベース接続の詳細を**文字列として追加します**。

   ```
   Key: username, Value: your database username
   Key: password, Value: your database password
   Key: host, Value: your database hostname (e.g., database.example.com)
   Key: port, Value: your database port (e.g., 3306 for MySQL)
   Key: database, Value: your database name
   ```

1. **暗号化キーを選択する**
   + 「暗号化キー」で、**AWS KMS キーの選択**を選択します
   + ドロップダウンから、ステップ 1 で作成した KMS キーを選択します (例: `aws-supply-chain-database-key`)。
   + これにより、認証情報がカスタマーマネージドキーで暗号化されます。

1. **シークレットに名前を付ける**
   + シークレットのわかりやすい名前を入力します。 `aws-supply-chain-production-database`
   + 必要に応じて、Amazon Connect Decisions 本番環境のデータベース認証情報」などの説明を追加します。
   + 組織に必要なタグを追加する (例: Key: "Environment"、Value: "Production")

1. **リソースアクセス許可を追加する**
   + 「アクセス許可の編集」をクリックします。ポリシーエディタで、次のポリシーを貼り付けます。このポリシーは、Amazon Connect Decisions のサービスがシークレットを読み取ることを許可します。

   ```
   {
     "Version" : "2012-10-17",
     "Statement" : [ {
       "Effect" : "Allow",
       "Principal" : {
         "Service" : "scn.amazonaws.com"
       },
       "Action" : [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ],
       "Resource" : "<COPY-THE-SECRET-ARN-HERE-AFTER-CREATING>"
     } ]
   }
   ```

1. **ポリシーを保存する**
   + **保存**をクリックしてリソースポリシーを適用します
   + ポリシーがアクティブになり、Amazon Connect Decisions がデータベース認証情報を取得できるようになりました。

1. **ローテーションを設定する (オプション)**
   + この設定では、自動ローテーション**を無効にするを選択して自動ローテーション**をスキップできます。
   + セキュリティポリシーで必要な場合は、後でローテーションを有効にできます。

1. **確認と作成**
   + すべてのシークレットの詳細を確認する
   + **Store** をクリックしてシークレットを作成します。
   + Secrets Manager ダッシュボードに戻ります。

1. **シークレット ARN を保存する**
   + シークレットリストで新しく作成したシークレットを検索する
   + シークレット名をクリックして詳細ページを開きます。
   + 上部にシークレット ARN が表示されます。
   + この ARN をコピーして保存する
   + ARN 形式は次のようになります。 `arn:aws:secretsmanager:us-east-1:123456789012:secret:aws-supply-chain-production-database-AbCdEf`

1. **リソースのアクセス許可を編集する**
   + 「アクセス許可の編集」をクリックします。
   + コピーしたシークレット ARN を貼り付け、コピーした ARN `<COPY-THE-SECRET-ARN-HERE-AFTER-CREATING>`に置き換えます。
   + **保存**をクリックしてポリシーをアタッチする

### 期待すること
<a name="connecting-via-jdbc-secrets-what-to-expect"></a>

これで、シークレットは KMS キーで安全に保存および暗号化されます。Amazon Connect Decisions のサービスには、データベース接続を確立するときに認証情報を取得するアクセス許可がありますが、認証情報は保管中および転送中に暗号化されたままです。

## データベースを Amazon Connect 決定に接続する
<a name="connecting-via-jdbc-connect-database"></a>

KMS キーとシークレットを設定したら、Amazon Connect Decisions で JDBC 接続を確立する準備が整います。

### JDBC 接続を設定する
<a name="connecting-via-jdbc-configure-connection"></a>

1. **Amazon Connect Decisions > Data Management に移動する**
   + Amazon Connect Decisions インスタンスにログインする
   + メインナビゲーションから「データ管理」を選択します。
   + タブナビゲーション内で「Connections」に移動します。
   + 「新しい接続」を選択して新しい接続を作成します。

1. **接続の詳細を入力する**
   + **接続名 (必須):** この接続の一意の識別子 (「production-database」など) を入力します。
   + **説明 (オプション):** この接続の目的と使用に関する詳細を追加して、チームがアクセスするデータを理解するのに役立ちます。
   + **JDBC URL (必須):** 完全な JDBC 接続文字列を 形式で入力します `jdbc:<database-type>://<hostname>:<port>/<database>` (例: `jdbc:postgresql://db.example.com:5432/mydb`)。
   + **スキーマ名 (オプション):** 必要に応じてデータベーススキーマを指定します (「パブリック」、「dbo」、「myschema」など）。データベースのデフォルトスキーマを使用するには、空白のままにします。
   + **シークレット ARN (必須):** ステップ 2 で保存したシークレット ARN を貼り付けます。これにより、Amazon Connect Decisions は Secrets Manager からデータベース認証情報を安全に取得できます。
   + **SSL 接続を強制する:** データベース接続に SSL/TLS 暗号化を要求するには、このチェックボックスを選択したままにします (推奨）。
   + **VPC エンドポイントサービス名 (必須):** AWS PrivateLink を介したプライベート接続用の VPC エンドポイントサービス名を入力します (形式: `com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxx`)

1. **データベースに接続する**
   + 「Connect」をクリックして、接続をテストして確立します。Amazon Connect Decisions は、提供された認証情報を使用してデータベースに正常に接続できることを確認します。このステップには最大 2 分かかる場合があるため、接続中にこの画面を離れないでください。
   + 接続が成功すると、テーブル選択に自動的に移動します。
   + 接続が失敗した場合:
     + 接続の詳細を確認して、すべてのフィールドが正確であることを確認します。
       + シークレット ARN が正しいことを確認する
       + データベース認証情報が正確であることを確認する
       + JDBC URL 形式が正しいことを確認します。
       + AWS のサービスからの接続を受け入れるようにデータベースが設定されていることを確認します。
       + KMS キーと Secrets Manager ポリシーが正しく設定されていることを確認します。
     + チャットエクスペリエンスを使用して、「データベース接続が失敗する理由」などの質問をすることで、接続の問題のトラブルシューティングに役立てることもできます。または「JDBC 接続のデバッグを手伝ってください」

1. **取り込むテーブルを選択する**
   + 接続すると、データベースから使用可能なすべてのテーブルがテーブルの選択画面に表示されます。
   + 取り込む各テーブルの横にあるチェックボックスをオンにします。

1. **テーブルの更新スケジュールを設定する**
   + 選択したテーブルごとに、アクション列の 3 つのドットメニューをクリックし、「スケジュールの更新」を選択します。
   + ロードの詳細の設定ダイアログで、以下を設定します。
     + **頻度:** 更新する頻度 (時間単位、日単位、週単位、またはカスタム)
     + **開始時間:** 更新を開始する時間 (タイムゾーンオフセットで UTC で表示)
     + **更新タイプ:** 完全な更新 (すべてのデータを置き換える) または増分更新 (既存の に新しいデータを追加する。タイムスタンプを記録する列を選択する必要がある) を選択します。
     + 必要に応じてテーブルごとに繰り返します。
   + すべてのテーブルが設定されている場合にマッピングを開始するをクリックします。

1. **データマッピングを続行する**
   + この時点から、エクスペリエンスはデータオンボーディングフローと同じです。
   + Data Onboarding ユーザーガイドの「データマッピング」セクションに従ってセットアップを完了します。

### 予想されること
<a name="connecting-via-jdbc-connection-what-to-expect"></a>

接続が確立され、テーブルが選択されると、Amazon Connect Decisions はデータベースからデータを読み取ることができます。接続はアクティブで安全であり、認証情報は AWS Secrets Manager を通じて暗号化および管理されます。Amazon Connect Decisions で認証情報を手動で更新する必要はありません。Secrets Manager で行った変更は、自動的に反映されます。

## ベストプラクティス
<a name="connecting-via-jdbc-best-practices"></a>

### セキュリティとアクセスの管理
<a name="connecting-via-jdbc-security-access-management"></a>
+ **認証情報を安全に保存する**: 常に AWS Secrets Manager を使用してデータベース認証情報を保存し、接続文字列や設定ファイルに認証情報をハードコードしないでください。
+ **SSL/TLS 暗号化を有効にする**: 転送中にデータが暗号化されるように、「SSL 接続の強制」オプションを有効にしておきます。
+ **KMS および Secrets Manager ポリシーを定期的に**確認する: 承認されたサービスとアカウントのみが暗号化キーとシークレットにアクセスできることを確認します
+ **最小特権アクセスを使用する**: Amazon Connect Decisions が接続に使用する必要最小限のアクセス許可のみをデータベースユーザーに付与します

### 接続設定
<a name="connecting-via-jdbc-connection-configuration"></a>
+ **わかりやすい接続名を使用する**: 環境と目的を示すわかりやすい名前を選択します (例：「db1」ではなくproduction-inventory-db」）。
+ **接続を文書化する**: 説明フィールドを使用して、接続がアクセスするデータ、その所有者、および特別な考慮事項を書き留めます。
+ **続行する前に接続をテスト**する: テーブルを選択し、更新スケジュールを設定する前に、必ず接続が機能することを確認してください。
+ **JDBC URL 形式を検証する**: 接続エラーを避けるために、JDBC URL 構文がデータベースタイプと一致することを再確認します。

### データ更新戦略
<a name="connecting-via-jdbc-data-refresh-strategy"></a>
+ **適切な更新頻度を選択する**: ソースデータの変更頻度とビジネスニーズに基づいて更新頻度を選択します。
+ **低アクティビティ期間中に更新をスケジュール**する: データベースの負荷が低い場合に更新時間を設定し、パフォーマンスへの影響を最小限に抑える
+ **可能な場合は増分更新を使用する**: 頻繁に変更される大規模なデータセットの場合、増分更新は完全な更新よりも効率的です
+ **意味のあるタイムスタンプ列を選択する**: 増分更新を使用する場合は、レコードがいつ作成または変更されたかを正確に反映する列を選択します。

### トラブルシューティングのためのチャットの使用
<a name="connecting-via-jdbc-chat-troubleshooting"></a>
+ **リクエストに具体的に記述する**: 接続のトラブルシューティングや問題のマッピングにヘルプを求めるときは、明確なコンテキストを提供します。
+ **説明を求める**: 推奨事項や生成された SQL クエリがわからない場合は、明確化を求める
+ **受け入れる前にすべての SQL 変更をテスト**する: プレビュー機能を使用して、変換が実際のデータで期待どおりに機能することを確認します。
+ **トラブルシューティングにチャットを活用する**: 接続が失敗したり、更新でエラーが発生した場合は、「接続が失敗する理由」などの診断用の質問をしてください。または「この更新エラーについて教えてください」

### 継続的なメンテナンス
<a name="connecting-via-jdbc-ongoing-maintenance"></a>
+ **更新の実行を定期的にモニタリング**する: Data Management の Destinations and Sources タブをチェックして、更新が正常に完了していることを確認します。
+ **エラーに迅速に対処する**: Amazon Connect Decisions がエラーの更新を警告した場合、データギャップを回避するために問題を迅速に調査して解決する
+ **認証情報を安全に更新**する: データベースパスワードが変更された場合、AWS Secrets Manager で更新すると、Amazon Connect Decisions は自動的に新しい認証情報を使用します。
+ **カスタム設定を文書化する**: チームのリファレンス用に、特別な更新スケジュール、変換ロジック、または接続要件についてメモしておきます。
+ **テーブルの選択を定期的に確認する**: データのニーズが進化するにつれて、取り込むテーブルと、更新スケジュールがビジネス要件に合っているかどうかを再検討します。