这是一个分为两个部分的问题。
我们正在将内部结构迁移到AWS云。
该平台将instagram影响者与对营销其产品感兴趣的品牌联系起来。
影响者会收到商标链接,以显示在其Instagram帐户上。
有一项功能,我们需要计算影响者的特定链接上有多少关注者滑动。
我们的第一个实现是创建一个lambda来通过api网关接收请求,其中包含识别影响者和
品牌,将相关数据发送到SQS,然后将重定向发送到品牌网址。
问题很棘手,即客户要求我们的解决方案机架能够处理至少2万个同时请求, 自从过去以来,他们的少数影响者中有数百万的追随者能够产生这种瞬时的“刷卡” 当他们张贴东西时。 我们区域的lambda限制是每秒1000个并发执行。我们要求AWS提高它,他们将它提高到每秒2500个请求。 仍然远低于领导者的要求。还存在要考虑的API网关并发请求的限制。看来 api网关也会开始限制太多请求。
有没有更好的方法来处理这种需求?最佳做法是什么?我们只需要数一些有影响力的人 向上滑动,然后重定向。今天,我们仅创建一个链接,其中包含影响者ID,品牌ID和要重定向的网址。 是否有更好的替代方法可以使用lambda来解决呢?可以用无服务器方法来处理它吗? 使用多个EC2服务器还是将Beantalk与apache或nginx一起使用会更好?
现在是第二个问题。我们甚至如何使用AWS测试这种并发请求?只需使用Jmeter,当我们增加数量时 的同时请求,我们的lambda函数甚至没有收到它们。我认为对AWS的请求过多可能会被误认为 DDOS atack。如何测试需要能够接受很高的同时请求的AWS解决方案?
谢谢。
编辑: 为了清楚起见,我们不向用户提供任何内容。我们只需要计算有人进行了请求,然后进行重定向即可。 有关谁进行了请求以及要重定向的URL的信息将在所请求的链接上的参数上。 我们只需要捕获这些信息,就可以轻松地在lambda中完成它,并执行301重定向。
答案 0 :(得分:0)
您的用例看起来很适合Lambda @ Edge,它利用CloudFront端点执行lambda。对于像您这样的用例,这是边缘位置的计算和缓存的完美结合。
通过将Lambda @ Edge与其他AWS服务结合,开发人员可以构建 强大的Web应用程序位于边缘,可自动扩展并 停机—零基础设施和管理工作 自动扩展,备份或数据中心冗余所需。
限制并不完全是您要寻找的限制,但我想很多请求都将满足Cache的响应,而无需执行lambda。这是table of limits for Lambda@Edge
注意:如果由于任何原因您仍然需要更高的限制,那么您可以随时联系AWS支持,我相信它会遇到此类挑战并且一定会为您提供帮助