【问题标题】:AWS Lambda - Dealing with very high concurrent requestsAWS Lambda - 处理非常高的并发请求
【发布时间】:2022-03-17 02:35:14
【问题描述】:

这是一个两部分的问题。

我们正在将本地结构迁移到 AWS 云。 该平台将 Instagram 影响者与有兴趣营销其产品的品牌联系起来。
影响者会收到商标链接以显示在他们的 Instagram 帐户上。

有一个功能,我们需要计算有多少追随者向上滑动特定链接以获取影响者。 我们的第一个实现是创建一个 lambda,它通过 API 网关接收请求,其中包含识别影响者和品牌的数据,将相关数据发送到 SQS 并将重定向发送到品牌 URL。

但问题是,客户要求我们的解决方案应该能够处理至少 20,000 个同时请求, 因为在过去,他们的一些有数百万追随者的影响者能够产生那种瞬间的“刷屏” 当他们发布一些东西时。 我们地区的 lambda 限制是每秒 1000 次并发执行。我们要求 AWS 提高它,他们将其提高到每秒 2500 个请求。

仍然远低于客户的要求。还需要考虑 API 网关并发请求的限制。看来 API 网关也开始限制过多的请求。

有没有更好的方法来处理这种要求?最佳做法是什么?我们只需要计算一些有影响力的人收到了向上滑动并重定向。今天我们只创建一个包含影响者 ID、品牌 ID 和要重定向的 URL 的链接。 有没有比使用 lambdas 更好的选择来处理这个问题?是否可以使用无服务器方法来处理它? 使用多个 EC2 服务器或将 beanstalk 与 apache 或 nginx 一起使用会更好吗?

现在是第二个问题。我们甚至如何使用 AWS 测试这种并发请求?简单地使用 Jmeter,当我们增加同时请求的数量时,我们的 lambda 函数甚至都不会收到它们。我认为向 AWS 发出过多请求可能会被错误地视为 DDOS 攻击。如何测试任何需要能够接受非常高的并发请求的 AWS 解决方案?

谢谢。

编辑:
明确地说,我们不向用户提供任何内容。我们只需要计算有人发出了请求,然后进行重定向。 有关谁发出请求和要重定向的 URL 的信息将在请求链接的参数上。 我们只需要捕获这些信息,这在 lambda 中很容易完成,然后进行 301 重定向。

【问题讨论】:

  • 您如何确定/生成正确的品牌网址?您能否将人们正在刷的帖子的某种元数据包含在内?

标签: amazon-web-services aws-lambda


【解决方案1】:

您的用例看起来很适合 Lambda@Edge,它利用 CloudFront 端点执行 lambda。对于像您这样的用例,这是边缘位置计算和缓存的完美结合。

通过将 Lambda@Edge 与其他 AWS 服务相结合,开发人员可以构建 强大的边缘 Web 应用程序,可自动扩展和 下来——零源基础设施和管理工作 自动扩展、备份或数据中心冗余所必需的。

这些限制并不完全符合您的要求,但我想很多请求将得到来自缓存的响应,而不是需要执行 lambda。这是table of limits for Lambda@Edge

注意:如果由于任何原因,您仍然需要更高的限制,那么您可以随时联系 AWS Support,我相信他们喜欢这样的挑战,一定会帮助您

【讨论】:

  • 谢谢你的回答,但我还是不明白。您能解释一下云端如何在这里提供帮助吗?我们并没有真正为用户提供任何静态内容或任何内容。我们只需要计算有人发出了请求并进行了重定向。有关谁发出请求和要重定向的 url 的信息将在请求链接的参数上。我们只需要捕获它并执行 301 重定向。此外,似乎 Lambda@Edge 的并发执行限制与普通 lambda 相同。提前致谢。
  • 边缘的 Lambda 将为您的应用程序提供本地和多个端点。这与正常 lambda 不同,后者在多个 AZ(最多三个)下配置的特定区域中运行。 IMO,边缘计算将增加您可以使用的 lambda 实例的数量,我相信该限制将单独应用于每个边缘,而不是全局。
  • Lambda@Edge 限制是区域性的,而不是每个边缘。 200 个边缘位置中的每一个都与附近的 EC2 区域相关联,因此该解决方案需要观众在地理上有所分散才能达到该规模。 L@E 的标准默认限制是每个区域 10K RPS 和 1K 并发调用。由于边缘容器占用空间小,限制增加可能比成熟的 Lambda 更容易,请参阅docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/…
猜你喜欢
  • 2019-02-28
  • 1970-01-01
  • 2018-01-28
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多