web-dev-qa-db-ja.com

パブリックpostgresql rdsインスタンスに接続できません

単一のパブリックサブネットがあり、パブリックインターネット経由で接続できるようにする必要があるVPCで、基本的なテストPostgreSQL RDSインスタンスを作成しました。これは、ポート5432に対して開いているデフォルトのセキュリティグループを使用します。接続しようとすると失敗します。私は非常に簡単なものを見逃しているに違いありません-しかし、私はこれでかなり迷っています。

これがデータベースの設定です。Publicly Accessibleとマークされていることに注意してください: RDS Settings

セキュリティグループの設定を次に示します。開いていることに注意してください(上記のRDS設定で、エンドポイントの横にある緑色の「承認済み」ヒントで確認されています)。 Security Group settings

接続に使用しようとしているコマンドは次のとおりです。

psql --Host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \
     --port=5432 
     --username=masteruser 
     --password 
     --dbname=testdb

そして、これはYosemite MacBook Proから接続しようとしたときに得られる結果です(注、54。* IPアドレスに解決されます)。

psql: could not connect to server: Operation timed out
    Is the server running on Host "myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com" (54.xxx.xxx.xxx) and accepting
    TCP/IP connections on port 5432?

ファイアウォールを有効にしていないため、他のプロバイダー(Herokuなど)のパブリックPostgreSQLインスタンスに接続できます。

私はここでほとんど途方に暮れているので、トラブルシューティングのヒントは大歓迎です。

更新

コメントごとに、デフォルトVPCのインバウンドACLルールは次のとおりです。 Network ACL configuration

27

問題は、セキュリティグループのインバウンドルールがセキュリティグループをソースとして指定することでした。 IPアドレスを含むCIDRに変更すると、問題が解決しました。

AWSでデータベースセキュリティグループを開きます。そして「インバウンドルールの編集」を選択します。 「ルールを追加」。ドロップダウンメニューに[My IP]オプションがあります。そのオプションを選択して、CIDR表記でコンピューターのパブリックIPアドレスを自動入力します edit security group, edit its inbound rules, add a rule, choose "My IP" option in the "Source" column

34

同様の問題に直面していましたが、これが私がそれを解決した方法です:

RDSインスタンスのセキュリティグループをクリックして、受信ルールを確認します。あなたはこのようなものを見るかもしれません:

enter image description here

IP範囲を設定してIPを含めるか、ローカルホストまたはどこからでもアクセスできるように、[ソース]ドロップダウンで[どこでも]を選択する必要があります。

enter image description here

16
Miguel Mota

Postgresへの接続中に同様の問題が発生しました。イベント公開でtrueにアクセスしましたが、接続できませんでした。

セキュリティグループに1つのルールインバウンドルールを追加しましたが、完全に正常に機能しています。

enter image description here

2
Abhash Kumar

誰かを少し時間を節約するために私の発見を追加したかっただけです。上記のこのソリューションはdev ec2インスタンスで機能しましたが、新しいサーバーに移行した後、機能しなくなりました。 RDSインスタンスとEC2インスタンスの両方が同じVPCにあることが判明したため、RDSインスタンスは、セキュリティグループに追加したパブリックIPを認識できませんでした。これを機能させるには、RDSインスタンスのセキュリティグループに追加する必要があります。これは、EC2インスタンスのプライベートIPであり、詳細を確認できます。