Amazon Redshift Serverless から Aurora PostgreSQLにフェデレーテッドクエリを実行する方法を教えてください

0

Amazon Redshift Serverless(以下、Redshift)から、Aurora PostgreSQL(以下、Aurora)へフェデレーテッドクエリを実行したいのですが。 CREATE EXTERNAL SCHEMA で作成したスキーマのTablesが0と表示され、Auroraへの接続がうまくいっていないように見えます。 不足している設定があれば教えてください。

設定情報 ・RedshiftとAuroraは、同じVPCにあります ・Auroraへの接続情報は、SercretManagerに登録しました ・Redshiftに付与したIAMロールは、SercretManagerへアクセスをallowしました ・そのIAMロールの信頼されたエンティティには、RedshiftとRedshiftServerlessをallowで追加しました ・Auroraのセキュリティグループのインバウンドには、Redshiftのセキュリティグループを追加しました  ※プロビジョンドされたRedshiftでも試してみたんですが、そのときは、Redshiftのセキュリティグループではなく   クラスターのpublic ipをインバウンドに追加して、フェデレーテッドクエリの実行確認できています

gefragt vor 5 Monaten395 Aufrufe
1 Antwort
0
Akzeptierte Antwort

Aurora PostgreSQLでは試したことが無いのですが、Aurora MySQLだと同じ手順(以下のブログの手順)で設定することが可能そうでした。
https://blog.serverworks.co.jp/federated-query-from-redshift-to-aurora-mysql

profile picture
EXPERTE
beantwortet vor 5 Monaten
  • 同じ方が書いているブログでAurora PostgreSQLに対してやっているやつがありました。 私の方でも試してみます。 https://blog.serverworks.co.jp/federated-query-from-redshift-to-aurora

  • コメントありがとうございます。 こちらのブログの方のように、AuroraのSGのインバウンドにRedshiftのSGをいれてみたんですが、ダメでして 少し古い情報だと https://dev.classmethod.jp/articles/amazon-redshift-20200417-federated-query-ga/ こちらの1.セキュリティグループの設定(落とし穴) 「VPCのCIDRを全て許可したり、Redshiftのセキュリティグループを指定してもダメでした。マニュアルにも記載がなく、私はこれで一日潰しました。」 とあり、私の状態はこれと同じなではないかと困っております。。。

  • こちらのドキュメントにある通りフェデレーテッドクエリの呼び出しに関する情報が取得できそうなのですが、こちらご確認いただけますか? https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_SVL_FEDERATED_QUERY.html

  • ありがとうございます!

    実行してみました。 ERROR: permission denied for relation svl_federated_query となってしまいました。 serverless構築時の管理ユーザでつないでいるのですが。

    プロビジョニングのRedshiftで同じものを実行したら、フェデレーテッドクエリ実行ログが返ってきました。

  • こちら私の環境で動作させることが出来ました。

    以下のre:Postの回答にあるようにパスワード暗号化の不一致が原因の可能性があると考えています。
    SercretManagerに登録しているユーザーのパスワードをMD5に変更することでフェデレーテッドクエリが成功することが確認できました。
    https://repost.aws/questions/QUyF4cjirnTXChKrHk7FzmHg/redshift-federated-query-to-postresql-failing-with-error-authentication-method-10-not-supported

    以下コマンド例です。
    こちらのコマンドをAurora PostgreSQLで実行してみてください。

    set password_encryption = 'md5';
    alter user postgres with password 'Mypassword1';
    

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen