从EC2到RDS的连接缓慢,而到RDS的本地连接很好

时间:2018-06-21 16:57:22

标签: mysql amazon-web-services amazon-ec2 amazon-rds

我有一个具有EC2和RDS的AWS账户。它们都在同一VPC上。 我通过Elastic Beanstalk进行设置。
他们都有共享的安全组,我可以从我的EC2实例(PHP)成功连接到我的RDS(MySQL)。但是,它非常慢(90秒)。

如果我是在家中甚至通过本地主机从MySQL工作台进行连接,它的响应速度都很快(237毫秒)。

我不知道还有什么要检查或更改的内容才能使EC2和RDS快速工作。

如果有人怀疑,这是我用来测试连接时间的代码:

echo date('H:i:s').PHP_EOL;
$host = $_ENV["RDS_HOSTNAME"];
$user = $_ENV["RDS_USERNAME"];
$pass = $_ENV["RDS_PASSWORD"];
$db = $_ENV["RDS_DB_NAME"];
echo "Environment variables set: ".date('H:i:s').PHP_EOL;
try{
    $con = mysqli_connect($host, $user, $pass, $db);
    echo "First Complete: ".date('H:i:s').PHP_EOL;
    mysqli_select_db($con, $_ENV["RDS_DB_NAME"]);
    echo "Second Complete: ".date('H:i:s').PHP_EOL;
}catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
    print_r(mysqli_connect_error());
}

谢谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

感谢@ceejayoz对我和Putty的耐心配合。我意识到我的RDS HOSTNAME Environment变量指向了我的Elastic Beanstalk URL,而不是我的RDS实例。这可能是因为它卡在了重定向中。

我刚刚再次尝试,时间戳记差异开始为0!