首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于ECS的AWS应用负载均衡器

基于ECS的AWS应用负载均衡器
EN

Stack Overflow用户
提问于 2019-08-10 11:04:54
回答 1查看 371关注 0票数 0

我有以下AWS设置:

  • 包含两个EC2实例的ECS集群,每个实例运行在自己的子网中,这些子网位于不同的AZ中。
  • 几个只运行每个任务的微服务,因为它们是有状态的
  • 一个内部应用程序负载均衡器,每个微服务的目标组按端口映射

现在,可以看到以下场景:服务1希望与运行在其他AZ中的另一个EC2实例上的Service2通信。作为服务2的URL,我使用带有端口的负载均衡器的DNS名称:internal-load-balancer:8082/path。这是必要的,因为我使用滚动部署,因此微服务在每次部署之后在两个EC2实例之间移动。

现在,如果我执行host internal-load-balancer,我会得到两个IP地址,一个用于运行在子网1中的负载均衡器,另一个运行在子网2中:

  • 10.0.0.11
  • 10.0.32.11

如果我现在在服务1上执行以下curl命令:

  • curl 10.0.0.11:8082/我得到网关超时
  • curl 10.0.32.11:8082/按预期工作,我得到200英镑
  • curl 10.0.32.10:8082/也能工作

那么,如果我在同一个子网中使用负载均衡器,而不是在另一个子网中使用负载均衡器,为什么还要这样做呢?如果我直接联系其他AZ中的EC2实例,它也能工作。问题是DNS记录解析到两个IP地址,而微服务只是随机地使用其中一个地址,所以我的请求中有一半是在另一半时间内完成的。

我在这里做错了什么?谢谢您的支持:)

EN

回答 1

Stack Overflow用户

发布于 2019-08-10 16:16:17

看来我找到了解决这个问题的方法,here。基本上,我所做的是解决这个问题,我把应用程序负载均衡器转移到公共子网,该子网连接了一个internet网关,现在两个负载均衡器工作都没有任何问题…我不知道为什么它只这样工作,但我很高兴我找到了解决这个问题的办法:)

有谁能向我解释一下为什么ALB需要在一个公共子网中?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57441550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档