如何设置AWS REST API网关v1以使用基于路径的路由路由到使用ECS / Fargate托管的微服务

问题描述

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

似乎没有简单的方法可以将API网关连接到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地址,但是我相信这只会分配一个静态的 public IP地址,而我的ALB将是私有的。

解决方法

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