我有一个REST API在AWS EC2示例中运行,并且我在EC2内有Nginx服务器来处理客户端的速率限制(QPS)。我的计划是使用此API构建一个自动缩放和负载平衡器架构。
我已经配置了AWS中用于设置负载平衡器和自动扩展的所有内容,并且自动扩展基于我的动态扩展策略工作。
查询:自动缩放打破了Nginx的速率限制,因为Nginx驻留在EC2服务器内,现在我有N个EC2用于API,给客户端的QPS也增加了N倍。
例如,如果我在Nginx中为名为X的客户端设置了25 QPS,在此自动缩放架构中,假设有4台服务器正在运行,客户端请求发送到不同的服务器(我们不确定所有请求在一秒钟内发送到同一台服务器),客户端的QPS增加到25*4=100 QPS。
这类问题的解决方案是什么?
1.我需要有一个单独的服务器为Nginx和做速率限制,然后发送请求到自动缩放?
1.是否有任何动态方法可以根据自动缩放组产生的示例数量更新每个EC2中的nginx配置?
1.是否有其他AWS服务可以处理此类问题?
我听说过类似CloudFront Distribution -〉AWS WAF -〉ALB等的东西,但不知道如何使用该架构。
任何其他解决方案也欢迎......!!!
1条答案
按热度按时间fumotvh31#
在API上实施速率限制的AWS解决方案是在负载平衡器前使用AWS API Gateway,然后在API网关上启用usage plans with rate limits。