【发布时间】:2019-06-22 19:27:38
【问题描述】:
我正在使用 Lambda 架构。 Batch & Speed 层位于 AWS EMR 上。 Serving Layer 位于 AWS ECS 上,这是一个简单且非常薄的 REST 服务器,可聚合 Batch/Speed 层的视图并返回给客户端。服务层位于 AWS ALB 和 AWS WAF 之后。
如果我错了,请修改我的方式,但我认为在 Serving 层之上使用 API Gateway 没有意义。 我错过了什么吗?请您对此有什么想法。
我对 API Gateway 用例的理解:
- 跨领域关注点,即授权、安全、API 流量管理。
- 减少流量,即用户在调用API网关时只需支付一次网络延迟(或慢速内网)价格,所有其他内部请求都应该是快速的。 + SSL 终止。
- 内部 URI 隐藏在 API 网关后面。这是管理 API 版本控制的合适场所。
但在 Lambda 架构中,一切都隐藏在 Serving 层之后。意味着所有横切关注点都将在单个服务中。我说的是授权、安全和版本控制。对于版本控制,如果需要(Web、Android 和 iOS),我将为每个客户端创建单独的端点。 对吗?
部分安全和流量管理可以在 AWS WAF 和 AWS ELB 上完成。
我应该在哪些用例中使用 API Gateway?
【问题讨论】:
-
我认为您的架构没有任何问题(我已经使用 AWS 工作了大约一年,所以我认为自己处于“仍在学习但知道自己在做什么”方面)。有些人可能会争辩说,在 ECS 中使用 API Gatyeway + Lambda 而不是您自己的 REST 服务器可能是一个可能的用例,但实际上取决于您的具体情况
标签: amazon-web-services architecture aws-api-gateway lambda-architecture