我有一个场景,我必须在AWS ECS上部署3个微服务。我希望通过在每个微服务中开发的API使服务能够相互通信。我想在AWS ECS上部署3个前端,可以公开访问,也可以与AWS ECS上部署的3个微服务通信。每个微服务都有一个前端,因此它需要一个url。
我尝试了AWS ECS服务发现,使用服务的公共dns命名空间,并将所有容器放在一个私有子网中,以实现每个容器之间的通信。我有3个目标组的应用程序负载均衡器,侦听每个端口。在部署了启用了服务发现的应用程序之后,在ROUT53托管区域中,我可以看到
app1.example.com。A 172.18.27.212
app2.example.com A 172.18.27.200
app3.example.com A 172.18.27.150
这三个都作为内网ip的A记录,内网ip由cloudmap创建。我的3个服务通过url相互通信,我将在3个应用程序的配置文件中定义url,我将使用浏览器在3个应用程序的GUI中发送一些post操作。
使用服务发现机制时,当我执行浏览器操作时,url不会解析为映射到私有子网中的私有ip。
对此的任何解决方案都将非常感谢!
发布于 2020-01-25 05:34:25
你可以说:
我也想在AWS ECS上部署3个前端,可以公开访问
然后:
通过将所有容器放在一个私有子网中来执行
您发现私有子网提供了无法公开访问的服务:
当我执行浏览器操作时,url不能解析,因为它映射到专用子网中的专用ip。
那么,私有子网实际上是私有的:-)
要使前端可以公开访问,请将其移动到公有子网,或者让公有负载均衡器在内网中使用前端。
https://stackoverflow.com/questions/59897446
复制相似问题