1

我正在使用 Lambda 架构。Batch & Speed 层位于 AWS EMR 上。Serving Layer 位于 AWS ECS 上,这是一个简单且非常精简的 REST 服务器,可聚合 Batch/Speed 层的视图并返回给客户端。服务层位于 AWS ALB 和 AWS WAF 之后。

如果我错了,请修改我的方式,但我认为在 Serving 层之上使用 API Gateway 没有意义。我错过了什么吗?请您对此的想法。

我对 API Gateway 用例的理解:

  1. 横切关注点,即授权、安全、API 流量管理。
  2. 减少流量,即用户在调用 API 网关时只需支付一次网络延迟(或慢速内网)价格,所有其他内部请求都应该是快速的。+ SSL 终止。
  3. 内部 URI 隐藏在 API Gateway 后面。这是管理 API 版本控制的合适场所。

但在 Lambda 架构中,一切都隐藏在 Serving 层之后。意味着所有横切关注点都将在单个服务中。我说的是授权、安全和版本控制。对于版本控制,如果需要(Web、Android 和 iOS),我将为每个客户端创建单独的端点。这样对吗?

安全和流量管理的某些部分可以在 AWS WAF 和 AWS ELB 上完成。

对于哪些用例,我应该使用 API Gateway?

4

1 回答 1

0

您可以在您的架构中拥有更多组件并将其称为 Lambda,它不需要在服务层结束。将 API Gateway 视为最重要的“分发层”。虽然服务负责在预期延迟下生成正确的内容,但分发层将关心您提到的横切关注点。

于 2019-01-29T18:26:11.603 回答