【问题标题】:How do I setup an AWS REST API Gateway (v1) to route to microservices hosted using ECS/Fargate using path based routing如何设置 AWS REST API Gateway (v1) 以使用基于路径的路由路由到使用 ECS/Fargate 托管的微服务
【发布时间】:2020-10-09 04:56:39
【问题描述】:

我正在运行一个 API 网关(v1,我们不能使用 V2/HTTP,因为我们需要 api 使用密钥和计划),它当前路由到在 Elastic Beanstalk 上运行的一堆 (20) 微服务​​。出于各种原因,包括 Elastic Beanstalk 设置中所需的每个应用程序负载均衡器的成本(每个微服务一个),我们计划迁移到 Fargate。

似乎没有简单的方法可以将 API Gateway 连接到 Application Load Balancer,然后可以为所有微服务完成基于路径的路由。我找到的最接近的是这篇文章 (https://aws.amazon.com/blogs/networking-and-content-delivery/using-static-ip-addresses-for-application-load-balancers/) 。虽然这似乎并不理想,因为当 ALB IP 地址发生更改且 lambda 尚未运行时,一定会有短暂的停机时间。

文章中还提到了 Global Accelerator 给 ALB 一个静态 IP 地址,但我相信这只会分配一个静态的公共 IP 地址,而我的 ALB 将是私有的。

【问题讨论】:

  • 我想你想要做的是实现 API 网关代理到一个 http 端点不是吗? docs.aws.amazon.com/apigateway/latest/developerguide/…
  • 很遗憾没有,因为 APIG 是公开的,我们希望连接到 VPC 中的资源...
  • 是的,api 网关将通过其负载均衡器连接到您在 Fargate 上的 http 后端。在你的 vpc 上。这不是你想做的吗?这就是代理所做的。我确信这种模式是可行的,而且有些普遍。
  • Fargate 没有负载均衡器 - 这是需要弄清楚的部分。 APIG V1 只能通过 VPC 链接连接到网络负载均衡器 (NLB),所以我想有一个 NLB 侦听各种端口(每个微服务一个不同的端口),APIG 会知道要发送哪个端口请求(即基于 api/path); fargate 会将微服务容器注册到适当的侦听器。 ALB 会更好,因为它可以进行基于路径的路由...我会更新我到达的位置。
  • docs.aws.amazon.com/AmazonECS/latest/developerguide/… ELB 确实支持 ECS Fargate,仅供参考

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


【解决方案1】:

我认为您需要做的是设置路由,将流量发送到您的容器正在侦听的特定端口。 https://aws.amazon.com/blogs/aws/new-advanced-request-routing-for-aws-application-load-balancers/

【讨论】:

    猜你喜欢
    • 2021-04-01
    • 2023-02-03
    • 2021-06-11
    • 2021-08-31
    • 2017-10-30
    • 2021-10-13
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    相关资源
    最近更新 更多