【问题标题】:What is the purpose of database proxy in AWS Lambda?AWS Lambda 中数据库代理的目的是什么?
【发布时间】:2021-03-13 04:36:22
【问题描述】:

我正在使用 AWS Lambda,我已经使用 node.js 集成了 SQL 服务器。 Here 就是它的例子。 现在,我的问题是,AWS lambda 中的数据库代理是什么以及如何从中受益?

谢谢

【问题讨论】:

    标签: aws-lambda amazon-rds-proxy


    【解决方案1】:

    你可能已经read this:

    RDS Proxy 通过建立到数据库的暖连接池来帮助您管理从 Lambda 到 RDS 数据库的大量连接。您的 Lambda 函数可以扩展以满足您的需求,并使用 RDS 代理服务多个并发应用程序请求。这降低了数据库的 CPU 和内存需求,并消除了代码中对连接管理逻辑的需求。

    如果您有一个并发 Lambda,则没有任何好处。但是,许多应用程序利用 Lambda 扩展到 1000 或 10,000 个并发请求的能力。由于 Lambda 不保留状态,这意味着为这 10,000 个中的每一个建立/维护一个数据库连接。这是低效的,编码很痛苦,并且可能超出数据库的扩展能力

    所以...from that same blog

    您的 Lambda 函数与 RDS 代理而不是您的数据库实例进行交互。它处理扩展由并发 Lambda 函数创建的许多同时连接所需的连接池。这允许您的 Lambda 应用程序重用现有连接,而不是为每个函数调用创建新连接。

    RDS 代理会自动扩展,因此您的数据库实例需要更少的内存和 CPU 资源来进行连接管理。它还使用热连接池来提高性能。使用 RDS Proxy,您不再需要处理清理空闲连接和管理连接池的代码。您的函数代码更简洁、更易于维护。

    【讨论】:

      【解决方案2】:

      RDS 代理的好处将在 2 种情况下很明显:

      • 高并发 lambda 以限制打开的数据库连接数。无论存在多少并发 lambda,RDS 代理都会打开有限的连接

      • 低延迟应用程序可避免 lambda 刚启动时的 DB 连接时间。 RDS Proxy 将保留一个与数据库的热连接池。

      【讨论】:

        【解决方案3】:

        可扩展的 Lambda 函数是一个单一的进程,不像应用程序服务器维护一个连接池并有效地处理连接,例如:EJB、Hibernate、Node 框架。为了解决 Lambda 中的这个缺点,引入了位于 Lambda 和数据库之间的数据库代理。 Lambda->Proxy->Database。它使 Lambda 能够达到高并发级别而不会耗尽数据库连接。理想情况下,在 RDS 或传统 Mysql 托管中,连接是有限的并且 稀缺资源

        如果您想实际体验 lamdba 连接问题,请使用免费层 RDS 和 lambda 进行负载测试。

        这也是 AWS 赚钱的一种方式。例如,每 RDS 代理 vCPU 小时 1,440 小时 0.015 美元。 21.60 美元。最新价格请参考网站。

        数据库代理生产准备好了吗?我不知道。

        【讨论】:

          猜你喜欢
          • 2015-03-21
          • 2021-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-12
          • 2019-09-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多