この記事では、AWS RedshiftインスタンスをPendo Predictに接続して、予測モデル構築時のデータソースとしてRedshiftを使用する方法について説明します。
接続方法は主に2種類あります。
- 直接URLベースのエンドポイント(オプションでIPホワイトリスト機能付き)
- RedshiftマネージドVPCエンドポイント
セキュリティやネットワークのニーズに合った方法を選びましょう。
このドキュメントでは、セットアップ手順、認証、トラブルシューティングのヒントについて説明します。
前提条件
始める前に、以下のものがすべて揃っていることを確認してください。
-
Amazon Redshift Cluster:
実行中であり、標準のSQLクライアントまたは他のツールを介して接続できることを確認してください。 -
Pendo Predictアカウント:新しいデータインテグレーションを追加するには、権限を持つアクティブなPendo Predictアカウントが必要です。
-
アセットへの読み取りアクセス:Pendo Predictに使用する予定のRedshiftユーザーまたは役割に、
必要なすべてのスキーマ、テーブル、またはその他のアセットへの読み取りアクセス権(および必要な追加権限)があることを確認します。 -
ネットワーク/ファイアウォールの設定:
-
直接URL:Redshiftがパブリックインターネットからアクセス可能であることを確認するか
Pendo Predictの静的パブリックIPをホワイトリストに登録します。 -
マネージドVPC:
セキュリティグループがRedshiftマネージドPCエンドポイント経由のトラフィックを許可していることを確認してください。
-
直接URL:Redshiftがパブリックインターネットからアクセス可能であることを確認するか
ステップ1:接続方法
直接URLベースのエンドポイント
Redshiftクラスタが一般公開されている場合、またはPendo Predictの公開IPアドレスをホワイトリストに登録している場合にこのオプションを使用します。
- エンドポイントとポート:Redshiftクラスターのエンドポイント(例:examplecluster.abc123xyz.us-west-2.redshift.amazonaws.com)とポート番号(例:5439)を指定してください。
-
セキュリティグループ/ファイアウォール:
- Redshiftインスタンスが一般公開されている場合は、接続をブロックする追加のルールがないことを確認してください。
- 受信回線を制限する場合は、Pendo Predictの静的パブリックIPをホワイトリストに登録して、クラスターに届かせてください。
RedshiftマネージドVPCエンドポイント
より安全でプライベートな接続を実現するには、AWS PrivateLinkをご利用ください。
- Pendo PredictのAWSアカウントIDとVPC IDを取得:Pendo PredictはAWSアカウントIDと、プラットフォームがリソースをホストするVPC IDを提供します。
- RedshiftマネージドVPCエンドポイントを作成します。
-
Amazon RedshiftのコンソールからVPCエンドポイント(AWS PrivateLink)を設定します。Pendo PredictのAWSアカウントIDとVPCからのトラフィックを許可します。
- エンドポイントからの接続を許可するようにRedshiftセキュリティグループを更新してください。
- クラスタがPrivateLinkを使用できることを確認するために、AWS固有の考慮事項 に従ってください。
- AWSアカウントIDを共有:Pendo PredictにAWSアカウントIDを提供します。これにより、アカウントを識別し、最適な接続先をマッピングします。
-
Pendo Predictによるエンドポイント作成:
- セットアップが完了したことを確認すると、Pendo Predictは対応するエンドポイントをVPC内に作成します。
- Redshiftクラスターに接続するための最終的なプライベートエンドポイントURLを提供します。
ステップ2:AWS Redshiftの権限設定
- ユーザー権限(両方の接続方法に関連):Redshiftでは、関連するソース(スキーマとテーブル)に対する読み取り権限をユーザーに付与します。
-
IAMロール認証:
-
以下のロールポリシーを設定します。
JavaScript { "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftGetClusterCredentials", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:<REGION>:<ACCOUNT_ID>:cluster:<CLUSTER_NAME>", "arn:aws:redshift:<REGION>:<ACCOUNT_ID>:dbname:<CLUSTER_NAME>/<DB_NAME>", "arn:aws:redshift:<REGION>:<ACCOUNT_ID>:dbuser:<CLUSTER_NAME>/<DB_USER>" ] } ] } -
以下の信頼関係を設定してください。
JavaScript { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "<ROLE ARN Provided by Forwrd>" }, // 外部IDを使用する場合: "Condition": { "StringEquals": { "sts:ExternalId": "<EXTERNAL_ID>" } }
-
ステップ3:Pendo Predictでのインテグレーション設定
選択した接続方法を設定した後、Pendo Predictプラットフォーム内でインテグレーションを構成してください。
- Pendo Predictで[ソース]タブに移動します。
-
[新しいソース]を選択し、次にRedshiftを選択します。
-
他のユーザーが簡単に認識できる名前を入力してください。
-
認証方法を選択してください。
-
標準ユーザー名/パスワード:
必要なデータアセットへの少なくとも読み取りアクセス権を持つRedshiftユーザー認証情報を使用してください。 - IAMロール:一時的な認証情報不要の接続を可能にするIAMロールベースの認証。
-
標準ユーザー名/パスワード:
- 以下を提供します。
- 関連する認証情報 - 専用DBユーザーとパスワードまたは役割ARN。
- DBのURL/エンドポイント
- DBポート
- DBデータベース
- 接続を設定するには、[承認]をクリックしてください。
トラブルシューティングとよくある質問
認証に失敗した場合は、以下の点を確認してください。
- 正しいエンドポイント/ポートと認証情報があることを確認してください(外部的に接続を試みてください)。
- ファイアウォール/セキュリティグループが、Pendo Predictのパブリック静的IPアドレス(ホワイトリストに登録されている場合)またはVPCエンドポイントからのインバウンドトラフィックを許可していることを確認してください。
- ユーザーに適切な権限が付与されていることを確認してください。