2017-05-24 129 views
1

我试图从EC2实例使用PHP没有成功连接到RDS实例。连接超时使用Amazon RDS和EC2

我与这3个行试图建立连接(我使用MysqliDb BTW):

$db = new MysqliDb ('rds_endpoint', 'username', 'password', 'databaseName'); 
$db = new MysqliDb ('rds_endpoint', 'username', 'password', 'databaseName', 3306); 
$db = new MysqliDb ('rds_endpoint:3306', 'username', 'password', 'databaseName',); 

当我试图得到一个表它给了我。我2002 Connection timed out检查和表存在。

而且我查了双方的安全组,RDS和EC2和EC2入站规则,从所有的IPS接受和RDS入站规则接受我的EC2实例的公网IP。我有另一个亚马逊帐户,并尝试了上述和工作正常,所以我不知道在哪里可以找到错误。

感谢

+3

你会想你的加入白名单EC2实例的** **私有IP,而不是公众一个。更好的是,将安全组列入白名单。 – ceejayoz

+0

谢谢,现在它工作! – VictorBG

回答

3

谈及到这个答案:

你会想你的加入白名单EC2实例的私人 IP,而不是公众一个。更好的是,将安全组列入白名单。内AWS

实例将通过EC2和RDS实例的内部IP地址,而不是它们的外部面向互联网的那些连接到RDS。

白名单安全组而不是单个IP​​意味着IP更改到EC2服务器不会撤销其RDS访问,并意味着启动到该安全组的新实例将自动获得正确的访问权限。

+0

您能否解释如何将其安全组列入白名单?设置私人IP地址的工作,但我想弄清楚如何设置安全组。由于 –

+1

@ tim.paetz你只写安全组的'SG-f0123'式ID代替IP的。它会自动完成,如果你开始输入一个名称,IIRC。 – ceejayoz