Nathalie
Nathalie

Reputation: 1105

AWS RDS for PostgreSQL cannot be connected after several hours

I created several instances of RDS with PostgreSQL and get the same problems:

I attached the information of the RDS instances. Hope someone can help me with this problem. Thank you in advance.

Upvotes: 34

Views: 55178

Answers (6)

Nathalie
Nathalie

Reputation: 1105

Finally, I found the answer for my problem. For the error of "connection timeout", one of the reasons can be from the security settings. Although I set it as public when creating the RDS instance, the instance is attached with a private VPC security group which is not exposed publicly.

I can access to RDS from the same IP address that I'm on when I created it. When I go to other place (or switching VPN), I'm unable to connect it. That explains the intermittent connection.

We can attach the RDS instance with a public security group inside the VPC (I don't think it is a good setting, just for the beginner in AWS like me) as below:

  • from Services, select EC2, select Security Groups in the left panel.
  • click "Create Security Group" button.
  • in the dialog, enter the name for the Group, e.g "postgres-public-access"
  • if you have several VPC's, make sure in the last dropdown that you select the same VPC that your database is in
  • in the dialog, click "Add Rule" button.
  • In the "Type" column, select "PostgreSQL" or other types of RDS instances (or you can input the port of your RDS instance, usually it is 5432 for Postgres).
  • In the "Source" column, enter "0.0.0.0/0".
  • Click "Save" button.
  • from Services, select RDS, select the RDS instance, click "Modify" button.
  • In "Network & Security", "Security group", select the VPC Security Group you just created, in my case, it is "postgres-public-access".
  • Click "Continue" button. Now you can go ahead and connect with your database everywhere.

Upvotes: 60

Peter
Peter

Reputation: 11

In my case, I did not set up internet gate. Check your db's route table in VPC. And, add internet gateway

Upvotes: 1

C Williams
C Williams

Reputation: 859

Select DB -> Modify -> Connectivity-> Save

enter image description here

Upvotes: 1

Almustafa Azhari
Almustafa Azhari

Reputation: 860

I faced the same issue and it end up because of the VPN am using, when i disconnected the VPN i apply to connect.

Upvotes: 0

Jeremy Thompson
Jeremy Thompson

Reputation: 65534

I just followed the guide: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html

Run through the typical things:

enter image description here

  • You can add a rule for TCP Port 5432, like I have above.

  • Check Username/Password - sometimes incorrect ones get cached.

  • Try to ping the dB to see if its a internet connection problem.

Upvotes: 9

T04435
T04435

Reputation: 13992

I had to add/edit a rule to the VPC to allow connections from All sources.

Steps:

  1. Go to DB > Connectivity & security > click on VPC(vpc-
  2. Under Security > Security Groups > open sg-[something] for which VPC ID matches the DB VPC

  3. Inbound Rules > Edit Rules > Change Source to anywhere

So it seems that even when creating the DB and selecting allow public access, it only includes the traffic from withing the VPC. By doing the above steps you can allow access to all sources.

Upvotes: 25

Related Questions