如何为 ECS 添加带有应用程序负载均衡器的 AWS API 网关?

Posted

技术标签:

【中文标题】如何为 ECS 添加带有应用程序负载均衡器的 AWS API 网关?【英文标题】:how to add AWS API gateway with application load balancer for ECS? 【发布时间】:2019-06-06 15:15:10 【问题描述】:

如何将 API 网关与应用负载均衡器集成?我已经将 ECS 与 ALB 集成,现在我想在没有 lambda 的情况下在前面添加 API 网关。但是我很困惑如何将 API 网关与 ALB 连接..

【问题讨论】:

【参考方案1】:

您可能正在寻找的是HTTP Proxy Integration as described here

基本思路是这样的:

    ANY 方法上使用/proxy+ 之类的贪婪路径设置您的API 网关 将后端端点设置为https://my-alb-endpoint.com/ecs-service-bla/proxy (希望)成功

要完成这项工作,您的后端需要暴露在互联网上(或至少可以通过 API 网关访问)!

您可能应该将您的后端保持在一个锁定的 VPC 中,但为此您需要设置 a private integration, which requires a Network Load balancer - 这可能成本更高,但会是推荐的方法。

【讨论】:

嗨@maurice,我正在使用带有 ALB 的 API 网关。如您所说,将网络负载平衡器与私有端点一起使用以使其安全。但是在使用网络负载均衡器之后,如何像我在 ALB 中那样将 api 转发到相应的微服务?你有什么想法吗?多部分数据在 API 网关中也不起作用,它将我的文件内容转换为二进制文件,并且无法在我的 API 中对其进行解码。 “希望成功”的答案非常糟糕。【参考方案2】:

是的,你可以做到。在集成类型下的 API Gateway 中选择 HTTP,然后提供带有端点资源的 ALB 的完整路径。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于如何为 ECS 添加带有应用程序负载均衡器的 AWS API 网关?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 AutoScale 实例使用 AWS 负载均衡器代理协议?

如何为 NGINX 负载均衡器设置例外

有没有办法在没有负载均衡器的情况下为 ECS 服务配置健康检查?

使用 ECS 的 Docker 级别负载均衡

用于微服务的私有子网 ecs 连接上负载均衡器的 AWS API 网关

如何为我的 Elastic Beanstalk Java 应用程序启用 HTTPS?