我有一个REST API运行在AWS EC2实例中,并且我在EC2中有Nginx服务器来处理客户端的速率限制(QPS(。我的计划是用这个API用负载均衡器架构构建自动缩放。
我已经配置了一切来设置AWS中的负载均衡器和自动缩放,自动缩放基于我的Dynamic Scaling Policy工作。
查询:自动缩放打破了Nginx的速率限制,由于Nginx位于EC2服务器内部,现在我有N个EC2用于API给客户端的QPS也增加了N倍。
例如,如果ii在Nginx中为名为的客户端设置了25 QPSX&在这种自动缩放体系结构中,例如4台服务器正在运行,客户端请求会发送到不同的服务器(我们不确定是否所有请求都会在一秒钟内发送到同一台服务器(,并且客户端的QPS增加到25*4=100 QPS。
这类问题的解决方案是什么?
- 我是否需要为Nginx拥有一个独立的服务器并进行速率限制然后将请求发送到自动缩放
- 是否有任何动态方法可以根据自动缩放组生成的实例数量更新每个EC2中的nginx配置
- 是否有其他AWS服务来处理此类问题
我听说过类似CloudFront Distribution->AWS WAF->ALB等,但不了解如何使用该架构。
任何其他解决方案也欢迎。。。。。。!!!
在API上实施速率限制的AWS解决方案是在负载平衡器前使用AWS API网关,然后在API网关上启用具有速率限制的使用计划。