我正在使用 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 Gateway 后面。这是管理 API 版本控制的合适场所。
但在 Lambda 架构中,一切都隐藏在 Serving 层之后。意味着所有横切关注点都将在单个服务中。我说的是授权、安全和版本控制。对于版本控制,如果需要(Web、Android 和 iOS),我将为每个客户端创建单独的端点。这样对吗?
安全和流量管理的某些部分可以在 AWS WAF 和 AWS ELB 上完成。
对于哪些用例,我应该使用 API Gateway?