我正在研究 AWS Lambda,我已经使用 node.js 集成了 SQL 服务器。这是它的例子。现在,我的问题是,AWS lambda 中的数据库代理是什么,我如何从中受益?
谢谢
我正在研究 AWS Lambda,我已经使用 node.js 集成了 SQL 服务器。这是它的例子。现在,我的问题是,AWS lambda 中的数据库代理是什么,我如何从中受益?
谢谢
你可能已经读过这个:
RDS Proxy 通过建立到数据库的暖连接池来帮助您管理从 Lambda 到 RDS 数据库的大量连接。您的 Lambda 函数可以扩展以满足您的需求,并使用 RDS 代理服务多个并发应用程序请求。这降低了数据库的 CPU 和内存需求,并消除了代码中对连接管理逻辑的需求。
如果您有一个并发 Lambda,则没有任何好处。但是,许多应用程序利用 Lambda 扩展到 1000 或 10,000 个并发请求的能力。由于 Lambda 不保留状态,这意味着为这 10,000 个中的每一个建立/维护数据库连接。这是低效的,编码很痛苦,并且可能超出数据库的扩展能力
所以...来自同一个博客
您的 Lambda 函数与 RDS 代理而不是您的数据库实例进行交互。它处理扩展由并发 Lambda 函数创建的许多同时连接所需的连接池。这允许您的 Lambda 应用程序重用现有连接,而不是为每个函数调用创建新连接。
RDS 代理会自动扩展,因此您的数据库实例需要更少的内存和 CPU 资源来进行连接管理。它还使用热连接池来提高性能。使用 RDS Proxy,您不再需要处理清理空闲连接和管理连接池的代码。您的函数代码更简洁、更简单且更易于维护。
RDS 代理的好处将在 2 种情况下变得清晰:
高并发 lambda 以限制打开的数据库连接数。无论存在多少并发 lambda,RDS 代理都将打开有限的连接
低延迟应用程序,以避免 lambda 刚启动时的数据库连接时间。RDS Proxy 将保留一个与数据库的热连接池。
与应用程序服务器不同,可扩展的 Lambda 函数是一个单一进程,它维护一个连接池并有效地处理连接,例如:EJB、Hibernate、Node 框架。为了解决 Lambda 中的这个缺点,引入了位于 Lambda 和数据库之间的数据库代理。Lambda->Proxy->Database 。它使 Lambda 能够在不耗尽数据库连接的情况下达到高并发水平。理想情况下,在 RDS 或传统 Mysql 托管中,连接是有限且稀缺的资源。
如果您想实际体验 lamdba 连接问题,请使用免费层 RDS 和 lambda 进行负载测试。
这也是 AWS 赚钱的一种方式。例如,每 RDS 代理 vCPU 小时 1,440 小时 0.015 美元。21.60 美元。最新价格请参考网站。
数据库代理生产准备好了吗?我不知道。