RDS に 2 つの Postgres 9.3.5 インスタンスがあり、どちらもセキュリティ グループ内からのすべてのインバウンド トラフィックとすべてのアウトバウンド トラフィックを許可する 1 つのセキュリティ グループにあります。postgres_fdw を介して、あるデータベースを別のテーブルから選択できるように設定しようとしています。
サーバーを作成しました -
create server master
foreign data wrapper postgres_fdw
OPTIONS (dbname 'main',
host 'myinstance.xxxxx.amazonaws.com');
必要なユーザー マッピングと外部テーブルと同様に -
create foreign table condition_fdw (
cond_id integer,
cond_name text
) server master options(table_name 'condition', schema_name 'data');
しかし、単純なselect count(*) from condition_fdw
ことは私に与えます
ERROR: could not connect to server "master"
DETAIL: could not connect to server: Connection timed out
Is the server running on host "myinstance.xxxxxx.amazonaws.com" (xx.xx.xx.xx) and accepting
TCP/IP connections on port 5432?
psql
EC2 インスタンスから両方のデータベースに接続できます。最近まで RDS が postgres_fdw をサポートしていなかったことは知っていますが、サポートしている新しいバージョンを実行しています。
create server ステートメントで、「myinstance.xxxxxx.amazonaws.com」を解決先の IP アドレスに置き換えようとしましたが、うまくいきませんでした。
何か案は?
さらなるテスト
同じセキュリティ グループを持つ ec2 インスタンスに postgres をインストールしました。マスター サーバーへの外部テーブルは期待どおりに動作します。
同じ RDS インスタンス上のデータベース間の postgres_fdw は機能します。
これはすべて、Postgres RDS インスタンスの postgres_fdw からの発信接続に何らかの問題があるに違いないと私に思わせます。