1

我的 Lambda 函数的冷启动时间很长。我们已经尝试“ping” Lambda 以使其保持温暖,但这可能会变得昂贵并且似乎是保持性能的糟糕方法。我们还有一个 24/7 运行的 EC2 实例。理论上,我可以将我们所有的 Lambda 函数“镜像”到我们的 EC2 实例,以对我们的 API 调用使用相同的数据进行响应。我们的 Lambda 位于https://api.mysite.com,我们的 EC2 位于https://dev.mysite.com

我的问题是我们可以“负载平衡”吗?两者之间的交通。(创建一个新的子域来执行以下操作)让我们的开发子域 (EC2) 响应所有请求,直到达到某个“每分钟请求数”。然后开始将流量路由到我们的开发子域 (Lambda),因为我们有足够的流量进入以保持 Lambda 的热度。一旦流量变慢,我们将流量移回我们的 EC2 .. 这可能吗?

4

2 回答 2

0

不,您不能使用 AWS 负载均衡器做到这一点。您可以做的是为 lambda 函数设置 cloudwatch 触发器,该函数会将 api.mysite.com 映射到 lambda 负载均衡器 dns。同样,您可以为低流量添加触发器,这将重做 dns 条目。

如果您知道流量增加,您可以安排实例。否则,您也可以尝试 AWS Fargate。

希望这对您有所帮助。

于 2019-08-20T09:52:04.283 回答
0

Cloudwatch 允许您选择要为 lambda 设置的触发器数量,即每当调用 API 时,cloudwatch 将触发这些 lambda。这是您可以实现它的一种方式。目前还没有办法在 lambda 和实例之间进行负载平衡。

您可以配置您的 API 以使用 Step 函数来编排您的 lambda。

于 2019-08-20T11:52:35.573 回答