【问题标题】:Amazon ECS Public Service discoveryAmazon ECS 公共服务发现
【发布时间】:2020-01-24 13:30:13
【问题描述】:

我有一个场景,我必须在 AWS ECS 上部署 3 个微服务。我想让服务能够通过在每个微服务中开发的 API 相互通信。我想在 AWS ECS 上部署 3 个前端,既可以公开访问,也可以与部署在 AWS ECS 上的 3 个微服务进行通信。每个微服务都有一个前端,所以它需要一个 url。

我已经尝试使用公共 dns 命名空间的 AWS ECS 服务发现服务,并将所有容器放在私有子网中以启用它们之间的通信。我有用于侦听每个端口的 3 个目标组的应用程序负载均衡器。部署启用服务发现的应用程序后,在路由 53 托管区域中,我可以看到

app1.example.com。 172.18.27.212

app2.example.com A 172.18.27.200

app3.example.com A 172.18.27.150

这三个都是作为云图创建的私有IP的A记录。 我的 3 个服务通过 url 相互通信,我将在 3 个应用程序的配置文件中定义,我将使用浏览器在 3 个应用程序的 GUI 中发送一些发布操作。

使用服务发现机制,当我执行浏览器操作时,url 没有解析为它映射到私有子网中的私有 ip。

对此的任何解决方案将不胜感激!

【问题讨论】:

    标签: amazon-web-services amazon-ecs amazon-route53


    【解决方案1】:

    你说:

    我也想在AWS ECS上部署3个前端,可以公开访问

    然后:

    通过将所有容器放在私有子网中

    您发现私有子网提供了一项无法公开访问的服务:

    当我执行浏览器操作时,url 没有解析为它映射到私有子网中的私有 ip。

    好吧,私有子网真的是私有的 :-)

    要使前端可公开访问,应将其移至公共子网,或者让公共负载均衡器与私有子网中的前端一起工作。

    【讨论】:

    • 非常感谢您的评论。即使我将它部署在公共子网中并让应用程序负载均衡器指向应用程序的 3 个注册端口,这 3 个应用程序也会通过域 url 相互通信,例如“api_host: http://:”它存在于所有 3 个应用程序配置文件中。那么,您有什么建议吗?
    • 关于什么的建议?
    • 关于我已经解释的当前场景!
    • 到底是什么问题?
    • 3 个应用服务部署在 ecs 集群中,具有服务发现功能。每个人都需要有域 url 才能在浏览器中执行发布操作并相互通信。使用现有的服务发现设置,我不允许域 url 公开互联网。
    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 2019-11-12
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    相关资源
    最近更新 更多