使用Node连接到Aurora MySQL无服务器

时间:2018-10-15 21:22:20

标签: mysql amazon-web-services aws-serverless aws-aurora

我正在尝试使用mysql模块连接到我的Aurora无服务器MySQL数据库集群,但是我的连接总是超时。

const mysql = require('mysql');

//create connection
const db = mysql.createConnection({

    host     : 'database endpoint',
    user     : 'root',
    password : 'pass',
    database : 'testdb'

});


//connect
db.connect((err) => {
    if(err){
        throw err;
        console.log('connection failed');
    }
    console.log('mysql connected...');
})
db.end();

我的群集没有公用IP地址,因此我正在尝试使用端点。我已经使用Cloud9成功连接到数据库,但是无法使用node连接。我一定很想念东西。

1 个答案:

答案 0 :(得分:1)

Aurora Serverless使用内部AWS网络设置,该设置当前仅支持来自VPC内部的连接,并且它必须与部署无服务器集群的VPC相同。

  

问:如何连接到Aurora无服务器数据库集群?

     

您可以从在同一Amazon虚拟私有云(VPC)中运行的客户端应用程序访问Aurora无服务器数据库集群。您不能为Aurora无服务器数据库群集提供公共IP地址。

     

https://aws.amazon.com/rds/aurora/faqs/#serverless

出于架构相似的原因,此限制适用于Amazon EFS。您可以work around限制EFS,并且Aurora Serverless可以使用相同的解决方法,但是您需要完全禁用运行状况检查,因为这些运行状况检查连接将使实例始终保持活动状态。最好避免将数据库公开到Internet。

您还可以使用 some VPN解决方案。它们将需要基于实例,并且可能需要使用NAT来伪装VPN实例内部地址后面的客户端地址-这实际上是上述代理解决方法所做的,但在另一个OSI层。