amazon-web-services - Amazon ECS 公共服务发现
问题描述
我有一个场景,我必须在 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的记录。我的 3 个服务通过 url 相互通信,我将在 3 个应用程序的配置文件中定义,我将使用浏览器在 3 个应用程序的 GUI 中发送一些发布操作。
使用服务发现机制,当我执行浏览器操作时,url 没有解析为它映射到私有子网中的私有 ip。
对此的任何解决方案将不胜感激!
解决方案
你说:
我也想在 AWS ECS 上部署 3 个可以公开访问的前端
接着:
通过将所有容器放在私有子网中
而且您发现私有子网提供了一项无法公开访问的服务:
当我执行浏览器操作时,url 没有解析为它映射到私有子网中的私有 ip。
好吧,私有子网真的是私有的 :-)
要使前端可公开访问,应将其移至公共子网,或者您有公共负载均衡器与私有子网中的前端一起使用。
推荐阅读
- python - 如何根据多列中的单个值从多索引中进行选择?
- php - Fullcalendar 中模态的问题插入代码
- api - TheBat 插件 api - 如何获取新邮件通知?
- android - 为 Android ListView 设置适配器时如何修复 Layout cast 错误?
- java - 如何从 for 循环中获取指定的属性?
- c# - 如何使 WebBrowser 控件在 C# 中包装另一个浏览器
- apollo - 在查询中找到 @client 指令,但未指定 ApolloClient 解析器
- android - GCP api 在 Playstore 控制台上暴露了关键警告
- css - 样式表中的语法问题
- javascript - Date.parse 无法检查字符串是否为日期