【问题标题】:Lambda architecture on AWS and API GatewayAWS 和 API Gateway 上的 Lambda 架构
【发布时间】: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 用例的理解:

  1. 跨领域关注点,即授权、安全、API 流量管理。
  2. 减少流量,即用户在调用API网关时只需支付一次网络延迟(或慢速内网)价格,所有其他内部请求都应该是快速的。 + SSL 终止。
  3. 内部 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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-08-24
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多