应用程序负载平衡器与API网关

时间:2019-06-30 18:49:20

标签: amazon-web-services aws-api-gateway aws-load-balancer

AWS带有一个名为Application Load Balancer的服务,它可能会触发lambda函数。调用这种lambda函数的方法是通过向ALB发送HTTP / HTPPS请求。

现在我的问题是,这与使用API​​网关有何不同?而且什么时候应该在API网关上使用ALB(或解决方法)?

3 个答案:

答案 0 :(得分:2)

这是一个漫长的辩论。什么时候应该在API网关上使用ALB。请查阅本文,以了解将这两种服务与lambda一起使用的深入区别。

  

https://serverless-training.com/articles/api-gateway-vs-application-load-balancer-technical-details/

答案 1 :(得分:1)

我们在lambda函数之前使用API​​网关而不使用ALB的最大原因之一是API GW具有的本机IAM(身份和访问管理)集成。我们不必自己做任何身份工作,所有身份工作都委托给IAM,此外,API GW具有内置的请求验证功能,包括查询字符串参数和标头的验证。简而言之,API GW附带了许多现成的集成,如果走上使用ALB的路线,您最终将不得不做更多的工作。

答案 2 :(得分:0)

使用ALB时,请求/响应限制似乎较低,并且不支持WebSockets:

  

您可以发送给Lambda的请求正文的最大大小   功能为1 MB。有关大小限制,请参阅HTTP标头限制。

     

Lambda函数可以响应的JSON的最大大小   发送为1 MB。

     

不支持WebSockets。升级请求将被拒绝   HTTP 400代码。

请参阅:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/lambda-functions.html

此处讨论了API网关的有效负载限制:Request payload limit with AWS API Gateway

@matesio已经提到的文章还提供了有关在ALB和API网关之间进行选择时要考虑的其他事项的信息。

上述文章中引用的重要推文:

  

如果您要构建API并想利用AuthN / Z,请请求   验证,速率限制,SDK生成,直接AWS服务后端,   使用#APIGateway。如果要将Lambda添加到现有的Web应用程序   在ALB后面,您现在可以将其添加到所需的路线中。

(来自:Amazon API Gateway产品负责人Dougal Ballantyne)