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


23

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

データベース設定はPublicly Accessible次のとおりです。次のようにマークされていることに注意してください。 RDS設定

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

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

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ルールは次のとおりです。 ネットワークACL設定


1
NetworkACLをめちゃくちゃにしましたか?インターネットアクセスをブロックしている可能性のある設定を探します。
Optichip

返信いただきありがとうございます!最初のルールは、接続ごとにすべてのソースからのすべてのポートを許可することであるため、ACLは何もブロックしていないように見えます。
エドワードQ.ブリッジズ

回答:


27

問題は、セキュリティグループの受信ルールがセキュリティグループをソースとして指定したことです。IPアドレスを含むCIDRに変更すると、問題が修正されました。


6
CIDRがどのように機能するかを知らない人向け。あなたのIPアドレスが91.61.76.202であれば(使用して、あなたを見つけることができますmyipaddress.comを)、設定ソース91.61.76.202/32として
トムG

このソリューションがどのように見えるかのスクリーンショットを撮っても構わないと思いますか?
smaccoun

私は喜んでいますが、このインスタンスはオンラインではありません。
エドワードQ.ブリッジズ

11

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

RDSインスタンスのセキュリティグループをクリックし、インバウンドルールを確認します。次のようなものが表示される場合があります。

ここに画像の説明を入力してください

IPを含むようにIP範囲を設定するか、[ソース]ドロップダウンで[任意]を選択して、localhostまたは任意の場所からアクセスできるようにする必要があります。

ここに画像の説明を入力してください


はい、これは機能します。そこにあるカスタムルールを保持し、IPアドレスを自動的に取得する新しいルールを追加しました。
MSC

1

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

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

ここに画像の説明を入力してください


0

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


-1

Postgresインスタンスを作成した後、デフォルトのセキュリティグループ(rds-launch-wizard)はIPアドレスのみをリストしたため、接続する前にType of All TrafficおよびSource of Anywhereを追加する必要がありました。私はネットワーキングの専門家ではありませんが、インバウンドルールとして自分のIPアドレスに接続できなかったことは奇妙です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.