我在 AWS 中为 postgresql 11 部署了一个 RDS Aurora 集群。我的 lambda 正在通过 IAM 身份验证与该集群通信。由于 lambda 是无服务器的,因此每次触发 lambda 时我都必须创建与数据库的连接,并在完成时关闭连接。这不是很好,因为创建数据库连接很重并且需要时间。我使用 xray 观察了创建新连接需要 150 毫秒的连接性能。它还给 db 集群带来了很大的负载,因为 db 上会有很多短暂的连接。
经过一番搜索,我发现 RDS 代理旨在解决该问题。所以我部署了 RDS 代理以使用用户名/密码连接到我的 Aurora 集群。我的 lambda 通过 IAM 身份验证连接到 RDS 代理。
当我观察创建连接性能时,它变得更糟。创建连接需要超过 500 毫秒,有时甚至需要超过 1 秒。
使用 RDS 代理时如何变得更糟?有什么我没有在代理中配置的吗?