我有一个具有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());
}
谢谢您的任何建议!
答案 0 :(得分:0)
感谢@ceejayoz对我和Putty的耐心配合。我意识到我的RDS HOSTNAME Environment变量指向了我的Elastic Beanstalk URL,而不是我的RDS实例。这可能是因为它卡在了重定向中。
我刚刚再次尝试,时间戳记差异开始为0!