Tag: aws rds

“制作”Lambda和API网关

我最近一直在教自己如何使用NodeJS + Express构buildAPI。 我仍然是一个新手,但他们在我的开发环境中出色地工作,真的很兴奋。 但是,我努力想知道怎样configuration我的服务器和代码库来进行生产。 有很多信息可以用来像Helmet那样把NGINX作为代理,但是在这个阶段,其中一些东西是超出我的。 因此,我开始将“无服务器”视为部署它们的可能选项,并将我的数据迁移到AWS RDS PostgreSQL,并设置一个采用查询参数并查询数据库的Lambda函数。 我还设法configuration了AWS API网关,该API网关需要API密钥来触发Lambda函数。 我的RDS和Lambda函数是VPC的限制,我正在使用API​​密钥和API网关默认为HTTPS。 所以我就任何build议或帮助,我现在需要考虑的其他事情,因为大多数传统的生产挑战已被删除了“无服务器”。

如何优化Postgresql max_connections和node-postgres连接池?

简而言之,我无法支持利用Postgresql,Node.js和node-postgres的数据API每分钟超过5000个读取请求。 瓶颈似乎在API和数据库之间。 这里是implmentation的细节。 我为Node.js供电的数据API使用了AWS Postgresql RDS数据库实例(m4.4xlarge – 64 GB mem,16 vCPU,350 GB SSD,没有预configuration的IOPS)。 默认情况下,RDS的max_connections = 5000。 节点API在两个群集之间进行负载均衡,每个群集有4个进程(2个Ec2和4个vCPU,在群集模式下使用PM2运行API)。 我使用node-postgres将API绑定到Postgresql RDS,并试图使用它的连接池function。 以下是我的连接池代码示例: var pool = new Pool({ user: settings.database.username, password: settings.database.password, host: settings.database.readServer, database: settings.database.database, max: 25, idleTimeoutMillis: 1000 }); /* Example of pool usage */ pool.query('SELECT my_column FROM my_table', function(err, result){ /* Callback code here */ […]