如何将负载均衡器和API网关连接在一起

0

【以下的问题经过翻译处理】 如何将AWS负载均衡器(ELB/ALB)和API网关连接在一起?

我希望通过API网关对请求进行授权(例如使用JWT),这意味着传入请求应该首先到达API网关进行授权。如果请求得到授权,则请求将被转发到负载均衡器,该负载均衡器将对我的请求进行分配到EC2农场。

API网关支持每秒10,000个请求。因此,为了实现更高的扩展性,我需要在一个区域中使用多个API网关。在这种情况下,我需要一个负载均衡器来在多个API网关之间平衡请求,对吗?

因此,实际上需要经过ELB/ALB -> API网关 -> ELB/ALB 这三次跳转,才能到达我的EC2实例处理请求。

这是3个跳转点,是否有更好的方法来解决这个问题?

1 Antwort
0

【以下的回答经过翻译处理】 将API Gateway置于ALB前面可能会遇到问题,因为目标组可以是IP、EC2实例、Lambda或另一个ALB,而API Gateway则没有目标组。 https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html

10000个请求/秒的限制是软限制,可以增加,因此根据您的实际需求,通过增加该限制可能是可以实现的。 https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html

还有一个解决方案是创建多个具有不同用途的API Gateway,您可以进行尝试

还有一个解决方案是将CloudFront放在API Gateway前面,并使用CloudFront函数随机选择一个API Gateway,这不是一个有效的负载均衡器,但它仍然可以将流量分布在多个API Gateway之间。

另一种您可以尝试的解决方案是删除API Gateway,只需在Lambda@Edge中使用CloudFront进行JWT验证。您可以通过添加一个规则,要求标头包含可在CloudFront中注入的特定键,从而保护对ALB的访问,因此只有从您的CloudFront分配中发出的流量才会被ALB接受,而其他所有流量均会返回403。 https://github.com/aws-samples/cloudfront-authorization-at-edge

profile picture
EXPERTE
beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen