ローカルサーバーからApsaraDB RDS for PostgreSQLインスタンスに接続するには、ローカルサーバーのパブリックIPアドレスをRDSインスタンスのIPアドレスホワイトリストに追加する必要があります。 RDSインスタンスのIPアドレスホワイトリストに追加したパブリックIPアドレスが正しくない場合、接続は失敗します。
問題の説明
ローカルサーバーのパブリックIPアドレスをRDSインスタンスのIPアドレスホワイトリストに追加すると、ローカルサーバーからRDSインスタンスに接続できなくなります。 ただし、他のデバイスからRDSインスタンスに接続できます。 RDSインスタンスのIPアドレスホワイトリストにパブリックCIDRブロックまたはエントリ0.0.0.0/0
を追加すると、ローカルサーバーからRDSインスタンスに接続できます。
原因
RDSインスタンスのIPアドレスホワイトリストに追加したパブリックIPアドレスが正しくありません。
解決策
このトピックで提供されるソリューションは、Alibaba Cloud Elastic Compute Service (ECS) インスタンスからRDSインスタンスに接続するシナリオには適用されません。 ECSインスタンスからRDSインスタンスに接続する場合、ECSコンソールでECSインスタンスのパブリックIPアドレスとプライベートIPアドレスを取得できます。
エントリ
0.0.0.0/0
をRDSインスタンスのIPアドレスホワイトリストに追加します。 詳細については、「IPアドレスホワイトリストの設定」をご参照ください。pgAdmin4クライアントを使用してRDSインスタンスに接続します。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスへの接続」をご参照ください。
[データベース] をクリックし、[postgres] をクリックします。 上部のナビゲーションバーで、[ツール] > [クエリツール] を選択します。
次のSQL文を実行して、ローカルサーバーのパブリックIPアドレスを照会します。 パブリックIPアドレスを取得するには、SELECTが表示されているクエリ列を見つけ、client_addr列の値を取得します。
select datname, pid, usename,client_addr, client_hostname, client_port,query from pg_stat_activity;
次の図は、サンプル出力を示しています。
手順1でRDSインスタンスのIPアドレスホワイトリストに追加されたエントリ
0.0.0.0/0
を削除します。 次に、取得したローカルサーバのパブリックIPアドレスをIPアドレスホワイトリストに追加します。
追加情報
ローカルサーバーのパブリックIPアドレスが変更され、ローカルサーバーとRDSインスタンス間に確立された接続が本番環境で使用されている場合は、内部ネットワーク経由でRDSインスタンスに接続するか、適切なパブリックCIDRブロックをRDSインスタンスのIPアドレスホワイトリストに追加することを推奨します。 これにより、IPアドレスの変更によりRDSインスタンスが切断されることはありません。
適用範囲
ApsaraDB RDS for PostgreSQL