【问题标题】:How can I set AWS ELB block too many queries from a given IP?如何设置 AWS ELB 阻止来自给定 IP 的太多查询?
【发布时间】:2016-05-20 00:29:29
【问题描述】:

我们遇到过问题,即一个 IP 向我们的服务器发出数百个请求,导致 RDS 数据库过载。在这种类似 DOS 的行为的情况下,有没有办法将我们的 AWS ELB 设置为阻止?

【问题讨论】:

    标签: amazon-web-services amazon-elb ddos


    【解决方案1】:

    您可以在 VPC 上使用 ACL 规则阻止 IP。

    http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html

    【讨论】:

    • OP 要求的是限制查询率,而不是完全阻止它。
    • 也许,我认为 OP 对他的要求不够清楚。根据应用程序的类型和请求的类型,CDN 可能是答案,但 OP 只是询问负载均衡器,而没有提供足够详细的答案。
    【解决方案2】:

    您要求的是 ELB 的速率限制。不幸的是,AWS 没有为 ELB 提供速率限制。

    ELB Rate Limiting and IP Rules

    【讨论】:

      【解决方案3】:

      如 helloV 所述,ELB 不支持该功能。您可以在 NGINX 级别执行此操作:https://www.nginx.com/blog/rate-limiting-nginx/

      如果您有任何一段代码作为 lambda,API 网关支持速率限制(或节流):https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html

      【讨论】:

      • Nginx 限制的问题是让它在所有实例之间共享一个强制速率。 IE。如果 Nginx 限制仅针对一个实例,那么您的费率将乘以 ELB 中的实例数。这就是在 ELB 上进行速率限制的原因。
      【解决方案4】:

      嗯,这是一篇非常古老的文章,但您可以使用 AWS WAF 来完成,您只需将 ACL 附加到您的 ELB 并设置一个速率限制规则,如下图所示:

      我希望这对将来的某人有所帮助,我遇到了一个非常大的问题,这为我解决了。

      【讨论】:

      • 这将按要求工作。但是,对于那些想要跨 IP 节流的人,我们使用一种解决方案来创建 CloudWatch 警报,当请求计数超过所需数量时,该警报会向 SNS 主题发送警报。从该 SNS 消息调用一个简单的 Lambda,它将简单地将侦听器更改为固定响应,以显示一个不错的“服务忙”消息。第二组上述 aws 资源是在请求计数减少到较低数量时清除限制。
      猜你喜欢
      • 1970-01-01
      • 2021-02-15
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 2013-12-06
      • 2019-08-10
      • 2021-09-20
      相关资源
      最近更新 更多